[Закрытая бета-версия] Измерение подписок с автопродлением (ARS)

beta_feature.png

Краткий обзор. Автоматическое измерение доходов от подписок с автопродлением (ARS) для получения полной картины жизненного цикла подписчика и точного измерения ROAS.

Обзор ARS

Подписки с автопродлением (ARS) — это события, которые регулярно происходят в вашем приложении. Подписки автоматически продлеваются в конце срока их действия, пока пользователи не решат повысить, понизить или отменить их. Каждое повышение, понижение или отмена означает изменение входящего дохода.

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

  • Коннектор SDK для покупок в AppsFlyer ARS для Android и iOS.
  • Уведомления серверов App Store и Google Play (RTDN), отправленные в AppsFlyer.

Данные ARS доступны на дэшбордах и в отчетах AppsFlyer.

Факторы, которые необходимо учитывать

  • Если вы используете решение для измерения ARS, вы не должны использовать валидацию чека для покупки для регистрации подписок. Иначе один и тот же доход будет учтен дважды.
  • ARS может начать регистрировать изменения жизненного цикла для имеющихся подписчиков, как только они запустят версию приложения, включающую коннектор SDK для покупок в ARS.

Настройка решения AppsFlyer ARS

Объем работ
Кто задействован Действия
Маркетолог
  • Настраивает параметры ARS для Android.
  • Настраивает параметры ARS для iOS.
Android-разработчик

Интегрирует коннектор SDK для покупок в AppsFlyer ARS.

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

iOS-разработчик

Интегрирует коннектор SDK iOS для покупок в AppsFlyer ARS.

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

Настройка ARS для Android

Прежде чем начать:

  • Настройка ARS состоит из шагов, выполненных в App Store Connect, Google Cloud Platform и в пользовательском интерфейсе AppsFlyer. Вкладки App Store Connect, Google Cloud Platform открываются через мастера установки.
  • Для настройки в пользовательском интерфейсе AppsFlyer требуются права администратора.

admin.png Для настройки ARS:

  1. В Google Cloud Platform перейдите на страницу Аккаунты службы, затем нажмите Создать аккаунт службы.
  2. Введите имя аккаунта службы.
  3. Нажмите Создать и продолжить.
  4. Для Роли выберите Подписчик Pub/sub.
  5. Нажмите Продолжить > Готово.
  6. В Google Cloud Platform перейдите на страницу Аккаунты службы, найдите нужный аккаунт, затем нажмите Действия > Управлять ключами.
  7. Нажмите ДОБАВИТЬ КЛЮЧ > Создать новый ключ.
  8. Для Тип ключа выберите JSON.
  9. Нажмите Создать.
    Загрузится JSON закрытого ключа Google для аккаунта службы.
  10. В Google Play Console перейдите в раздел Настройка > Доступ к API.
  11. В списке Аккаунты службы найдите нужный аккаунт службы и нажмите Предоставить разрешения.
  12. В разделе Разрешения перейдите в Разрешения аккаунта и выберите оба варианта:
  13. Нажмите Пригласить пользователя > Отправить приглашение.
  14. В AppsFlyer перейдите в Интеграция > Атрибуция подписок.
    Откроется страница конфигурации дохода.
  15. В разделе Покупки и подписки загрузите JSON закрытого ключа для аккаунта службы Google.
  16. Выберите метод для получения данных ARS от Google. Одно из:
    • Позвольте AppsFlyer получать RTDN-сообщения непосредственно от Google.
      1. Скопируйте тему AppsFlyer.
      2. В Google Play Console выберите свое приложение.
        Откроется дэшборд.
      3. Перейдите на страницу Настройка монетизации, и в разделе Биллинг Google Play в поле Название темы вставьте тему AppsFlyer, которую вы скопировали в подшаге 1.
      4. Нажмите кнопку Сохранить.
    • Пересылайте сообщения RTDN в AppsFlyer.
      1. Скопируйте тему AppsFlyer.
      2. В Google Cloud Platform в разделе Pub/Sub перейдите к разделу Темы и убедитесь, что у вас есть выделенная тема pub/sub для подписок.
      3. В Google Cloud Platform в разделе Pub/Sub перейдите к разделу Подписки и нажмите Создать подписку.
      4. Введите ID подписки (название).
      5. Выберите соответствующую тему pub/sub подписки из раскрывающегося списка.
      6. Для Типа доставки выберите Push.
      7. Введите URL конечной точки (тема AppsFlyer), который вы скопировали в подшаге 1.
      8. Для Срок действия выберите Никогда не истекает.
      9. Все остальное оставьте как есть.
      10. Нажмите кнопку Сохранить.
      11. В Google Cloud Platform в разделе Pub/Sub перейдите к разделу Подписки и скопируйте название темы.
      12. В Google Play Console перейдите на страницу Настройка монетизации, и в разделе Биллинг Google Play в поле Название темы вставьте название темы, которое вы скопировали в подшаге 11.
      13. Нажмите кнопку Сохранить.
  17. На странице конфигурации дохода AppsFlyer включите переключатель Атрибутировать и учитывать подписки с автопродлением.
  18. Нажмите кнопку Сохранить.
  19. Скажите разработчику Android, что нужно интегрировать коннектор SDK Android для покупок в AppsFlyer ARS.

