[Аналитика мобильных приложений, Монетизация мобильных приложений, Разработка под iOS] Apple Grace Period и Billing Retry статусы при обработке чеков пользователей
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Привет. В этой статье мы поговорим про такую частую проблему, как ошибка оплаты в мобильных приложениях с подписочной моделью. Если взять средние данные из системы Qonversion, то 15-20% триалов переходят в Billing Issue. Из них около 15% возвращаются в платное состояние. Поддержка Grace Period позволит улучшить пользовательский опыт и повысить процент возврата в платное состояние.
План:
- Как устроен Billing Retry?
- Что такое Grace Period?
- Продуктовые подходы для работы с Billing Retry
Как устроен Billing Retry?
Ошибки с оплатой являются одной из частых причин потери подписчиков.
Для наглядности, рассмотрим следующий пример.
За некоторое время до завершения очередного оплаченного периода, Apple совершает попытку списать средства со счёта пользователя. Если при этом возникает ошибка, пользователь переходит в состояние Billing Retry. В таком состоянии он может находиться до 60 дней. При этом Apple периодически совершает попытку произвести оплату за следующий период подписки. Всё это время доступ к приложению для пользователя закрыт. На примере видно, что через 10 дней после успешного совершения оплаты возобновляется цикл списания средств. Всё это усложняет расчёт LTV, а также приводит к ухудшению пользовательского опыта.
При проверке чека пользователя мы обнаружим поле is_in_billing_retry_period и expiration_intent:
"pending_renewal_info": [
{
"expiration_intent": "2",
"auto_renew_product_id": "product.99.trial.3d",
"original_transaction_id": "10000000306492965",
"is_in_billing_retry_period": "1",
"product_id": "product.99.trial.3d",
"auto_renew_status": "1"
}
]
Эти поля сообщают нам о неудачной попытке списать средства.
Что такое Grace Period?
Для улучшения пользовательского опыта в течение периода, когда Apple не может совершить списание средств за следующий автовозобновляемый период, ваше приложение может предоставлять доступ к контенту. Для этого вам необходимо использовать Grace Period. Grace Period включается для авто-возобновляемых подписок Enable Billing Grace Period for Auto-Renewable Subscriptions, в этом случае пользователь сохраняет полный контроль над приложением, пока Apple пытается произвести оплату.
Продолжительность Grace Period зависит от продолжительности вашей подписки:
Давайте рассмотрим два примера:
Пример 1: успешное списание в течение Grace Period
За некоторое время до завершения первого автовозобновляемого периода, Apple совершает неудачную попытку списать средства. Такой результат при отключенном Grace Period означал был моментальный переход в состояние Billing Retry с заблокированным доступом к приложению. Однако при включённом Grace Period, начинается следующий автовозобновляемый период, а пользователь продолжает сохранять доступ к контенту. Через некоторое время Apple совершает успешное списание средств, таким образом существующий цикл оплаты не прерывается.
Пример 2: неудачное списание в течение Grace Period
Во втором примере Apple не удаётся списать средства в течение Grace Period, что приводит к изменению текущего цикла списаний, а пользователь переходит в статус Billing Retry с заблокированным доступом. Через некоторое время Apple удаётся произвести списание денежных средств, при этом запускается новый автовозобновляемый период со дня списания.
После включения Grace Period в настройках приложения, JSON response, который вы получаете при валидации чека будет содержать дополнительное поле grace_period_expires_date_ms, именно это поле и означает новый период завершения доступа к контенту в приложении.
"pending_renewal_info": [
{
"expiration_intent": "2",
"grace_period_expires_date": "2020-09-05 23:41:42 Etc/GMT",
"auto_renew_product_id": "product.99.trial.3d",
"original_transaction_id": "10000000306492965",
"is_in_billing_retry_period": "1",
"grace_period_expires_date_pst": "2020-09-05 16:41:42 America/Los_Angeles",
"product_id": "product.99.trial.3d",
"grace_period_expires_date_ms": "1599349302000",
"auto_renew_status": "1"
}
]
Как только платеж будет успешно совершён, поле исчезнет из чека вместе с is_in_billing_retry_period. В этом случае актуальным по истечению срока действия подписки станет поле expires_date_ms
которое нужно брать уже из receipt.in_app
"in_app": [
{
"quantity": "1",
"product_id": "product.99.trial.3d",
"transaction_id": "0000000306492966",
"original_transaction_id": "0000000306492965",
"purchase_date": "2020-08-25 02:53:10 Etc/GMT",
"purchase_date_ms": "1598323990000",
"purchase_date_pst": "2020-08-24 19:53:10 America/Los_Angeles",
"original_purchase_date": "2020-08-25 02:53:12 Etc/GMT",
"original_purchase_date_ms": "1598323992000",
"original_purchase_date_pst": "2020-08-24 19:53:12 America/Los_Angeles",
"expires_date": "2020-09-25 02:53:10 Etc/GMT",
"expires_date_ms": "1601002390000",
"expires_date_pst": "2020-09-24 19:53:10 America/Los_Angeles",
"web_order_line_item_id": "000000003253190",
"is_trial_period": "false",
"is_in_intro_offer_period": "false"
}
]
Если платёж не будет успешно совершен после истечения 60 дней, поля is_in_billing_retry_period и grace_period_expires_date исчезнут из чека, и можно будет использовать expires_date_ms, однако в этом случае подписка будет истёкшей, а поле auto_renew_status будет равно 0
Продуктовые подходы для работы с Billing Retry и Grace Period
При обнаружении проблемы с оплатой рекомендуется сообщать об ошибке пользователю непосредственно внутри приложения, направив на страницу изменения настроек оплаты.
Для этого вам необходимо обрабатывать рецепт на серверной стороне исходя из изменений выше или использовать готовые решения.
Qonversion.checkPermissions { (permissions, error) in
if let error = error {
// handle error
return
}
if let premium = permissions["premium"], premium.isActive {
switch premium.renewState {
case .billingIssue:
// Grace period: permission is active, but there was some billing issue.
// Prompt the user to update the payment method.
break
default: break
}
}
}
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, Разработка под iOS, Разработка под Android, Реверс-инжиниринг, Аналитика мобильных приложений] Домофоны, СКУД… И снова здравствуйте
- [IT-компании, Законодательство в IT, Игры и игровые приставки, Разработка под iOS] Apple подала встречный иск к Epic Games за нарушение контракта
- [Разработка под iOS, Работа с 3D-графикой, Разработка под AR и VR] Приложение позволяет отсканировать себя в 3D
- [Монетизация мобильных приложений, Разработка под iOS] Financial Times выяснила, как разработчики приложений борются за рейтинг в App Store
- [Законодательство в IT, Копирайт, Монетизация игр, Монетизация мобильных приложений, Патентование] Готовимся к изменениям НДС на ПО с 2021 года
- [Законодательство в IT, Разработка мобильных приложений, Разработка под iOS] В Госдуме пожаловались в ФАС на то, что российские разработчики покупают аккаунты за рубежом для доступа в App Store
- [DIY или Сделай сам, Беспроводные технологии, Гаджеты, Производство и разработка электроники, Развитие стартапа] Как я делаю цифровую минигитару
- [Разработка под iOS, IT-компании] Японские разработчики мобильных приложений пожаловались на проблемы при работе с App Store и поддержали Epic Games
- [Контекстная реклама, Разработка под iOS] Apple отложила введение ограничений приватности в iOS 14 из-за жалоб Facebook
- [C++, Open source, Swift, Локализация продуктов, Разработка под iOS] Формулы переводов: хитрая локализация
Теги для поиска: #_analitika_mobilnyh_prilozhenij (Аналитика мобильных приложений), #_monetizatsija_mobilnyh_prilozhenij (Монетизация мобильных приложений), #_razrabotka_pod_ios (Разработка под iOS), #_ios, #_subscriptions, #_billing_issue, #_apple_grace_period, #_analitika_mobilnyh_prilozhenij (
Аналитика мобильных приложений
), #_monetizatsija_mobilnyh_prilozhenij (
Монетизация мобильных приложений
), #_razrabotka_pod_ios (
Разработка под iOS
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 23:34
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Привет. В этой статье мы поговорим про такую частую проблему, как ошибка оплаты в мобильных приложениях с подписочной моделью. Если взять средние данные из системы Qonversion, то 15-20% триалов переходят в Billing Issue. Из них около 15% возвращаются в платное состояние. Поддержка Grace Period позволит улучшить пользовательский опыт и повысить процент возврата в платное состояние. План:
Как устроен Billing Retry? Ошибки с оплатой являются одной из частых причин потери подписчиков. Для наглядности, рассмотрим следующий пример. За некоторое время до завершения очередного оплаченного периода, Apple совершает попытку списать средства со счёта пользователя. Если при этом возникает ошибка, пользователь переходит в состояние Billing Retry. В таком состоянии он может находиться до 60 дней. При этом Apple периодически совершает попытку произвести оплату за следующий период подписки. Всё это время доступ к приложению для пользователя закрыт. На примере видно, что через 10 дней после успешного совершения оплаты возобновляется цикл списания средств. Всё это усложняет расчёт LTV, а также приводит к ухудшению пользовательского опыта. При проверке чека пользователя мы обнаружим поле is_in_billing_retry_period и expiration_intent: "pending_renewal_info": [
{ "expiration_intent": "2", "auto_renew_product_id": "product.99.trial.3d", "original_transaction_id": "10000000306492965", "is_in_billing_retry_period": "1", "product_id": "product.99.trial.3d", "auto_renew_status": "1" } ] Эти поля сообщают нам о неудачной попытке списать средства. Что такое Grace Period? Для улучшения пользовательского опыта в течение периода, когда Apple не может совершить списание средств за следующий автовозобновляемый период, ваше приложение может предоставлять доступ к контенту. Для этого вам необходимо использовать Grace Period. Grace Period включается для авто-возобновляемых подписок Enable Billing Grace Period for Auto-Renewable Subscriptions, в этом случае пользователь сохраняет полный контроль над приложением, пока Apple пытается произвести оплату. Продолжительность Grace Period зависит от продолжительности вашей подписки: Давайте рассмотрим два примера: Пример 1: успешное списание в течение Grace Period За некоторое время до завершения первого автовозобновляемого периода, Apple совершает неудачную попытку списать средства. Такой результат при отключенном Grace Period означал был моментальный переход в состояние Billing Retry с заблокированным доступом к приложению. Однако при включённом Grace Period, начинается следующий автовозобновляемый период, а пользователь продолжает сохранять доступ к контенту. Через некоторое время Apple совершает успешное списание средств, таким образом существующий цикл оплаты не прерывается. Пример 2: неудачное списание в течение Grace Period Во втором примере Apple не удаётся списать средства в течение Grace Period, что приводит к изменению текущего цикла списаний, а пользователь переходит в статус Billing Retry с заблокированным доступом. Через некоторое время Apple удаётся произвести списание денежных средств, при этом запускается новый автовозобновляемый период со дня списания. После включения Grace Period в настройках приложения, JSON response, который вы получаете при валидации чека будет содержать дополнительное поле grace_period_expires_date_ms, именно это поле и означает новый период завершения доступа к контенту в приложении. "pending_renewal_info": [
{ "expiration_intent": "2", "grace_period_expires_date": "2020-09-05 23:41:42 Etc/GMT", "auto_renew_product_id": "product.99.trial.3d", "original_transaction_id": "10000000306492965", "is_in_billing_retry_period": "1", "grace_period_expires_date_pst": "2020-09-05 16:41:42 America/Los_Angeles", "product_id": "product.99.trial.3d", "grace_period_expires_date_ms": "1599349302000", "auto_renew_status": "1" } ] Как только платеж будет успешно совершён, поле исчезнет из чека вместе с is_in_billing_retry_period. В этом случае актуальным по истечению срока действия подписки станет поле expires_date_ms которое нужно брать уже из receipt.in_app "in_app": [
{ "quantity": "1", "product_id": "product.99.trial.3d", "transaction_id": "0000000306492966", "original_transaction_id": "0000000306492965", "purchase_date": "2020-08-25 02:53:10 Etc/GMT", "purchase_date_ms": "1598323990000", "purchase_date_pst": "2020-08-24 19:53:10 America/Los_Angeles", "original_purchase_date": "2020-08-25 02:53:12 Etc/GMT", "original_purchase_date_ms": "1598323992000", "original_purchase_date_pst": "2020-08-24 19:53:12 America/Los_Angeles", "expires_date": "2020-09-25 02:53:10 Etc/GMT", "expires_date_ms": "1601002390000", "expires_date_pst": "2020-09-24 19:53:10 America/Los_Angeles", "web_order_line_item_id": "000000003253190", "is_trial_period": "false", "is_in_intro_offer_period": "false" } ] Если платёж не будет успешно совершен после истечения 60 дней, поля is_in_billing_retry_period и grace_period_expires_date исчезнут из чека, и можно будет использовать expires_date_ms, однако в этом случае подписка будет истёкшей, а поле auto_renew_status будет равно 0 Продуктовые подходы для работы с Billing Retry и Grace Period При обнаружении проблемы с оплатой рекомендуется сообщать об ошибке пользователю непосредственно внутри приложения, направив на страницу изменения настроек оплаты. Для этого вам необходимо обрабатывать рецепт на серверной стороне исходя из изменений выше или использовать готовые решения. Qonversion.checkPermissions { (permissions, error) in
if let error = error { // handle error return } if let premium = permissions["premium"], premium.isActive { switch premium.renewState { case .billingIssue: // Grace period: permission is active, but there was some billing issue. // Prompt the user to update the payment method. break default: break } } } =========== Источник: habr.com =========== Похожие новости:
Аналитика мобильных приложений ), #_monetizatsija_mobilnyh_prilozhenij ( Монетизация мобильных приложений ), #_razrabotka_pod_ios ( Разработка под iOS ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 23:34
Часовой пояс: UTC + 5