Android自動更新サブスクリプションの作成
自動更新サブスクリプションは、コンテンツ、サービス、またはアプリ内のプレミアム機能への継続的なアクセスを提供します。このガイドは、Google Play Consoleでサブスクリプションを作成および設定するのに役立ちます。
サブスクリプションは、ユーザーがキャンセルするまで各請求期間の終わりに自動的に更新されます。以下に最適です:
- プレミアムコンテンツアクセス
- 広告なし体験
- クラウドストレージ
- 継続的なサービス
サブスクリプションの作成
Section titled “サブスクリプションの作成”-
サブスクリプションに移動
Google Play Consoleで、アプリを選択し、左メニューからMonetize > Subscriptionsを選択します。
Create subscriptionボタンをクリックして開始します。

-
基本情報を入力
サブスクリプション名とプロダクトIDを入力します。プロダクトIDはアプリでの設定に必要で、後で変更できません。

-
ベースプランを作成
Google Playでは、サブスクリプションごとに正確に1つのベースプランが必要です。native-purchasesプラグインは、iOSとの互換性を維持するために1つのベースプランのみをサポートします。
Add base planをクリックして続行します。

-
ベースプランの詳細を設定
以下を入力します:
- Base plan ID: このプランの一意の識別子
- Billing period: ユーザーが請求される頻度(毎週、毎月、毎年など)
- Grace period: Googleがキャンセル前に支払いを再試行する間、サブスクリプションを維持する時間枠

-
価格を設定
価格設定セクションにアクセスし、サブスクリプションを提供したいすべての国/地域を選択します。

-
価格を設定
主要通貨でベース価格を設定します。Google Playは自動的にこれを現地通貨に変換します。

-
地域別価格を確認
各国の自動変換された価格を確認します。必要に応じて個別の価格を調整できます。

-
設定を保存
価格設定を保存します。

-
サブスクリプションを有効化
Activateボタンをクリックして、サブスクリプションプロダクトをライブにし、購入可能にします。

重要な考慮事項
Section titled “重要な考慮事項”ベースプランの制限
Section titled “ベースプランの制限”native-purchasesプラグインは、iOSサブスクリプション処理との一貫性を確保するために、サブスクリプションごとに正確に1つのベースプランを必要とします。複数のベースプランはサポートされていません。
猶予期間により、Google Playはユーザーのサブスクリプションアクセスを維持しながら、失敗した支払いを再試行できます。一般的な猶予期間は:
- 月額サブスクリプションの場合3日
- より長いサブスクリプションの場合7日
サブスクリプションステータス
Section titled “サブスクリプションステータス”作成後、サブスクリプションは有効化されるまで「下書き」ステータスになります。サンドボックスモードで下書きサブスクリプションをテストできます。
アプリでの使用
Section titled “アプリでの使用”作成後、プロダクトIDを使用してアプリでサブスクリプションを参照します:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// サブスクリプション情報を読み込むconst { products } = await NativePurchases.getProducts({ productIdentifiers: ['com.example.premium.monthly'], productType: PURCHASE_TYPE.SUBS,});
const product = products[0];console.log(`${product.title} — ${product.priceString}`);
// 購入(planIdentifier = Google Play ConsoleのBase Plan ID)const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.example.premium.monthly', planIdentifier: 'monthly-plan', // Androidで必須、iOSでは無視されます productType: PURCHASE_TYPE.SUBS,});
console.log('Transaction ID', transaction.transactionId);
// 後で、購入状態をチェックconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const subscription = purchases.find( (purchase) => purchase.productIdentifier === 'com.example.premium.monthly',);
if (subscription && subscription.purchaseState === 'PURCHASED' && subscription.isAcknowledged) { console.log('Subscription active locally'); // 有効期限/キャンセルについては、バックエンドを通じてpurchaseTokenを検証}次のステップ
Section titled “次のステップ”- 新規サブスクライバーを引き付けるために入門オファーを作成
- サブスクリプションをテストするためにサンドボックステストを設定
- セキュリティのためにバックエンドレシート検証を設定
トラブルシューティング
Section titled “トラブルシューティング”サブスクリプションがアプリに表示されない:
- プロダクトIDが正確に一致することを確認
- サブスクリプションが有効化されていることを確認
- アプリが正しいパッケージ名を持っていることを確認
- 有効化後、変更が伝播するのに2〜3時間待つ
ベースプランエラー:
- 正確に1つのベースプランがあることを確認
- すべての必須フィールドが入力されていることを確認
- 請求期間が有効であることを確認
価格設定の問題:
- 少なくとも1つの国が選択されていることを確認
- ベース価格が許可された最小値より大きいことを確認
- 通貨換算レートが許容可能であることを確認