【Apple】定期購入の猶予期間(Billing Grace Period)と Google との違い
クレジットカードの期限切れやキャリア決済の認証切れなど、ユーザー本人には続ける気があっても、更新そのものに失敗してしまう——そんなケースは意外と珍しくありません。
いわゆる非自発的チャーン(Involuntary Churn)ですね。
Apple では、この決済不備に対して Billing Retry と Billing Grace Period の 2 層で回復を試みます。
この記事で扱うのは、App Store Connect での猶予期間の設定と、猶予中・猶予後にアプリ側がやるべきことの整理。
あわせて Google Play Billing の猶予・アカウント保留との違いにも触れるので、両ストア運用時の比較にも使ってみてください。
Billing Retry と Grace Period の違い
まず押さえておきたいのは、Billing Retry と Billing Grace Period は別物だという点です。
更新時に決済が失敗すると、サブスクリプションはまず自動的に Billing Retry の状態へ。
このあいだ App Store は、最大 60 日間にわたって決済の再試行を続けてくれます。
ただし Billing Retry 自体は常に動いているもので、App Store Connect でオン/オフを切り替える類のものではありません。
一方の Billing Grace Period は、その Billing Retry の最初の一定期間だけ、有料コンテンツへのアクセスを継続させるオプション。
猶予を有効にしていなければ、決済が滞った時点で有料サービスの日数は止まり、Apple が回収できるまではユーザーへの提供もストップする運用になります。
- Billing Retry … 決済失敗後、最大 60 日の再試行期間(常時)
- Billing Grace Period … Retry の先頭でコンテンツ解放を続ける任意設定
Google の「猶予期間 → アカウント保留」と用語は似ていますが、Apple 側に Account Hold という同名の状態はありません。
猶予が終わってからも Billing Retry のほうは続く、と整理しておくと混乱しにくいですよ。
App Store Connect での設定
Billing Grace Period の有効化は、アプリ単位で App Store Connect から。
なお、商品(SKU)ごとの個別設定はできません。
手順としては、Apps → 対象アプリ → Subscriptions → Billing Grace Period と進み、Set Up から設定していきます。
選択できる日数
猶予の長さは、3 日 / 16 日 / 28 日の 3 択。
ここで選んだ日数は、そのアプリ内の自動更新サブスクリプション全体に効いてくる、という点も押さえておきましょう。
ただし週額プランだけは例外で、16 日や 28 日を選んでも、実際の猶予は最大 6 日までに抑えられます。
サブスク期間より長い猶予は付けない——そのためのキャップ、というわけですね。
| プラン | 3 日を選択 | 16 日を選択 | 28 日を選択 |
|---|---|---|---|
| 週額 | 3 日 | 6 日 | 6 日 |
| 月額以上 | 3 日 | 16 日 | 28 日 |
対象となる更新の種類
猶予をどの更新に効かせるかも、あわせて選べます。
- All Renewals … 無料トライアルや無料オファーから有料への移行も含む
- Only Paid to Paid Renewals … すでに有料期間中の更新だけ
無料期間が終わった直後の初回課金失敗までは猶予の対象にしたくない、という場合は後者を選ぶ手もあります。
Sandbox と本番の切り替え
有効化する環境そのものも選べます。
最初は Sandbox のみで有効化し、クライアント/サーバーの解放ロジックを確認してから本番へ広げるのが安全でしょう。
設定変更の反映には最大 24 時間ほどかかることがあり、すでに猶予中のユーザーには変更前の条件がそのまま適用され続けます。
猶予期間中にやること
とはいえ、猶予をオンにしただけでは足りません。
アプリ側で更新状態を判定し、猶予中は購読中と同じくコンテンツを解放する必要があります。
- 有料コンテンツを継続して解放する
- 決済不備であること・支払い方法の更新を案内する
- 必要なら支払い管理画面へディープリンクする
ユーザーに支払い方法の更新を促したいときは、次の URL から App Store の支払い管理画面へそのまま誘導できます。
猶予期間のうちに回収できれば、有料サービスの日数も売上も途切れずに済みます。
イメージとしては、既存の請求サイクルがそのまま続いていく形ですね。
逆に、猶予が切れたあとで回収できた場合は、回収日を起点に新しい請求サイクルが始まるので、ここは注意しておきたいポイント。
猶予終了後も続く Billing Retry
猶予期間が終わっても、Billing Retry のほうは最大 60 日まで継続。
この段階まで来れば、コンテンツの提供は止めてしまって構いません。
ただ、Apple 側の再試行は続いているので、決済さえ通れば再購読(回復)につながる可能性は残っています。
だからこそ、App Store Server Notifications を受け取れる状態にしておくことが重要です。
見ておきたい通知
V2 通知であれば、おおむね次の組み合わせを見ておけば十分。
| notificationType | subtype | 意味と対応 |
|---|---|---|
| DID_FAIL_TO_RENEW | GRACE_PERIOD | 猶予開始。コンテンツは解放継続 |
| DID_FAIL_TO_RENEW | (なし) | 猶予なし/猶予外の Retry。提供停止可 |
| GRACE_PERIOD_EXPIRED | — | 猶予終了。アクセスを止める |
| DID_RENEW | BILLING_RECOVERY | 決済回復。アクセスを復元 |
サーバー側では、Transaction / Renewal Info の gracePeriodExpiresDate や Billing Retry 関連フラグもあわせて確認しておくと、より確実。
Google Play の猶予・アカウント保留との比較
両ストアを並行で運用していると、用語の対応関係でつい迷いやすいところですよね。
ざっくり対応させると、次のようなイメージになります。
| 観点 | Apple | Google Play |
|---|---|---|
| コンテンツ解放を続ける期間 | Billing Grace Period(任意) | 猶予期間(Console で調整可) |
| 解放停止後の再試行 | Billing Retry(最大 60 日) | アカウント保留(デフォルトは 60 日 − 猶予) |
| 日数の柔軟さ | 3 / 16 / 28 日(週額は最大 6 日) | Console で細かく調整しやすい |
| 設定単位 | アプリ単位 | 商品/ベースプラン側で扱いやすい |
日数や無効化の自由度という点では、Google のほうが一枚上手な印象。
対して Apple は「3 / 16 / 28 から選ぶ」「週額は 6 日キャップ」と、選択肢がはっきりしているのが特徴です。
どちらも共通なのは、猶予中は解放し、猶予後は止めて、回復通知で戻すという運用の骨格です。
まとめ
Apple の定期購入では、決済失敗後に Billing Retry(最大 60 日)が動き、その先頭に任意で Billing Grace Period を重ねられます。
猶予を使うなら、App Store Connect で日数と対象更新を決め、アプリ側で解放と案内、サーバー側で ASSN の受信まで、ひとそろいで用意しておきましょう。
Google 側の猶予・アカウント保留と用語こそ一致しませんが、比較しながら両ストアの状態遷移を揃えておくと、iOS / Android の運用差分でも迷いにくくなりますよ。
