Отслеживание подписок Google Play
Обзор интеграции
Anchor link toReal-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 toPushwoosh сопоставляет каждое поддерживаемое уведомление Google Play с единым набором событий PW_Subscription*, чтобы вы могли запускать кампании на любом этапе жизненного цикла подписки.
| Событие | Срабатывает, когда |
|---|---|
PW_SubscriptionStart | Пользователь впервые покупает подписку. |
PW_SubscriptionRenew | Подписка автоматически продлевается на новый расчетный период. |
PW_SubscriptionCancel | Пользователь отключает автопродление. Подписка остается активной до истечения срока ее действия. |
PW_SubscriptionResume | Пользователь возобновляет подписку до ее истечения. |
PW_SubscriptionBillingIssue | Платеж за продление не прошел, и подписка переходит в льготный период. |
PW_SubscriptionRecovered | Ранее неудачное продление проходит успешно, и подписка снова становится активной. |
PW_SubscriptionExpired | Срок действия подписки полностью истек, и она больше не активна. |
PW_SubscriptionRefund | Google Play отзывает подписку (например, после возврата средств). |
Каждое событие несет в себе одни и те же атрибуты:
- productID: идентификатор продукта подписки в Google Play.
- expiresAt: время окончания текущего оплаченного периода в виде временной метки Unix в секундах. Включается, когда Google предоставляет эти данные.
Как события сопоставляются с Real-Time Developer Notifications
Для разработчиков, проверяющих интеграцию, каждое событие Pushwoosh соответствует этим значениям notificationType RTDN:
| Событие Pushwoosh | RTDN notificationType |
|---|---|
PW_SubscriptionStart | SUBSCRIPTION_PURCHASED (4) |
PW_SubscriptionRenew | SUBSCRIPTION_RENEWED (2) |
PW_SubscriptionCancel | SUBSCRIPTION_CANCELED (3) |
PW_SubscriptionResume | SUBSCRIPTION_RESTARTED (7) |
PW_SubscriptionBillingIssue | SUBSCRIPTION_IN_GRACE_PERIOD (6) |
PW_SubscriptionRecovered | SUBSCRIPTION_RECOVERED (1) |
PW_SubscriptionExpired | SUBSCRIPTION_EXPIRED (13) |
PW_SubscriptionRefund | SUBSCRIPTION_REVOKED (12) |
Другие типы уведомлений, такие как приостановка, изменение цены, отсрочка и пауза, подтверждаются, но не публикуют событие.
Как это работает
Anchor link toУведомление Google Play не содержит идентификатора Pushwoosh. Оно включает только токен покупки и packageName приложения. Поэтому ваше приложение помечает каждую покупку необходимым для Pushwoosh идентификатором, а Pushwoosh считывает его из покупки при поступлении уведомления.
- Статус подписки в аккаунте пользователя Google Play меняется (покупка, продление, отмена и т. д.).
- Google Play публикует сообщение RTDN в общую тему Pushwoosh.
- Pushwoosh считывает
obfuscatedAccountIdпокупки, который ваше приложение установило в значение<AppCode>:<hwid>во время покупки. - 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 toPushwoosh идентифицирует нужного пользователя по 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)BillingFlowParams billingParams = BillingFlowParams.newBuilder() .setProductDetailsParamsList(productDetailsParamsList) // Tag the purchase with the Pushwoosh account identifier "<AppCode>:<hwid>" .setObfuscatedAccountId(Pushwoosh.getInstance().getSubscriptionAccountId()) .build();
billingClient.launchBillingFlow(activity, billingParams);Направление Real-Time Developer Notifications в Pushwoosh
Anchor link to- В Google Play Console перейдите в раздел Монетизация → Настройка монетизации.
- Найдите Уведомления для разработчиков в реальном времени и установите Название темы:
projects/pw-playstore-subscriptions/topics/play-rtdn- Нажмите Сохранить. Разрешение на публикацию уже предоставлено службе уведомлений Google, поэтому здесь больше ничего настраивать не нужно.
Предоставление доступа сервисному аккаунту Pushwoosh
Anchor link to- В Google Play Console перейдите в раздел Пользователи и разрешения → Пригласить нового пользователя.
- Введите email сервисного аккаунта Pushwoosh:
play-api@pw-playstore-subscriptions.iam.gserviceaccount.com- В разделе Разрешения для приложений добавьте свое приложение и предоставьте разрешение Просмотр финансовых данных, заказов и ответов на опрос об отмене подписки (а также разрешение на просмотр информации о приложении).
- Нажмите Сохранить. Сервисному аккаунту не нужно принимать приглашение. Доступ активируется немедленно.
Подтверждение событий в Pushwoosh
Anchor link toPushwoosh регистрирует каждое событие PW_Subscription* в вашем проекте при его первом появлении с атрибутами productID и expiresAt. После теста откройте Аудитория → События, чтобы убедиться, что события появились. После этого они будут готовы для сегментации, статистики и Customer Journeys.
Создание кампании
Anchor link toСоздайте Customer Journey с входом на основе триггера по любому событию PW_Subscription*, например, PW_SubscriptionCancel для возврата пользователей или PW_SubscriptionStart для онбординга, и добавьте сообщения, которые вы хотите отправить.
Тестирование
Anchor link toЧтобы проверить интеграцию от начала до конца:
- В Google Play Console откройте Настройка монетизации и нажмите Отправить тестовое уведомление. Должно появиться сообщение об успехе, подтверждающее, что тема настроена правильно.
- Совершите покупку подписки с установленным, как описано выше, идентификатором аккаунта (это вызовет событие
PW_SubscriptionStart), затем отмените ее в Play Store → Подписки → Отменить (это вызовет событиеPW_SubscriptionCancel). - В Pushwoosh Control Panel откройте профиль пользователя и перейдите в историю событий.
- Убедитесь, что события появятся через несколько мгновений.