What’s new in Apphud: Paywall Analytics, Stripe Web Payments Support and Xiaomi SDKLet’s see
Apphud
Why Apphud?PricingContact
Ren
Ren
April 01, 2021
3 min read

Как работают Правила в Apphud

Нас часто спрашивают о том, как компенсировать потенциальные потери. Один из возможных способов – использовать Правила Apphud.

Как работают Правила в Apphud

UPDATE. С момента написания статьи Правила в Apphud были сильно улучшены. Теперь поддерживается возможность создавать пуш кампании на конкретную дату, а также повторяющиеся пуши в конкретное время дня любой аудитории.

Правила

Правила – это набор механик, позволяющих:

  •  возвращать отвалившихся подписчиков с помощью автоматических Push-уведомлений и экранов со скидкой;
  • создавать опросы;
  • напоминать о проблемах с оплатой;
  • и т.д.

Сейчас Правила доступны только на iOS. Поддержка Android ожидается позднее.

Правила ApphudПравила Apphud

Создавая Правило, вы можете выбрать его тип. Например, Get cancellation insights или Win back lost subscribers. Процесс настройки Правил обоих типов не отличается, разница лишь в экранах, которые будут показаны пользователю. Так, создавая Правило Get cancellation insights, вы должны выбрать или создать экран опроса. По умолчанию используется вопрос "Why did you cancel subscription?". А в Правилах типа Win back lost subscribers в качестве экрана доступны только экраны оплаты.

Что означает "When to perform rule"?

Правило в Apphud вызывается при возникновении какого-то события. Например, при отмене подписки пользователем (Autorenew disabled) или невозможности ее продления из-за проблем с платежом (Billing issue).

Когда выполнять правило?Когда выполнять правило?

На момент написания статьи событие "Autorenew disabled", помечено как устаревшее (deprecated). Сейчас это событие заменяют два новых – "Trial canceled" и "Subscription canceled". Первое создается, когда пользователь отменяет пробную подписку, во всех остальных случаях создается событие "Subscription canceled".

"Trial canceled" может создаваться и для подписок в статусе Promo, если было оформлено промо-предложение или был приобретен триал с помощью Offer Code (доступно для iOS 14 и выше). А еще это событие создается, если подписка находилась в статусе Grace или Expired и была автоматически отключена по окончании 60-тидневного billing retry периода. То есть, при условии, что подписка так и не перешла в платное состояние.

В качестве триггера можно выбрать и другое событие, например, "Subscription expired". Тогда правило будет вызываться по окончании срока действия платной подписки (не путать с отменой подписки пользователем).

Можно выбрать несколько событий и комбинировать их. В этом случае Правило будет выполнено при возникновении любого из них. Еще можно добавить фильтр по продукту или группе продуктов, нажав кнопку "Where".

В пункте "How many times rule can be performed for each user?" доступны две опции: "Unlimited times" и "Just once". Очевидно, при выбранном первом варианте если пользователь повторно отменит продление подписки, ему снова придет Push-уведомление со скидкой или опросом. Опция "Just once" не даст правилу сработать больше одного раза для каждого уникального пользователя.

User segments

В разделе "User segments" вы можете указать, для каких сегментов пользователей будет работать правило. Доступны следующие фильтры:

  • Subscription status – текущий статус подписки для конкретной группы продуктов;
  • Autorenewal – включено ли возобновление подписки;
  •  Is paying – true, если пользователь является или являлся в прошлом платящим;
  • Country – страна пользователя;
  • Install month – месяц установки приложения пользователем.
Добавление User segmentsДобавление User segments

Actions

В разделе "Actions" вы можете указать текст Push-уведомления, которое будет отправлено пользователю при выполнении Правила. А так же выбрать экран, который появится при следующем открытии приложения. Текст уведомления можно локализовать.

Добавление нового языка происходит через настройки: Settings > iOS localization.

Локализированный текст уведомленияЛокализированный текст уведомления

Как работает правило?

При отмене подписки Apple шлет серверное уведомление в Apphud с полем notification_type = DID_CHANGE_RENEWAL_STATUS. Вместе с уведомлением отсылается копия чека, в которой есть поле original_transaction_id – уникальный идентификатор подписки. По этому идентификатору Apphud находит пользователя в базе данных и при наличии у него Push-токена, отправляет ему уведомление с текстом из Правила.

Для того, чтобы серверные уведомления приходили в Apphud, укажите наш App Store Server Notifications URL в App Store Connect. Подробнее здесь.

При следующем открытии приложения Apphud SDK покажет экран опроса или оплаты, созданный в редакторе экранов в разделе "Screens". Учтите, что экран отобразится, даже если Push-уведомления не были настроены в разделе "Actions".

Push-уведомления

Apphud сможет отправить пользователю Push-уведомление, только если у него указан Device Token. Передать его можно так:

func submitPushNotificationsToken(token: Data, callback: ApphudBoolCallback?)

Убедитесь, что вызывается метод обработки входящих пуш уведомлений:

func handlePushNotification(apsInfo: \[AnyHashable: Any\]) -> Bool

Наконец, удостоверьтесь, что APNS Auth Key создан и загружен в Apphud. Подробнее о создании ключа читайте здесь.

Редактор экранов

Создавайте и редактируйте экраны в продвинутом редакторе без необходимости отправлять приложение на проверку. Вы можете выбрать один из четырех типов экранов: "Promo offer, Survey, Feedback и Billing Issue".

