Итак, у вас есть приложение с автоматическими возобновляемыми подписками. Оно прекрасно работает, пользователи безудержно оформляют премиум подписки и пишут хвалебные отзывы. Красота! Всем привет, меня зовут Денис, я руководитель проекта Apphud – сервиса аналитики авто-возобновляемых подписок для приложений на iOS. Вам, как руководителю проекта, жизненно необходимо быть в курсе ключевых метрик продукта. Одной из самых важных является Life time value (LTV) – средний доход с каждого пользователя за все время пользования приложением. Но как его вычислить в случае с авто-возобновляемыми подписками на iOS? Как отследить момент продления, отмены, возобновления подписки пользователем? До недавних пор (а именно до 2017 года) единственным способом это сделать был так называемый Subscriptions Status Polling. В любой момент времени вы можете получить информацию о состоянии подписки, отправив нужный чек (receipt) на URL: https://buy.itunes.apple.com/verifyReceipt. Получив ее, вы можете просмотреть основные сведения о подписки, в том числе дату ее окончания. Правда ее стоимость вы все равно никак не получите. Чтобы реализовать Status Polling вы должны: Это сложно. Но в 2017 году Apple, казалось бы, решает эту проблему. На WWDC под овации аудитории они представляют Apple Subscriptions Status Update Notifications. Apple Subscriptions Status Update Notifications это механизм отправки webhook-ов на ваш сервер от Apple, когда происходят события, относящиеся к авто-возобновляемым подпискам. Чтобы их включить, нужно предварительно настроить ваш сервер на их прием: сервер должен поддерживать протокол App Transport Security (обычно все работает по умолчанию). После этого нужно перейти в App Store Connect и в секции “App Store” настроек вашего приложения вставить ссылку, по которой Apple будет слать POST-запрос всякий раз, когда будет происходить событие:  Готово! Теперь вы должны получать уведомления всякий раз, когда, например, происходит оформление, продление или отмена подписки. Apple отправляет 6 видов уведомлений, происходящих при различных событиях. Разберем каждый из них. Apple отсылает это уведомление, когда пользователь впервые оформляет подписку в какой-то группе подписок.  Это событие отправляется в тот момент, когда пользователь пользователь отменяет подписку через поддержку Apple Care и возвращает деньги за покупку. Подчеркнем, здесь идет речь не об обычной отмене подписки через настройки iOS.  Это событие было добавлено недавно. Оно отправляется, когда пользователь отключает или (заново) включает возобновление подписки через настройки iOS, приложение App Store или службу поддержки Apple:  Первое, что приходит в голову, когда вы видите название этого события: Apple отправляет его при автоматическом продлении подписки. Как бы не так! Событие RENEWAL отправляется, когда: подписка пользователя была отменена автоматически из-за проблем с банковской картой пользователя… и после этого пользователь вновь возобновил подписку. Именно в этот момент отправляется событие RENEWAL.   Это событие отправляется, если: Пользователь отменил подписку и через некоторое время после этого… пользователь вновь возобновил подписку. Именно в этот момент отправляется INTERACTIVE_RENEWAL.  DID_CHANGE_RENEWAL_PREF отправляется, когда пользователь переходит с одной подписки на другую в пределах одной группы покупок:  Apple предлагает целых 6 событий, но ни одно из них отправляется при автоматическом продлении подписки в обычном режиме. Почему они так сделали? Неясно. Дополнительно вводят в заблуждение названия этих событий. В таблице ниже приведена сводная информация о событиях.  Из-за того, что самое важное событие, которое нужно для расчета LTV – продление подписки в обычном режиме, – не присылается, вам все-таки придется использовать Status Polling. Существует вероятность, что Apple добавит это событие в ближайшее время, но, даже если это и произойдет, без собственного сервера вам все равно не обойтись. Этот сервер выступит “прослойкой” между Apple и другой системой аналитики (например, Amplitude, Flurry или Mixpanel). Получая события и проверяя чеки, вы будете отсылать в нее данные о продлениях, отменах и возвратах. Apple Subscriptions Notifications не так хороши как кажется, потому что только с помощью них нельзя решить основную задачу: узнать, сколько денег вам приносит один пользователь. Возможно, Apple упростит жизнь разработчикам в будущем, но одно можно сказать наверняка: текущая реализация Subscriptions Notifications крайне неочевидна и похожа на костыли. Делаем Apphud: уменьшаем Churn в iOS-приложениях