Все статьи
Deep dive9 мин чтения

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

Отклонённая карта, а не нажатие на отмену, завершает большую долю подписок, и магазин неделями продолжает попытки списания. Вот как работают льготный период оплаты, повтор списания и удержание аккаунта в App Store и Google Play, и во что непроизвольный отток вам действительно обходится.

Рука держит телефон, на котором показан баннер о неудавшемся платеже за подписку, рядом с просроченной банковской картой, иллюстрируя непроизвольный отток из-за отклонённого продления

Главное

  • Непроизвольный отток представляет собой подписку, которая заканчивается, потому что списание за продление не удалось, обычно из-за просроченной или отклонённой карты, а не потому, что клиент решил отменить её. Это проблема платежей, и оба магазина устроены так, чтобы восстанавливать её за вас.
  • Когда продление срывается, ни один из магазинов не завершает подписку сразу. Apple повторяет попытку списания с карты до 60 дней, а Google Play держит открытым 60-дневное окно восстановления, разделённое между льготным периодом и удержанием аккаунта.
  • В течение льготного периода оплаты подписчик сохраняет полный доступ, пока магазин повторяет попытки. Восстановление внутри льготного периода в любом из магазинов означает отсутствие перерыва и потерянных дней, а дата списания не сдвигается.
  • После льготного периода подписчик теряет доступ, но повторы продолжаются. Восстановление тогда приводит к тому, что Apple начинает новый расчётный цикл с даты восстановления, а Google сбрасывает дату списания, так что вы получаете подписчика обратно со свежим отсчётом.
  • Восстановление идёт в фоне без каких-либо затрат для вас. Вы не платите процессингу за повторы, и Apple даже покрывает бесплатные дни, предоставленные во время льготного периода. Выручка, которую вы теряете, обычно является выручкой, которую вы упускаете, отключая льготный период или ошибочно принимая восстановимого подписчика за ушедшего.
  • Сигналы приходят по тем же каналам App Store Server Notifications и Google Play RTDN, которые вы уже используете для возвратов: DID_FAIL_TO_RENEW и SUBSCRIPTION_IN_GRACE_PERIOD, SUBSCRIPTION_ON_HOLD, затем BILLING_RECOVERY или SUBSCRIPTION_RECOVERED, когда карта проходит.
  • Подписчик в льготном периоде или удержании ещё не ушёл. Считайте его потерянным только тогда, когда 60-дневное окно закрывается без восстановления, иначе ваш отток выглядит хуже, чем есть, а показатель восстановления выглядит как ноль.

Карта истекает, банк отклоняет продление, и подписчик, которого вы никогда не теряли, перестаёт платить. Он не открывал ваше приложение и не нажимал на отмену. Его способ оплаты просто дал сбой, и, если вы не знаете, что происходит дальше, он беззвучно выпадает из вашей выручки. Это непроизвольный отток, и как в App Store, так и в Google Play магазин не отказывается от этого платежа, когда тот срывается. Он сохраняет подписчика, продолжает повторять попытки списания с карты и в большинстве случаев неделями держит открытым окно, в котором деньги ещё могут прийти. Большая часть этого восстановления происходит независимо от того, действуете вы или нет. Правильно это прочитать значит увидеть разницу между тем, чтобы засчитать настоящую отмену, и тем, чтобы списать платёж, который магазин вот-вот соберёт за вас.

Это не возврат и не чарджбэк. Ничего не отменяется, деньги не уходят с вашего счёта. Выручка просто никогда не приходит, а в ваших отчётах это выглядит как обычное истечение. Именно поэтому она утекает тихо. Клиент, который отменяет, говорит вам, что уходит. Клиент, чья карта дала сбой, не говорит вам ничего, и если вы обращаетесь с ними одинаково, вы теряете тех, кого магазин вот-вот собирался вернуть.

Что такое непроизвольный отток на самом деле

Отток бывает двух видов, и это не одна и та же проблема. Добровольный отток сводится к решению: клиент отменяет, потому что больше не хочет подписку. Непроизвольный отток сводится к случайности: списание за продление срывается, обычно потому что карта истекла, достигла лимита или была помечена банком из-за повторяющегося или зарубежного списания. Первое остаётся проблемой продукта, которую вы решаете продуктом. Второе остаётся проблемой платежей, и именно её магазин устроен решать за вас.

Почему она больше, чем кажется

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

App Store продолжает попытки 60 дней

Когда автоматически продлеваемую подписку не удаётся списать, Apple её не завершает. Она переходит в период повтора списания, который длится до 60 дней, и Apple продолжает попытки списания с карты на протяжении этого окна. То, что подписчик испытывает в течение этих 60 дней, зависит от одной настройки, которую вы контролируете: льготного периода оплаты.