Примечание. После установки учетных данных и разрешений аккаунта службы может пройти некоторое время (иногда до 24 часов), прежде чем вы сможете их использовать. Это может привести к появлению ошибок при попытке подключения к Google RTDN.

Настройка ARS для iOS

Прежде чем начать:

  • Настройка ARS состоит из шагов, выполненных в App Store Connect и в пользовательском интерфейсе AppsFlyer. Вкладки App Store Connect и AppsFlyer должны быть открыты во время установки.
  • Для настройки в пользовательском интерфейсе AppsFlyer требуются права администратора.

admin.png Для настройки ARS:

  1. В AppsFlyer перейдите в раздел Интеграция > Атрибуция подписок.
    Откроется страница конфигурации дохода.
  2. Введите общий секретный ключ App Store Connect.
  3. Скопируйте конечную точку AppsFlyer и введите ее в конфигурацию App Store Connect.
  4. [Необязательно] Выберите отправку уведомлений сервера на конечную точку и введите конечную точку. 
  5. Включите переключатель Атрибутировать и учитывать подписки с автопродлением.
  6. Нажмите Сохранить.
  7. Войдите в App Store Connect и выберите свое приложение.
  8. В разделе Информация о приложении прокрутите вниз до уведомлений сервера App Store, и в поле URL рабочего сервера вставьте конечную точку AppsFlyer, которую вы скопировали в шаге 3. 
  9. Нажмите Сохранить.
  10. Скажите разработчику iOS, что нужно интегрировать коннектор SDK iOS для покупок в AppsFlyer ARS.

Внимание:

  • Apple может отправлять уведомления сервера только на одну конечную точку. Если вы хотите, чтобы AppsFlyer пересылал все входящие уведомления на вашу конечную точку, свяжитесь с вашим менеджером и сообщите ему URL конечной точки. (URL должен быть действительной конечной точкой с HTTP или HTTPS, предпочтительно HTTPS.)
  • Клиенты могут отправлять уведомления сервера Apple со своего бэкенда непосредственно на URL конечной точки уведомления, но запросы должны быть точно такими же, как они получены из App Store.

События и параметры, связанные с подпиской

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

Примечание: все параметры относятся к Android и iOS, если не указано иное.

Пробный период начался (af_ars_trial_started)

Описание

Записывается, когда подписчик начинает пробный период.

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • Af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • Af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type

Пробный период отменен (af_ars_trial_cancelled)

Описание

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

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • Af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • Af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type

