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

Отслеживание подписок из App Store

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

Anchor link to

App Store Server Notifications — это межсерверный сервис Apple, который в реальном времени отправляет на ваш бэкенд сообщение при каждом изменении статуса подписки.

Подключив App Store Server Notifications к Pushwoosh, вы сможете реагировать на весь жизненный цикл подписки, включая покупки, продления, отмены, проблемы с оплатой, истечение срока действия и возвраты средств — без создания собственной бэкенд-инфраструктуры. Каждый раз, когда статус подписки в учетной записи App Store пользователя меняется, Apple уведомляет Pushwoosh, а Pushwoosh вызывает соответствующее событие PW_Subscription* в профиле пользователя.

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

Anchor link to

Источник: App Store Server Notifications отправляются из Apple в Pushwoosh.

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

Anchor link to

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

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

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

  • productID: идентификатор продукта подписки в App Store.
  • expiresAt: время окончания текущего оплаченного периода в виде временной метки Unix в секундах. Включается, когда Apple предоставляет эту информацию.
Как события соотносятся с уведомлениями App Store Server

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

Событие PushwooshnotificationType / subtype
PW_SubscriptionStartSUBSCRIBED / INITIAL_BUY
PW_SubscriptionRenewDID_RENEW
PW_SubscriptionCancelDID_CHANGE_RENEWAL_STATUS / AUTO_RENEW_DISABLED
PW_SubscriptionResumeDID_CHANGE_RENEWAL_STATUS / AUTO_RENEW_ENABLED, SUBSCRIBED / RESUBSCRIBE
PW_SubscriptionBillingIssueDID_FAIL_TO_RENEW
PW_SubscriptionRecoveredDID_RENEW / BILLING_RECOVERY
PW_SubscriptionExpiredEXPIRED
PW_SubscriptionRefundREFUND, REVOKE

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

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

Anchor link to
  1. Статус подписки в учетной записи App Store пользователя меняется (покупка, продление, отмена и т. д.).
  2. Apple отправляет App Store Server Notification (V2) на ваш URL-адрес уведомлений Pushwoosh.
  3. Pushwoosh декодирует подписанные данные и считывает appAccountToken из транзакции.
  4. Pushwoosh находит устройство, HWID которого совпадает с этим токеном, находит привязанного к нему пользователя и регистрирует соответствующее событие PW_Subscription* для этого пользователя.

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

Anchor link to

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

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

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

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

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

Anchor link to

Установите appAccountToken равным HWID устройства в Pushwoosh

Anchor link to

Pushwoosh идентифицирует нужного пользователя по HWID устройства, поэтому ваше приложение должно прикреплять HWID устройства Pushwoosh в качестве appAccountToken при покупке подписки через StoreKit.

По умолчанию Pushwoosh iOS SDK использует identifierForVendor (IDFV) устройства в качестве HWID. IDFV уже является UUID, что точно соответствует формату, требуемому Apple для appAccountToken. Затем Pushwoosh автоматически определяет пользователя, привязанного к этому устройству, так что это работает независимо от того, назначаете ли вы свои собственные User ID с помощью setUserId.

// Прикрепите HWID устройства Pushwoosh (IDFV по умолчанию) в качестве appAccountToken
var options: Set<Product.PurchaseOption> = []
if let hwid = UIDevice.current.identifierForVendor {
options.insert(.appAccountToken(hwid))
}
let result = try await product.purchase(options: options)

Найдите код вашего приложения Pushwoosh

Anchor link to

Откройте ваше приложение в панели управления Pushwoosh. Ваш код приложения (формат XXXXX-XXXXX) отображается под названием проекта в боковой панели.

Код приложения понадобится вам для создания URL-адреса уведомлений.

Добавьте URL-адрес уведомлений в App Store Connect

Anchor link to
  1. В App Store Connect перейдите в Apps → ваше приложение → App Information (в разделе General) и прокрутите до App Store Server Notifications.
  2. Выберите уведомления Version 2.
  3. Установите и Production Server URL, и Sandbox Server URL на:
https://appstore-notifications.pushwoosh.com/appstore/YOUR_APPLICATION_CODE/
  1. Замените YOUR_APPLICATION_CODE на код приложения из предыдущего шага. Сохраните косую черту в конце.

Подтвердите события в Pushwoosh

Anchor link to

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

Создайте свою кампанию

Anchor link to

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

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

Anchor link to

App Store Server Notifications можно вызывать в среде Sandbox от Apple. Для проверки интеграции:

  1. Совершите покупку подписки в песочнице с установленным appAccountToken, как описано выше. Это вызовет PW_SubscriptionStart.
  2. Отключите автопродление на экране управления подписками устройства. Это вызовет PW_SubscriptionCancel.
  3. В панели управления Pushwoosh откройте профиль пользователя и перейдите в историю событий.
  4. Убедитесь, что события появляются в течение нескольких мгновений.