rc-alternative-billing について
Google Play の代替課金プログラムに対する RevenueCat SDK の対応範囲と、開発者が実装する作業を説明する Android 開発向けスキルです。Google のプログラムと RevenueCat Web Billing を区別し、併用構成の計画を支援します。
主な機能
- 01課金プログラムごとの SDK 対応確認
- 02地域ごとの利用条件の確認
- 03Web Billing と Play プログラムの区別
- 04Play Billing 直接統合の計画
- 05購入完了処理の担当設定
活用シーン
- 01課金プログラム選定前の対応状況評価
- 02未対応の Play 課金フローの実装計画
- 03RevenueCat と Play Billing API の併用
- 04購入確認処理の担当者の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ revenuecat/ ai-toolkit --skill rc-alternative-billingインストール後、Claude Code で/rc-alternative-billingを入力して読み込まれたか確認します。
詳細
代替課金プログラム
Google は、標準の Play ストア課金以外で支払いを受け付けられる複数のプログラムを運営しています。このスキルでは、RevenueCat Android SDK が現在対応している部分と、Play Billing Library を使って自分で実装する必要がある部分を説明します。
ハンドブックの章によると、SDK 9.x 時点で RevenueCat のこれらのプログラムへの対応は限定的です。この内容を現状の基準として扱い、作業を始める前に RevenueCat の変更履歴を確認して、より新しい SDK リリースがないか調べてください。
フェーズ 1:調査
コードを書く前に、以下の質問に回答してください。
| 質問 | 重要な理由 |
|---|---|
| どのプログラムを対象にしていますか? | User Choice Billing、Alternative Billing Only、External Offers、External Payment Links では、それぞれ Play の要件が異なります。 |
| 対象地域でアプリは利用資格を満たしていますか? | Google は国やアプリのカテゴリに応じて、これらのプログラムの利用を制限しています。登録は RevenueCat ではなく、Play Console から行います。 |
| 代わりに RevenueCat Web Billing を使用しますか? | RevenueCat のウェブチェックアウトは、Google の代替課金とは別の製品です。この 2 つを混同しないでください。 |
| 使用している RevenueCat SDK のバージョンは何ですか? | 対応状況はリリースごとに変わります。SDK 9.x で非対応の機能が、後のリリースで追加される可能性があります。 |
RevenueCat がホストするウェブチェックアウトを通じてサブスクリプションを販売したい場合、それは Google の代替課金プログラムには該当しません。Offering.webCheckoutURL または Package.webCheckoutURL を使用してください。
val pkg = offerings.current?.monthly
pkg?.webCheckoutURL?.let { url ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url.toString())))
}
ユーザーはウェブで購入を完了した後、ディープリンクの処理を通じてアプリ内で購入を引き換えます。
フェーズ 2:計画
どちらの方法が適しているかを決めてください。
方法 A:SDK の対応を待つ。 リリースまでのスケジュールに余裕がある場合は、必要な特定のプログラムが正式にサポートされるまで、RevenueCat の変更履歴とドキュメントを確認してください。これにより、RevenueCat と並行して生の Play Billing Library コードを実行する必要がなくなります。
方法 B:独自に統合する。 今すぐリリースする必要がある場合は、対象プログラムの Play Billing Library API を直接実装してください。RevenueCat SDK は BillingClient インスタンスを所有するため、生の BillingClient 呼び出しを並行して実行する際は注意が必要です。
方法 B の場合、RevenueCat が管理対象の購入の承認に干渉しないよう、完了処理の担当を設定してください。
Purchases.configure(
PurchasesConfiguration.Builder(context, apiKey)
.purchasesAreCompletedBy(PurchasesAreCompletedBy.MY_APP)
.build()
)
計画チェックリスト:
- Play Console で Play プログラムと地域ごとの利用資格を確認した。
- 提供する SDK バージョンに対応する RevenueCat の最新ドキュメントと変更履歴を読んだ。
- 明確な理由に基づいて方法 A または方法 B を選択した。
- 方法 B の場合、どのフローを RevenueCat が引き続き管理し、どのフローを自分で管理するかを特定した。
フェーズ 3:実行
この章によると、RevenueCat SDK が現在この分野で対応している内容は以下のとおりです。
| フロー | SDK の対応状況 |
|---|---|
Offering.webCheckoutURL / Package.webCheckoutURL を使った RevenueCat Web Billing | 対応しています。Google の代替課金プログラムではありません。 |
| User Choice Billing | 専用の SDK API はありません。RevenueCat と並行して Play Billing Library を使って実装してください。 |
| Alternative Billing Only | 専用の SDK API はありません。RevenueCat と並行して Play Billing Library を使って実装してください。 |
| External Offers | 専用の SDK API はありません。RevenueCat と並行して Play Billing Library を使って実装してください。 |
| External Payment Links | 専用の SDK API はありません。RevenueCat と並行して Play Billing Library を使って実装してください。 |
方法 B でリリースする場合は、管理対象の購入の承認を自分で行えるように PurchasesAreCompletedBy.MY_APP を使用し、標準の Play ストアでの購入は RevenueCat SDK に任せてください。
検証手順:
- 標準の Play ストアでの購入が引き続き RevenueCat を経由し、ダッシュボードに表示される。
- 代替課金経路での購入がバックエンドに届き、RevenueCat のサブスクライバー状態と照合される。
- コードと SDK 間で二重処理が発生せず、購入ごとに承認がちょうど 1 回行われる。
参考資料
-
RevenueCat ドキュメント:https://www.revenuecat.com/docs/
-
RevenueCat Codelabs:https://revenuecat.github.io/