Отток после пробного периода (af_ars_trial_churned)

Описание

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

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • Af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • Af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type
  • af_churn_reason

Конверсия после пробного периода (af_ars_trial_converted)

Описание

Записано, когда пользователь оформляет подписку по полной цене после пробного периода.

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • Af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • Af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type
  • af_discount_id
  • af_discount_type
  • af_revenue_usd
  • af_revenue
  • store_commission
  • net_revenue
  • net_revenue_factors

Подписка началась (af_ars_subscription_started)

Описание

Записывается, когда начинается подписка со скидкой или по полной цене.

Внимание:

  • Новые подписки могут быть записаны только через коннектор SDK.
  • Для iOS, если подписчик повторно покупает подписку, которая у него уже есть, коннектор SDK сообщает приложению об успешной проверке чека, но не регистрирует новую транзакцию в AppsFlyer.

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type
  • af_discount_id
  • af_discount_type
  • af_revenue_usd
  • af_revenue
  • store_commission
  • net_revenue
  • net_revenue_factors

Подписка отменена (af_ars_subscription_cancelled)

Описание

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

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type

Подписка приостановлена (af_ars_subscription_paused) — только для Android

Описание

Записывается, когда пользователь приостанавливает активную подписку.

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • af_purchase_token
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type

Подписка продолжена (af_ars_subscription_resumed)

Описание

Записывается, когда подписка по полной цене возобновляется после отмены или возврата подписки.

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type
  • af_discount_id
  • af_discount_type
  • af_reason
  • af_revenue
  • store_commission
  • net_revenue
  • net_revenue_factors

Отток после подписки (af_ars_subscription_churned)

Описание

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

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • Af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • Af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type
  • af_churn_reason

Возврат стоимости подписки (af_ars_subscription_refunded)

Описание

Записывается, когда подписчик оформляет возврат стоимости подписки.

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

Параметры 

  • app_id
  • customer_user_id
  • af_cancellation_reason
  • af_subscription_ownership_type
  • af_discount_id
  • af_discount_type
  • af_original_transaction_id
  • af_order_id
  • af_purchase_token
  • af_refunded_transaction_ids
  • af_revenue_usd
  • af_revenue
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_store
  • af_environment
  • af_period_type
  • store_commission
  • net_revenue
  • net_revenue_factors
  • net_revenue_usd

Льготный период подписки (af_ars_subscription_billing_grace)

Описание

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

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • Af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • Af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type

Подписка возобновлена (af_ars_subscription_renewed)

Описание

Записывается, когда происходит автопродление подписки.

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type
  • af_discount_id
  • af_discount_type
  • af_revenue_usd
  • af_revenue
  • store_commission
  • net_revenue
  • net_revenue_factors

Подписка изменена (af_ars_subscription_xgraded)

Описание

Записывается, когда подписчик переходит на другой продукт, понижает или повышает подписку.

Параметры 

  • app_id
  • customer_user_id
  • af_currency
  • af_expires_date_ms
  • af_subscription_ownership_type
  • af_original_transaction_id
  • af_order_id
  • af_purchase_token
  • af_transaction_id
  • af_product_id
  • android_id
  • idfa
  • ip
  • appsflyer_id
  • af_purchase_date_ms
  • af_store
  • af_environment
  • af_period_type
  • af_discount_id
  • af_discount_type
  • af_revenue_usd
  • af_revenue
  • store_commission
  • net_revenue
  • net_revenue_factors

Словарь параметров события

Параметр Примечания
app_id

Идентификатор приложения

customer_user_id

Последний идентификатор клиента, сообщенный рекламодателем.

af_cancellation_reason
  • Причина, по которой пользователь получил возврат средств:
    • 1: проблема с приложением
    • 0: другая причина
  • Только для iOS
af_churn_reason