Льготный период оплаты сохраняет доступ, пока Apple повторяет попытки

Включите льготный период оплаты, и подписчик сохранит полный доступ к вашему платному контенту на протяжении длины льготного периода, до 16 дней на месячных и годовых планах, пока Apple повторяет попытки списания с карты. Восстановление внутри льготного периода означает отсутствие какого-либо перерыва: та же дата списания, отсутствие потерянных дней обслуживания и отсутствие разрыва в вашей выручке. Apple даже покрывает стоимость дней, которые оно предоставило бесплатно во время льготного периода. Это редкая настройка, которая является почти чистой выгодой, потому что восстановленный подписчик даже не замечает неудавшегося списания.

После льготного периода доступ прекращается, но повторы нет

Как только льготный период заканчивается без успешного списания, подписчик теряет доступ, но Apple продолжает попытки списания с карты в течение остатка 60-дневного окна. Восстановление в этот промежуток приводит к тому, что подписчик продлевает подписку в дату восстановления, начиная новый расчётный цикл, и Apple не выставляет счёт за уже отданные дни льготного периода. Только когда полные 60 дней проходят без успешного платежа, подписка истекает окончательно. Оставьте льготный период выключенным, и подписчик теряет доступ в тот момент, когда продление срывается, что является наихудшим возможным моментом, чтобы подсунуть платящему клиенту запертую дверь.

Уведомления, которые отмечают каждый шаг

Ваш канал App Store Server Notifications рассказывает всю последовательность. DID_FAIL_TO_RENEW сообщает вам, что продление сорвалось, неся подтип GRACE_PERIOD, пока подписчик всё ещё внутри льготного периода и должен сохранять доступ. GRACE_PERIOD_EXPIRED отмечает конец льготного периода, момент, чтобы отозвать доступ. DID_RENEW с подтипом BILLING_RECOVERY означает, что карта наконец прошла и подписчик вернулся. EXPIRED с подтипом BILLING_RETRY означает, что 60 дней истекли и подписчик действительно ушёл. Обработайте эти четыре, и ваш доступ всегда будет соответствовать реальному состоянию.

Календарь с отмеченным диапазоном дней и маленькими песочными часами на нём, иллюстрирующий окно восстановления, которое магазин держит открытым при неудавшемся продлении подписки

Google Play делит те же 60 дней на две части

Google Play реализует ту же идею в иной форме и со своим словарём. Неудавшееся продление проводит подписку через льготный период, а затем удержание аккаунта, и эти два вместе составляют 60-дневное окно восстановления.

Льготный период сохраняет доступ, удержание аккаунта его забирает

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

Расчёт 60 дней изменился в конце 2025 года

С 1 декабря 2025 года Google вычисляет длину удержания аккаунта как 60 дней минус ваш льготный период. 16-дневный льготный период оставляет 44 дня удержания, а совокупное окно восстановления остаётся 60 дней. Выберите более длинный льготный период, и вы обмениваете время удержания на время доступа, но общее окно не меняется. Google рекомендует считывать актуальное состояние подписки через свой API, а не предполагать фиксированную длину удержания, потому что разделение теперь выводится, а не является статичным.

Типы RTDN, которые вы обрабатываете

Real-time Developer Notifications от Google Play называют каждый этап. SUBSCRIPTION_IN_GRACE_PERIOD означает сохранить доступ и предложить клиенту исправить карту. SUBSCRIPTION_ON_HOLD означает отозвать доступ сейчас. SUBSCRIPTION_RECOVERED означает, что платёж прошёл и доступ возвращается. SUBSCRIPTION_CANCELED, а затем SUBSCRIPTION_EXPIRED означают, что окно закрылось без исправления и подписчик ушёл. Они приходят по той же трубе RTDN, которую вы уже используете для аннулированных покупок и возвратов.

ЭтапApp StoreGoogle Play
Продление сорвалось, доступ сохранёнЛьготный период оплаты, до 16 днейЛьготный период, длина, которую вы задаёте
Продление сорвалось, доступ потерянПосле льготного периода, весь остаток 60 днейУдержание аккаунта
Всё окно восстановленияДо 60 дней60 дней, льготный период плюс удержание
Восстановление во время льготного периодаТа же дата списания, без потерянных днейТа же дата продления, без перерыва
Восстановление после льготного периодаНовый расчётный цикл с даты восстановленияДата списания сбрасывается на дату восстановления
Заканчивается окончательноEXPIRED, подтип BILLING_RETRYSUBSCRIPTION_EXPIRED

Во что вам обходится непроизвольный отток

