Публикация и монетизация приложения в RuStore

Здравствуйте. Меня зовут Юрий. Я являюсь руководителем отдела разработки в компании Animar Media. В этой статье хочу поделиться нашим опытом создания приложения в RuStore с монетизацией. С какими проблемами мы столкнулись и способами их решения.

RuStore является платформой для публикации мобильных приложений на операционной системе Android. RuStore позволяет разработчикам публиковать свои приложения на данной платформе и монетизировать их, используя различные методы, такие как продажа приложения, встроенные покупки, реклама и подписки.

В настоящий момент пользователи испытывают на себе проблемы с оплатой приложений App Store и Google Play. В связи с этим многие наши клиенты выбрали публикацию приложений на RuStore и перевели своих пользователей на российскую платформу. В этой статье я поделюсь опытом регистрации, настройки и публикации приложения с монетизацией в RuStore на примере одного из наших проектов.

Шаги, которые нужно выполнить, чтобы опубликовать приложение с монетизацией в RuStore:

Шаг 1: Регистрация в Rustore

Чтобы зарегистрироваться, вам нужно зайти на официальный сайт RuStore и создать свою учетную запись. Это бесплатно.

Заходим на https://console.rustore.ru/ - регистрируемся, заполняем все необходимые данные.

Шаг 2: Создание приложения

После регистрации вы можете создать приложение. Для этого вы должны выбрать тип приложения, который хотите создать и заполнить необходимые данные, такие как название приложения, описание, иконка и скриншоты.

Публикация и монетизация приложения в RuStore

Перед созданием приложения рекомендуем заполнить информацию о компании в разделе Компания. Общая информация и данные для монетизации приложения с банковскими реквизитами счета, который хотите привязать к системе. На странице монетизации можно скачать бланк заявления в формате PDF.

Публикация и монетизация приложения в RuStore
Публикация и монетизация приложения в RuStore

На вкладке API RuStore сгенерировать приватный ключ, который в дальнейшем будет использоваться при интеграции встроенных покупок.

Публикация и монетизация приложения в RuStore

Далее можно создать приложение и выбрать его тип - платное или бесплатное, и ввести название. После создания приложения нужно загрузить первую APK версию и заполнить все данные о приложении, а именно: описание, логотип, коротное описание, скриншоты. Когда все будет заполнено - можно отправить приложение на первую проверку.

Шаг 3: Добавление монетизации

После создания приложения вы можете добавить монетизацию. RuStore поддерживает несколько методов монетизации, включая:

  • Продажа приложения: вы можете продавать свое приложение за фиксированную цену.
  • Встроенные покупки: вы можете предложить дополнительный контент или функции за дополнительную плату.
  • Реклама: вы можете показывать рекламу в своем приложении и зарабатывать на этом.
  • Подписки: вы можете предлагать подписки на свое приложение и зарабатывать на этом регулярно.

Вы можете выбрать один или несколько методов монетизации для своего приложения.

Все варианты монетизации откроются только после заполнения информации о компании и банковских реквизитов. До этого настроить монетизацию не получится.

Публикация и монетизация приложения в RuStore