Причина, по которой пользователь ушел. Возможные значения:

  • iOS.
    • cancel_intent
    • billing_issue
    • cost_related
    • product_unavailable
    • unknown_reason
  • Android;
    • Я недостаточно часто пользуюсь этой услугой
    • Технические проблемы
    • Причины, связанные с затратами
    • Я нашел приложение лучше
    • Другое
country_code

Код страны

af_currency

Местная валюта транзакции

af_expires_date_ms

Срок действия текущего платежного цикла подписки

af_subscription_ownership_type

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

af_discount_id

Идентификатор предложения, представленный пользователю во время первоначальной покупки

af_original_transaction_id
  • Идентификатор исходной транзакции
  • Только для iOS
af_order_id
  • Идентификатор заказа для транзакции
  • Только для Android
af_purchase_token
  • Токен покупки для транзакции
  • Только для Android
af_transaction_id
  • Идентификатор транзакции
  • Только для iOS
af_refunded_transaction_ids Массив идентификаторов всех возвращенных транзакций
Только для iOS
af_revenue_usd

Валовой доход в долларах США — на основе последней известной цены продукта

af_revenue

Валовой доход в местной валюте — на основе последней известной цены продукта

af_product_id

Идентификатор продукта подписки

advertiser_id

Идентификатор рекламодателя

idfa

Идентификатор устройства iOS

ip

IP-адреса

appsflyer_id

Идентификатор пользователя AppsFlyer

purchase_date_ms

Дата покупки для внутреннего события с записанным ID продукта

af_store

Магазин приложений, в котором был приобретен продукт подписки

af_environment

Среда, из которой получены данные, — производственная или песочница.

af_period_type

Тип периода подписки. Например: пробный, вводный или обычный.

store_commission
  • Рассчитанный процент комиссионных, которые магазин получает с купленного товара.
  • Отображается в виде десятичной дроби.
net_revenue

Чистый доход, рассчитанный с учетом всех повлиявших причин. См. net_revenue_factors.

net_revenue_factors
  • Массив, представляющий все повлиявшие причины, которые дают сумму net_revenue.
  • Пример значения: store_commission
af_cuids
  • В контексте ARS этот параметр содержит массив со всеми CUID.
  • Массив CUID отображается независимо от идентификаторов устройств. Таким образом, одни и те же CUID могут отображаться для нескольких идентификаторов устройства.
Параметры

Дополнительные сведения

Тестирование ARS через песочницу

Клиенты могут проверить интеграцию ARS в среде песочницы и убедиться, что:

  • Коннектор SDK ARS интегрирован должным образом.
  • Уведомления сервера ARS настроены правильно.

Факторы, которые необходимо учитывать:

В среде песочницы:

  • Только события первичной покупки заставляют коннектор SDK ARS создавать событие. Событие называется af_ars_sandbox_sdk и содержит:
    • Значение дохода 0.
    • Параметр af_sandbox_revenue, который включает в себя значение дохода от приобретенного продукта.
  • Все остальные события покупки отбрасываются, то есть коннектор SDK ARS не создает события.
  • Входящие уведомления сервера обрабатываются только в том случае, если коннектор SDK ARS сначала записывает исходную транзакцию. В этом случае событие создается под названием af_ars_sandbox_s2s.
  • Событие не создается для любого уведомления сервера, для которого коннектор SDK ARS сначала не зарегистрировал исходную транзакцию.

Ограничения и особенности

Ограничения и особенности
Специфика Примечания
Библиотеки биллинга Google V5 Не поддерживается
Уведомления Apple V2 Не поддерживается
Валовой доход Поддерживается
Чистый доход Не поддерживается
Комиссия магазина Не поддерживается
Налог Не поддерживается
Новые подписки Записываются только через SDK AppsFlyer
Изменение цен Если ARS не получает уведомление от SDK с новой ценой продукта, ARS продолжает сообщать доход по предыдущей цене продукта. Как только будет получена новая цена продукта от SDK покупки ARS, регистрируется новая цена.
Была ли эта статья полезной?