Перейти к содержанию

Отслеживание подписок Google Play

Обзор интеграции

Anchor link to

Real-Time Developer Notifications (RTDN) — это межсерверная служба Google Play, которая отправляет сообщения в реальном времени при каждом изменении статуса подписки.

Подключив Google Play RTDN к Pushwoosh, вы сможете реагировать на весь жизненный цикл подписки, включая покупки, продления, отмены, проблемы с оплатой, истечение срока действия и возвраты, — без создания собственной серверной инфраструктуры. Каждый раз, когда статус подписки в аккаунте пользователя Google Play меняется, Google уведомляет Pushwoosh, а Pushwoosh запускает соответствующее событие PW_Subscription* в профиле пользователя.

Тип интеграции

Anchor link to

Источник: Real-Time Developer Notifications отправляются из Google Play в Pushwoosh.

Отслеживаемые события

Anchor link to

Pushwoosh сопоставляет каждое поддерживаемое уведомление Google Play с единым набором событий PW_Subscription*, чтобы вы могли запускать кампании на любом этапе жизненного цикла подписки.

СобытиеСрабатывает, когда
PW_SubscriptionStartПользователь впервые покупает подписку.
PW_SubscriptionRenewПодписка автоматически продлевается на новый расчетный период.
PW_SubscriptionCancelПользователь отключает автопродление. Подписка остается активной до истечения срока ее действия.
PW_SubscriptionResumeПользователь возобновляет подписку до ее истечения.
PW_SubscriptionBillingIssueПлатеж за продление не прошел, и подписка переходит в льготный период.
PW_SubscriptionRecoveredРанее неудачное продление проходит успешно, и подписка снова становится активной.
PW_SubscriptionExpiredСрок действия подписки полностью истек, и она больше не активна.
PW_SubscriptionRefundGoogle Play отзывает подписку (например, после возврата средств).

Каждое событие несет в себе одни и те же атрибуты:

  • productID: идентификатор продукта подписки в Google Play.
  • expiresAt: время окончания текущего оплаченного периода в виде временной метки Unix в секундах. Включается, когда Google предоставляет эти данные.
Как события сопоставляются с Real-Time Developer Notifications

Для разработчиков, проверяющих интеграцию, каждое событие Pushwoosh соответствует этим значениям notificationType RTDN:

Событие PushwooshRTDN notificationType
PW_SubscriptionStartSUBSCRIPTION_PURCHASED (4)
PW_SubscriptionRenewSUBSCRIPTION_RENEWED (2)
PW_SubscriptionCancelSUBSCRIPTION_CANCELED (3)
PW_SubscriptionResumeSUBSCRIPTION_RESTARTED (7)
PW_SubscriptionBillingIssueSUBSCRIPTION_IN_GRACE_PERIOD (6)
PW_SubscriptionRecoveredSUBSCRIPTION_RECOVERED (1)
PW_SubscriptionExpiredSUBSCRIPTION_EXPIRED (13)
PW_SubscriptionRefundSUBSCRIPTION_REVOKED (12)

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

Как это работает

Anchor link to

Уведомление Google Play не содержит идентификатора Pushwoosh. Оно включает только токен покупки и packageName приложения. Поэтому ваше приложение помечает каждую покупку необходимым для Pushwoosh идентификатором, а Pushwoosh считывает его из покупки при поступлении уведомления.

  1. Статус подписки в аккаунте пользователя Google Play меняется (покупка, продление, отмена и т. д.).
  2. Google Play публикует сообщение RTDN в общую тему Pushwoosh.
  3. Pushwoosh считывает obfuscatedAccountId покупки, который ваше приложение установило в значение <AppCode>:<hwid> во время покупки.
  4. Pushwoosh определяет устройство, HWID которого совпадает, находит связанного с ним пользователя и публикует соответствующее событие PW_Subscription* для этого пользователя.

Сценарии использования

Anchor link to