В данном примере рассмотрим вариант подписки. Для этого заходим в раздел Монетизация - Подпсики и создаем новую подписку, задав параметры периода стоимости (например, месяц), стоимость (например, 75 руб), идентификатор, а также описание и название покупки. Есть варианты дополнительных настроек: бесплатный период, стартовый период, грейс и холд. Подробнее об этих параметрах можно прочитать в документации к RuStore (https://help.rustore.ru/rustore) или на экране создания подписки.

Публикация и монетизация приложения в RuStore

После создания подписки необходимо интегрировать RuStore SDK для in-app платежей в приложении. RuStore предоставляет решения для Kotlin, Java, Unity и Flutter. Поэтому если вы пишете на React Native, то вам придется написать собственный компонент или воспользоваться бибилиотекой на GitHub от наших разработчиков в Animar Media - React Native RuStore IAP. Особых сложностей в написаниии компонента нет, но мы столкнулись с небольшой проблемой несоответствия документации и реальности, что было выяснено эмпирическим путем.

Одна из проблем, которую мы решали несколько дней связана с валидацией платежей на бэкенде для приложения. Валидация нужна для корректной работы платежей и отображения статистики платежей в консолях администратора и пользователя.

Проблема заключалась в следующем - надо было получить токен авторизации согласно документации https://help.rustore.ru/rustore/for_developers/worki_with_RuStore_API/authorization_token_RuStore_API.

Метод позволяет сгенерировать токен по запросу, подписанному приватным ключом. Метод проводит проверку активности владельца приложения, согласно документации он выглядит так:

Параметры взаимодействия

POST /public/auth/

Публикация и монетизация приложения в RuStore

Необходимо было реализовать это на С#, так как бэкенд написан на .NET. Но примеров интеграции API RuStore на C# найти не удалось. Ниже приведен пример нашей части кода, которая дает этот функционал.

private async Task<AuthResponse> Auth() { var yearMonthDay = DateTime.Now.ToString("yyyy-MM-dd"); var hourMinuteSeconds = DateTime.Now.ToString("HH:mm:ss"); var clockBelt = _timeZone; var stringToSign = yearMonthDay + "T" + hourMinuteSeconds + clockBelt; RsaKeyParameters rsaKeyParameter; try { var keyBytes = Convert.FromBase64String(_privateKey); var asymmetricKeyParameter = PrivateKeyFactory.CreateKey(keyBytes); rsaKeyParameter = (RsaKeyParameters)asymmetricKeyParameter; } catch (Exception e) { throw e; } var signer = SignerUtilities.GetSigner("SHA512withRSA"); signer.Init(true, rsaKeyParameter); var messageBytes = Encoding.UTF8.GetBytes(_companyId+stringToSign); signer.BlockUpdate(messageBytes, 0, messageBytes.Length); var signed = signer.GenerateSignature(); using(var client = new HttpClient {BaseAddress = new Uri(_api)}) { try { string payload = JsonConvert.SerializeObject(new { companyId = _companyId, timestamp = stringToSign, signature = signed }); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(RustoreEndpoints.Endpoints.AuthEndpoint, content); var resultStr = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject<AuthResponse>(resultStr); return result; } catch (Exception e) { throw e; } } }

В итоге нашими разработчиками был написан компонент на С# и выложен в свободный доступ - https://github.com/deniszhigalov/rustore-api - RuStore API Build in C#. Пользуйтесь и оставляйте отзывы или замечания.

Шаг 4: Проверка приложения

После того, как вы добавили монетизацию, ваше приложение будет проверено RuStore на соответствие правилам и требованиям платформы. Этот процесс может занять несколько дней.

Шаг 5: Публикация приложения

После проверки вы сможете опубликовать свое приложение в RuStore, оно будет доступно для скачивания и использования другими пользователями.

С публикацией и проверкой приложения особых сложностей в нашем случае не возникло. Главное, чтобы оно не нарушало законодательство и правила RuStore.

Публикация и монетизация приложения в RuStore

Шаг 6: Заработок на монетизации

Как только ваше приложение опубликовано, вы можете начать зарабатывать на монетизации. В зависимости от выбранного вами метода монетизации, вы можете получать доход от продажи приложения, дополнительных функций и контента, показа рекламы или подписок.

Чтобы увеличить доход от монетизации, вы можете использовать различные маркетинговые стратегии, такие как продвижение в социальных сетях, контекстная реклама или партнерские программы.

Через несколько дней после публикации в RuStore релиз версии, мы столкнулись со следующей проблемой: встроенные покупки в приложении, установленном через RuStore, не всегда работают и выдают ошибки на моменте инициализации покупки. Через поддержку удалось выяснить важные нюансы установки приложения: как оказалось, есть особенности в установке самого рустора, авторизации в нем и обновлении приложения. Дословно от поддержки:

Мы рекомендуем поделить на flavor-ы для каждого магазина в вашей ситуации, но если не выйдет, можем предложить не очень надежное решение: installerPackage = packageManager.getInstallerPackageName(applicationInfo.packageName)

У этого решения есть несколько нюансов:

1. Это будет работать только для приложений изначально установленных из RuStore. Если изначально приложение было установлено из другого стора (например, Google Play) или иными способами, то источник будет стандартный установщик пакетов.

2. Если для установки был использован режим совместимости (как на некоторых моделях Xiaomi), то источник установки тоже будет системный установщик.

3. Если удалить RuStore, то источник установки затрётся полностью и переустановка не вернёт источник установки.

4. Если установить из RuStore, а потом обновить из другого места, то источник установки останется ru.vk.store.

Мы советуем обратить внимание на получение источника обновления, оно работает честнее. Но всё равно это очень нестабильный механизм, к сожалению.

С уважением, Команда RuStore

Кроме того, вы можете использовать инструменты RuStore для анализа производительности вашего приложения, чтобы оптимизировать его и увеличить доход.

Шаг 7: Поддержка пользователей

Чтобы сохранить своих пользователей и увеличить доход от монетизации, необходимо обеспечить хорошую поддержку пользователей. RuStore предоставляет инструменты для обратной связи с пользователями, такие как отзывы и рейтинги, которые помогут вам понимать потребности пользователей и улучшать свое приложение.

Кроме того, вы можете предоставить поддержку пользователей через электронную почту, чат или форумы. Хорошая поддержка может увеличить лояльность пользователей и привести к повторным покупкам или подпискам.

Шаг 8: Обновление приложения

Чтобы удерживать пользователей и увеличивать доход от монетизации, важно регулярно обновлять приложение. Обновления могут включать: исправление ошибок, добавление новых функций и контента, оптимизацию производительности и улучшение пользовательского интерфейса.

Регулярные обновления также помогают поддерживать рейтинг и отзывы вашего приложения, что может повлиять на его популярность и доход.

В заключение, RuStore - это отличная платформа для публикации и монетизации мобильных приложений на Android. Следуя приведенным выше шагам, вы можете опубликовать свое приложение с монетизацией и зарабатывать на нем.

1212
6 комментариев

А для простой монетизации через покупку с пробным периодом API не нужно использовать?

Ответить

Добрый день. АПИ нужно будет использовать и для покупку с пробным периодом.

1
Ответить

Здравствуйте. Для одноразовой продажи платного приложения по фиксированной цене АПИ тоже нужно использовать?

Ответить

Здравствуйте. Если планируете продавать через рустор то да - обязательно. Но если не через рустор - то можно андройд версию опубликовать по своей ссылке и интегрировать любую иную платежку, например сбер.

Ответить

Добрый вечер.А для физиков доступы внутриигровые покупки ?

Ответить

Да, можно регистрироваться как самозанятый, после чего будут доступны все способы монетизации, и in-app, и разовая покупка и подписка

Ответить