Основные функции:

  • Выбор дизайна из готовых шаблонов и его редактирование: выбор цветовой схемы, шрифтов, загрузка своих изображений и так далее;
  • Локализация текстов экрана;
  • Показ другого экрана по нажатию кнопки. Так можно связывать несколько экранов между собой. Новый экран будет добавлен в иерархию "Navigation Controller";
  • Макросы для вставки локализованной цены в экранах оплаты;
  • Можно скрыть ненужные блоки;
  • Широкие возможности для перехвата действий в приложении с помощью  ApphudUIDelegate.

Экраны опроса

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

Создавайте экраны опросаСоздавайте экраны опроса

Экраны покупки

На экранах покупки пользователю можно предлагать активировать промо-предложение или приобрести обычный In-app purchase (в том числе, подписку).

Промо-предложением могут воспользоваться только пользователи с действующей или неактивной подпиской или триалом. Новые пользователи не могут активировать такое предложение.

Выбор между этими двумя вариантами происходит в настройках "Purchase button". При создании экрана покупки требуется указать идентификатор продукта. Если вы хотите предложить пользователю промо-оффер, то укажите и "Promo Offer ID":

Создание промо-оффераСоздание промо-оффера

Промо-предложения

При выборе опции "Purchase promo offer on tap", надо указать "Promotional Offer Identifier". Его можно найти в настройках промо-предложения в App Store Connect.

Не путайте Promotional Offer Identifier с Offer Codes.

Кроме "Promotional Offer Identifier", нужно создать "Subscription Key" в App Store Connect и загрузить его в Apphud. Подробнее о Promotional offers и создании ключа читайте здесь.

Promotional OfferPromotional Offer

После указания "Promo Offer ID", выберите "Product ID" нужной подписки:

Выберите Product IDВыберите Product ID

Обычная покупка

Если хотите предложить пользователю обычную покупку, выберите опцию "Purchase product on tap", а поле "Promo Offer ID" оставьте пустым.

Действие при закрытии экрана

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

Локализация цен

Чтобы показать локализованную цену In-app purchase и промо-предложения, используйте макросы – оранжевая кнопка в редакторе.

Использование макросовИспользование макросов

При вставке макроса можно выбрать обычную (Regular) цену или цену промо-предложения (Offer price).

Макрос: Обычная цена

Это цена обычной покупки. Выберите Product ID и Apphud SDK автоматически подставит локализованную цену на экран.

Макрос: Цена промо-предложения

Это цена промо-предложения, относящегося к покупке. Укажите те же "Promo Offer ID" и "Product ID", что и на кнопке "Купить". Apphud SDK автоматически подставит локализованную цену промо-предложения на экран.

Если есть пробный период, можете сконструировать собственную фразу, содержащую длительность триала и цену. Например, так:

3 days for free, then just {regular_price} per month.

Слова "3 days for free, then just" и "per month" вы добавляете самостоятельно, а полную цену подписки заменит макрос.

Секция Information

Здесь можно указать текст с информацией о подписке. С недавнего времени это стало необязательным. Если хотите, можете скрыть весь блок с помощью кнопки "Hide Block".

Многие блоки можно скрыть с помощью кнопки Hide Block.

Кнопка Hide Block для текста с информациейКнопка Hide Block для текста с информацией

Возможности Apphud iOS SDK

Apphud SDK имеет обширные возможности по управлению и обработке правил. Просмотрите методы делегата ApphudUIDelegate. А мы перечислим некоторые из них:

  • Перехватите выполнение правила целиком и верните false, чтобы правило не выполнилось. Это можно использовать, например, чтобы показать собственный экран при срабатывании Правила. Учтите, что в этом случае аналитика правила в разделе "Rule > Analyze" работать не будет: func apphudShouldPerformRule(rule: ApphudRule) -> Bool
  • Измените действие при закрытии экрана Опроса или Фидбека после получения ответа от пользователя. Вернув none, можно отменить автоматическое закрытие экрана и запушить собственный экран, использовав свойство navigationController у controller: func apphudScreenDismissAction(screenName: String, controller: UIViewController) -> ApphudScreenDismissAction
  • Подробнее обо всех методах ApphudUIDelegate смотрите в исходном коде Apphud SDK.
  • Обновите Apphud SDK на версию 1.2 или выше, она содержит значительные улучшения в разделах Rules и Screens

Подведем итоги

Чтобы запустить Правило, создайте Экран, настройте Push-уведомления, добавьте и настройте Правило.

  •  Работа с Правилами не требует отправки приложения на повторные проверки в Apple. Единственное, о чем нужно позаботиться заранее – передавать Push-токены в Apphud с помощью метода: func submitPushNotificationsToken(token: Data, callback: ApphudBoolCallback?)
  • Важно убедиться, что вызывается метод обработки входящих пуш-уведомлений: func handlePushNotification(apsInfo: [AnyHashable: Any]) -> Bool
  • Еще удостоверьтесь, что APNS Auth Key создан и загружен в Apphud.
  • Проверьте, как работают созданные экраны перед запуском Правила. Для этого в разделе "Rules" в Apphud, выберите "Test Rule" и введите Apphud User ID тестового устройства.
  • По умолчанию экраны отображаются модально неполноэкранным способом в стиле iOS 13. Вы можете изменить это с помощью метода делегата:func apphudScreenPresentationStyle(controller: UIViewController) -> UIModalPresentationStyle
  • Чтобы предложить пользователю оформить промо-оффер, укажите "Promo offer ID" и загрузите Subscription Key в Apphud.
  • Вы можете предлагать пользователь стандартную покупку In-App Purchase на созданных экранах.
  • Обновите Apphud SDK до последней версии 1.2. В этом обновлении улучшена производительность и добавлены новые методы для работы с экранами.


Ren
Ren
Co-founder at Apphud
Ex iOS app and game developer. 11 years in the industry since iOS 3. More than 50 apps are in the background with 4 exits. Entrepreneur and traveler.

Related Posts