Затраты здесь не того рода, что при возврате, где уже учтённые деньги забираются обратно. Это выручка, которая никогда не появляется, и она прячется в ваших цифрах как обычное истечение.

Продление, за которое вы уже заплатили, чтобы его заработать

Каждый повторяющийся подписчик стоил вам реальных денег, чтобы его завоевать: рекламные расходы и креативы, которые его привлекли, онбординг, а также вычислительные мощности, хранение и вызовы API, которые вы выполняли для него каждый цикл с тех пор. Подписчик, потерянный из-за мёртвой карты, уходит со всеми этими невозвратными затратами, и, чтобы заместить выручку, вы платите затраты на привлечение заново за кого-то нового. Подписчик, которого магазин восстанавливает, не стоит вам ничего для повторного привлечения. Разрыв между этими двумя, полное повторное привлечение против нуля, и есть те деньги, которые непроизвольный отток на самом деле двигает.

Восстановление идёт бесплатно, если вы ему позволите

Вот часть, которую упускают. Во время льготного периода и повторов магазин собирает платёж от вашего имени без каких-либо затрат для вас. Вы не ведёте взыскание, вы не платите процессингу за каждый повтор, и вам не нужно отправлять ни одного письма. Восстановление происходит в фоне на протяжении 60-дневного окна. Когда эта выручка всё же теряется, это обычно сводится к одной из двух самостоятельно нанесённых ошибок: отключению льготного периода, из-за чего подписчики блокируются в тот момент, когда карта даёт сбой, или обращению с подписчиком, который всё ещё внутри окна восстановления, как с жёсткой отменой, и отказу от выручки, от которой магазин не отказывался.

Как на самом деле держать непроизвольный отток низким

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

Включите льготный период оплаты

В обоих магазинах включите льготный период. Он удерживает платящих подписчиков в вашем приложении, пока магазин повторяет попытки, так что восстановленный подписчик не теряет ни дня, и это здесь единственный рычаг с наибольшей отдачей. В App Store это переключатель в App Store Connect. В Google Play льготный период включён по умолчанию для автоматически продлеваемых базовых планов, так что задача в том, чтобы держать его включённым и задать длину, которую вы спокойно готовы предоставлять бесплатно.

Приведите доступ в соответствие с реальным состоянием при льготном периоде и удержании

Сохраняйте доступ во время льготного периода, при DID_FAIL_TO_RENEW от Apple с подтипом GRACE_PERIOD и SUBSCRIPTION_IN_GRACE_PERIOD от Google. Отзывайте доступ, когда льготный период Apple истекает и когда Google отправляет SUBSCRIPTION_ON_HOLD. Восстанавливайте его в тот момент, когда приходит восстановление, при BILLING_RECOVERY или SUBSCRIPTION_RECOVERED. Ошибитесь в одну сторону, и вы раздаёте бесплатный доступ неделями. Ошибитесь в другую, и вы блокируете подписчика, который в одном повторе от того, чтобы снова вам заплатить.

Считайте восстановление отдельно от оттока

Подписчик в льготном периоде или удержании аккаунта не ушёл. Не заносите его как потерянного, пока окно восстановления не закроется без успешного списания. Если ваша аналитика сводит неудавшееся продление и отмену клиентом в одно число, ваш отток читается хуже, чем есть, а ваше восстановление читается так, будто ничего не происходит. Выделите непроизвольный отток отдельно и отслеживайте его показатель восстановления, потому что этот показатель и есть число, которое вы действительно можете сдвинуть настройкой и подсказкой.

Подтолкните к исправлению, а затем уйдите с дороги

Единственная полезная вещь, которую вы можете добавить, сводится к подталкиванию. Оба магазина позволяют вам предложить подписчику обновить способ оплаты, Apple внутри приложения, а Google через свой In-App Messaging API и уведомления Play. Вовремя показанная подсказка во время льготного периода повышает восстановление, потому что большинство этих клиентов всё ещё хотят подписку и им нужно лишь исправить карту. За пределами подталкивания позвольте магазину повторять. Он уже делает дорогую часть, бесплатно, неделями.

Те же каналы App Store Server Notifications и RTDN, которые RefundHalt уже слушает для возвратов, несут и каждый из этих платёжных сигналов. Льготный период, удержание, восстановление и непроизвольный отток попадают в вашу панель рядом с вашими возвратами, так что вы можете наблюдать, как окно восстановления делает свою работу, вместо того чтобы гадать, какие неудавшиеся продления ушли, а какие возвращаются.

Короткая версия

