アプリ内課金
PR

【Apple】定期購入の猶予期間(Billing Grace Period)と Google との違い

saratogax
記事内に商品プロモーションを含む場合があります

クレジットカードの期限切れやキャリア決済の認証切れなど、ユーザー本人には続ける気があっても、更新そのものに失敗してしまう——そんなケースは意外と珍しくありません。

いわゆる非自発的チャーン(Involuntary Churn)ですね。

Apple では、この決済不備に対して Billing Retry と Billing Grace Period の 2 層で回復を試みます。

この記事で扱うのは、App Store Connect での猶予期間の設定と、猶予中・猶予後にアプリ側がやるべきことの整理。

あわせて Google Play Billing の猶予・アカウント保留との違いにも触れるので、両ストア運用時の比較にも使ってみてください。

あわせて読みたい
【Google】アプリ内課金のサブスクリプションのライフサイクル
【Google】アプリ内課金のサブスクリプションのライフサイクル

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 日
※表は横スクロールできます

月額プランで 12 か月コミットメントが付いている商品には、Billing Grace Period は適用されません。

対象となる更新の種類

猶予をどの更新に効かせるかも、あわせて選べます。

  • All Renewals … 無料トライアルや無料オファーから有料への移行も含む
  • Only Paid to Paid Renewals … すでに有料期間中の更新だけ

無料期間が終わった直後の初回課金失敗までは猶予の対象にしたくない、という場合は後者を選ぶ手もあります。

Sandbox と本番の切り替え

有効化する環境そのものも選べます。

最初は Sandbox のみで有効化し、クライアント/サーバーの解放ロジックを確認してから本番へ広げるのが安全でしょう。

設定変更の反映には最大 24 時間ほどかかることがあり、すでに猶予中のユーザーには変更前の条件がそのまま適用され続けます。

猶予期間中にやること

とはいえ、猶予をオンにしただけでは足りません。

アプリ側で更新状態を判定し、猶予中は購読中と同じくコンテンツを解放する必要があります。

  • 有料コンテンツを継続して解放する
  • 決済不備であること・支払い方法の更新を案内する
  • 必要なら支払い管理画面へディープリンクする

ユーザーに支払い方法の更新を促したいときは、次の URL から App Store の支払い管理画面へそのまま誘導できます。

猶予期間のうちに回収できれば、有料サービスの日数も売上も途切れずに済みます。

イメージとしては、既存の請求サイクルがそのまま続いていく形ですね。

逆に、猶予が切れたあとで回収できた場合は、回収日を起点に新しい請求サイクルが始まるので、ここは注意しておきたいポイント。

猶予終了後も続く Billing Retry

猶予期間が終わっても、Billing Retry のほうは最大 60 日まで継続。

この段階まで来れば、コンテンツの提供は止めてしまって構いません。

ただ、Apple 側の再試行は続いているので、決済さえ通れば再購読(回復)につながる可能性は残っています。

だからこそ、App Store Server Notifications を受け取れる状態にしておくことが重要です。

見ておきたい通知

V2 通知であれば、おおむね次の組み合わせを見ておけば十分。

notificationTypesubtype意味と対応
DID_FAIL_TO_RENEWGRACE_PERIOD猶予開始。コンテンツは解放継続
DID_FAIL_TO_RENEW(なし)猶予なし/猶予外の Retry。提供停止可
GRACE_PERIOD_EXPIRED猶予終了。アクセスを止める
DID_RENEWBILLING_RECOVERY決済回復。アクセスを復元
※表は横スクロールできます

サーバー側では、Transaction / Renewal Info の gracePeriodExpiresDate や Billing Retry 関連フラグもあわせて確認しておくと、より確実。

Google Play の猶予・アカウント保留との比較

両ストアを並行で運用していると、用語の対応関係でつい迷いやすいところですよね。

ざっくり対応させると、次のようなイメージになります。

観点AppleGoogle Play
コンテンツ解放を続ける期間Billing Grace Period(任意)猶予期間(Console で調整可)
解放停止後の再試行Billing Retry(最大 60 日)アカウント保留(デフォルトは 60 日 − 猶予)
日数の柔軟さ3 / 16 / 28 日(週額は最大 6 日)Console で細かく調整しやすい
設定単位アプリ単位商品/ベースプラン側で扱いやすい
※表は横スクロールできます

日数や無効化の自由度という点では、Google のほうが一枚上手な印象。

対して Apple は「3 / 16 / 28 から選ぶ」「週額は 6 日キャップ」と、選択肢がはっきりしているのが特徴です。

どちらも共通なのは、猶予中は解放し、猶予後は止めて、回復通知で戻すという運用の骨格です。

あわせて読みたい
【Google】アプリ内課金(Google Play Billing)の全体像と記事まとめ
【Google】アプリ内課金(Google Play Billing)の全体像と記事まとめ

まとめ

Apple の定期購入では、決済失敗後に Billing Retry(最大 60 日)が動き、その先頭に任意で Billing Grace Period を重ねられます。

猶予を使うなら、App Store Connect で日数と対象更新を決め、アプリ側で解放と案内、サーバー側で ASSN の受信まで、ひとそろいで用意しておきましょう。

Google 側の猶予・アカウント保留と用語こそ一致しませんが、比較しながら両ストアの状態遷移を揃えておくと、iOS / Android の運用差分でも迷いにくくなりますよ。

ABOUT ME
saratoga
saratoga
フリーランスエンジニア
仕事にも趣味にも IT を駆使するフリーランスエンジニア。技術的な TIPS や日々の生活の中で深堀りしてみたくなったことを備忘録として残していきます。
記事URLをコピーしました