Возвращение уходящих подписчиков: Отключение автопродления не прекращает доступ немедленно. Подписка остается активной до конца оплаченного периода, и это ваше окно возможностей для возвращения пользователя. При событии PW_SubscriptionCancel запустите Customer Journey с push-уведомлением для удержания, email-сообщением о функциях, которые они потеряют, или in-app сообщением со скидкой на продление до истечения доступа.

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

Спасение неудачных платежей: Когда срабатывает событие PW_SubscriptionBillingIssue, это означает, что платеж за продление не прошел, и подписка находится в льготном периоде. Предложите пользователю обновить способ оплаты до того, как он потеряет доступ, и отправьте подтверждение с помощью PW_SubscriptionRecovered после решения проблемы.

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

Настройка интеграции

Anchor link to

Прежде чем начать, убедитесь, что у вас есть приложение Pushwoosh с настроенным FCM (уже требуется для push-уведомлений), приложение Google Play с подпиской и доступ администратора к Play Console.

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

Anchor link to

Pushwoosh идентифицирует нужного пользователя по HWID устройства в сочетании с вашим Application Code. Pushwoosh Android SDK предоставляет вспомогательный метод, getSubscriptionAccountId(), который возвращает это значение уже в формате <AppCode>:<hwid>. Передайте его в BillingFlowParams.setObfuscatedAccountId() при запуске процесса оплаты Google Play.

val billingParams = BillingFlowParams.newBuilder()
.setProductDetailsParamsList(productDetailsParamsList)
// Tag the purchase with the Pushwoosh account identifier "<AppCode>:<hwid>"
.setObfuscatedAccountId(Pushwoosh.getInstance().subscriptionAccountId)
.build()
billingClient.launchBillingFlow(activity, billingParams)

Направление Real-Time Developer Notifications в Pushwoosh

Anchor link to
  1. В Google Play Console перейдите в раздел Монетизация → Настройка монетизации.
  2. Найдите Уведомления для разработчиков в реальном времени и установите Название темы:
projects/pw-playstore-subscriptions/topics/play-rtdn
  1. Нажмите Сохранить. Разрешение на публикацию уже предоставлено службе уведомлений Google, поэтому здесь больше ничего настраивать не нужно.

Предоставление доступа сервисному аккаунту Pushwoosh

Anchor link to
  1. В Google Play Console перейдите в раздел Пользователи и разрешения → Пригласить нового пользователя.
  2. Введите email сервисного аккаунта Pushwoosh:
play-api@pw-playstore-subscriptions.iam.gserviceaccount.com
  1. В разделе Разрешения для приложений добавьте свое приложение и предоставьте разрешение Просмотр финансовых данных, заказов и ответов на опрос об отмене подписки (а также разрешение на просмотр информации о приложении).
  2. Нажмите Сохранить. Сервисному аккаунту не нужно принимать приглашение. Доступ активируется немедленно.

Подтверждение событий в Pushwoosh

Anchor link to

Pushwoosh регистрирует каждое событие PW_Subscription* в вашем проекте при его первом появлении с атрибутами productID и expiresAt. После теста откройте Аудитория → События, чтобы убедиться, что события появились. После этого они будут готовы для сегментации, статистики и Customer Journeys.

Создание кампании

Anchor link to

Создайте Customer Journey с входом на основе триггера по любому событию PW_Subscription*, например, PW_SubscriptionCancel для возврата пользователей или PW_SubscriptionStart для онбординга, и добавьте сообщения, которые вы хотите отправить.

Тестирование

Anchor link to

Чтобы проверить интеграцию от начала до конца:

  1. В Google Play Console откройте Настройка монетизации и нажмите Отправить тестовое уведомление. Должно появиться сообщение об успехе, подтверждающее, что тема настроена правильно.
  2. Совершите покупку подписки с установленным, как описано выше, идентификатором аккаунта (это вызовет событие PW_SubscriptionStart), затем отмените ее в Play Store → Подписки → Отменить (это вызовет событие PW_SubscriptionCancel).
  3. В Pushwoosh Control Panel откройте профиль пользователя и перейдите в историю событий.
  4. Убедитесь, что события появятся через несколько мгновений.