Неудавшееся продление вовсе не отмена, и магазин относится к нему так неделями. Apple повторяет попытки списания с карты до 60 дней и, с включённым льготным периодом, при этом удерживает подписчика в вашем приложении. Google Play делит те же 60 дней между льготным периодом, который сохраняет доступ, и удержанием аккаунта, которое его убирает. Включите льготный период, обработайте уведомления о льготном периоде и удержании, чтобы доступ соответствовал реальности, предложите клиенту исправить карту и считайте подписчика ушедшим только после того, как окно закроется пустым. Непроизвольный отток остаётся единственной утечкой выручки, которую магазин активно старается заткнуть за вас. Ваша задача в основном сводится к тому, чтобы не мешать и читать свои цифры достаточно хорошо, чтобы знать, когда потеря настоящая.

Частые вопросы

В чём разница между добровольным и непроизвольным оттоком?
Добровольный отток наступает, когда клиент выбирает отменить подписку. Непроизвольный отток представляет собой подписку, заканчивающуюся, потому что списание за продление сорвалось, обычно из-за просроченной или отклонённой карты, без решения клиента уйти. Непроизвольный отток остаётся проблемой платежей, которую магазин пытается восстановить за вас, поэтому его не следует считать или обрабатывать так же, как настоящую отмену.
Сохраняет ли подписчик доступ, когда его платёж за продление срывается?
Это зависит от этапа. В течение льготного периода оплаты подписчик сохраняет полный доступ, пока магазин повторяет попытки списания с карты, как в App Store, так и в Google Play. После того как льготный период заканчивается, доступ прекращается: Apple продолжает попытки в течение остатка 60-дневного окна с выключенным доступом, а Google переводит подписку в удержание аккаунта, где доступ убран, пока платёж не будет исправлен.
Как долго магазин продолжает пытаться списать по неудавшейся подписке?
До 60 дней в обоих магазинах. Apple ведёт период повтора списания длиной до 60 дней, внутри которого располагается льготный период оплаты. Google Play держит 60-дневное окно восстановления, разделённое между льготным периодом и удержанием аккаунта, где с 1 декабря 2025 года удержание аккаунта вычисляется как 60 дней минус длина вашего льготного периода.
Стоит ли мне включать льготный период оплаты?
Для большинства приложений да. Льготный период удерживает платящих подписчиков в вашем приложении, пока магазин повторяет попытки по неудавшейся карте, так что любой, кто восстанавливается внутри него, не теряет ни дня и никогда не замечает сбоя. Ценой являются несколько дней бесплатного доступа для подписчиков, которые никогда не восстанавливаются. Выгода состоит в удержании тех, кто ушёл бы из-за внезапной блокировки.
Подписчик в льготном периоде или удержании аккаунта уже ушёл в отток?
Нет. Он внутри окна восстановления, и магазин всё ещё пытается собрать платёж. Подсчёт его как ушедшего завышает ваш отток и скрывает ваш показатель восстановления. Заносите подписчика как потерянного только тогда, когда 60-дневное окно закрывается без успешного платежа, о чём магазины сигнализируют уведомлением EXPIRED (billing retry) в Apple и SUBSCRIPTION_EXPIRED в Google Play.
Создаёт ли непроизвольный отток возврат или чарджбэк?
Нет. Ничего не отменяется и деньги не уходят с вашего счёта. Неудавшееся продление представляет собой выручку, которая никогда не приходит, а не платёж, который отзывается обратно. Это противоположность возврата или чарджбэка, и именно поэтому он прячется в ваших отчётах как обычное истечение, а не появляется как уходящие деньги.

Источники и дополнительное чтение

RefundHalt

Автопилот возвратов для App Store и Google Play

Читайте дальше

Deep dive8 мин чтения

Несанкционированные встроенные покупки, сделанные детьми, почти всегда возвращаются родителю, а расходы несёте вы

Когда ребёнок покупает набор монет на телефоне родителя, и Apple, и Google возвращают деньги, и никто из них не спрашивает вас заранее. Так это устроили регуляторы. Вот как работают эти возвраты за несанкционированные встроенные покупки в каждом магазине, что за 15-минутное окно, в котором уходят деньги, и во сколько на самом деле обходится одна такая покупка.

Deep dive8 мин чтения

Вы никогда не владели app refund tax, поэтому возврат стоит вам вашей доли, а не итога в чеке

Оформите возврат встроенной покупки, и в чеке отобразится возвращаемая цена плюс налог. Этот налог никогда не был вашими деньгами. Apple и Google взимают и перечисляют его как merchant of record, а затем отменяют при возврате, не касаясь вашей доли. Вот что возврат стоит на самом деле и та единственная схема, при которой налог становится вашим.

Следующий запрос на возврат уже в пути.

Настройте RefundHalt за то время, что уходит на чтение очередного письма в поддержку о возврате, который вы не успели оспорить.