UPDATE. С момента написания статьи Правила в Apphud были сильно улучшены. Теперь поддерживается возможность создавать пуш кампании на конкретную дату, а также повторяющиеся пуши в конкретное время дня любой аудитории.
Правила – это набор механик, позволяющих:
Создавая Правило, вы можете выбрать его тип. Например, Get cancellation insights или Win back lost subscribers. Процесс настройки Правил обоих типов не отличается, разница лишь в экранах, которые будут показаны пользователю. Так, создавая Правило Get cancellation insights, вы должны выбрать или создать экран опроса. По умолчанию используется вопрос "Why did you cancel subscription?". А в Правилах типа Win back lost subscribers в качестве экрана доступны только экраны оплаты.
Правило в 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" вы можете указать, для каких сегментов пользователей будет работать правило. Доступны следующие фильтры:
true
, если пользователь является или являлся в прошлом платящим;В разделе "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".
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".
Основные функции:
ApphudUIDelegate
.Создавайте собственные опросы, меняйте текст вопроса и возможные варианты ответа. Не забывайте, что можно перехватить выбор варианта и, например, отобразить другой экран опроса или оплаты при выборе определенного ответа пользователем.
На экранах покупки пользователю можно предлагать активировать промо-предложение или приобрести обычный In-app purchase (в том числе, подписку).
Промо-предложением могут воспользоваться только пользователи с действующей или неактивной подпиской или триалом. Новые пользователи не могут активировать такое предложение.
Выбор между этими двумя вариантами происходит в настройках "Purchase button". При создании экрана покупки требуется указать идентификатор продукта. Если вы хотите предложить пользователю промо-оффер, то укажите и "Promo Offer ID":
При выборе опции "Purchase promo offer on tap", надо указать "Promotional Offer Identifier". Его можно найти в настройках промо-предложения в App Store Connect.
Кроме "Promotional Offer Identifier", нужно создать "Subscription Key" в App Store Connect и загрузить его в Apphud. Подробнее о Promotional offers и создании ключа читайте здесь.
После указания "Promo Offer 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" вы добавляете самостоятельно, а полную цену подписки заменит макрос.
Здесь можно указать текст с информацией о подписке. С недавнего времени это стало необязательным. Если хотите, можете скрыть весь блок с помощью кнопки "Hide Block".
Многие блоки можно скрыть с помощью кнопки Hide Block.
Apphud SDK имеет обширные возможности по управлению и обработке правил. Просмотрите методы делегата ApphudUIDelegate
. А мы перечислим некоторые из них:
false
, чтобы правило не выполнилось. Это можно использовать, например, чтобы показать собственный экран при срабатывании Правила. Учтите, что в этом случае аналитика правила в разделе "Rule > Analyze" работать не будет: func apphudShouldPerformRule(rule: ApphudRule) -> Bool
none
, можно отменить автоматическое закрытие экрана и запушить собственный экран, использовав свойство navigationController
у controller
: func apphudScreenDismissAction(screenName: String, controller: UIViewController) -> ApphudScreenDismissAction
ApphudUIDelegate
смотрите в исходном коде Apphud SDK.Чтобы запустить Правило, создайте Экран, настройте Push-уведомления, добавьте и настройте Правило.
func submitPushNotificationsToken(token: Data, callback: ApphudBoolCallback?)
func handlePushNotification(apsInfo: [AnyHashable: Any]) -> Bool
func apphudScreenPresentationStyle(controller: UIViewController) -> UIModalPresentationStyle