メインコンテンツへスキップ

Androidの自動更新サブスクリプションを作成する

GitHub

自動更新サブスクリプションは、アプリ内のコンテンツ、サービス、またはプレミアム機能への継続的なアクセスを提供します。このガイドでは、Google Play Consoleでのサブスクリプションの作成と設定方法を説明します。

サブスクリプションは、ユーザーが解約しない限り、各請求期間の終了時に自動的に更新されます。以下のようなケースに最適です:

  • プレミアムコンテンツへのアクセス
  • 広告なしの体験
  • クラウドストレージ
  • 継続的なサービス
  1. Subscriptionsへ移動

    Google Play Consoleでアプリを選択し、 収益化 > サブスクリプション 左側のメニューから

    次をクリックします: 定期購入を作成 ボタンをクリックして開始します。

    Subscriptionsへ移動

  2. 基本情報の入力

    定期購入の名前とプロダクト ID を入力します。プロダクト ID はアプリ内での設定に必要で、後から変更できません。

    サブスクリプションの詳細を入力

  3. ベースプランを作成

    Google Playでは、1つのサブスクリプションにつき必ず1つのベースプランが必要です。native-purchasesプラグインは、iOSとの互換性を維持するため、1つのベースプランのみをサポートしています。

    クリック ベースプランを追加 して続行してください。

    ベースプランを作成

  4. ベースプランの詳細設定

    以下を入力してください:

    • ベースプランID: このプランの一意識別子
    • 請求サイクル: ユーザーへの課金サイクル(週次、月次、年次など)
    • 猶予期間(Grace period): 解約前にGoogleが支払いの再試行を行い、サブスクリプションを維持する期間

    ベースプランの設定

  5. 価格の設定

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

    地域を選択

  6. 価格の設定

    メイン通貨でベース価格を設定します。Google Playが自動的に各国の現地通貨に換算します。

    価格を設定

  7. 地域別価格の確認

    国ごとに自動換算された価格を確認します。必要に応じて個別の価格を調整できます。

    料金プランを確認

  8. 設定を保存

    料金設定を保存します。

    料金設定を保存

  9. サブスクリプションを有効化

    次をクリックします: アクティブ化 サブスクリプション商品を公開し、購入可能にするボタンです。

    サブスクリプションを有効化

iOSのサブスクリプション処理との整合性を保つため、native-purchasesプラグインではサブスクリプションごとに必ず1つのベースプランが必要です。複数のベースプランには対応していません。

猶予期間により、Google Playはユーザーのサブスクリプションへのアクセスを維持したまま、失敗した支払いを再試行できます。一般的な猶予期間は次のとおりです。

  • 月額サブスクリプション:3日間
  • 長期サブスクリプション:7日間

サブスクリプションのステータス

「サブスクリプションのステータス」セクション

作成後、サブスクリプションは有効化されるまで「Draft」ステータスになります。Draftステータスのサブスクリプションは、サンドボックスモードでテストできます。

作成後、アプリ内で以下のプロダクトIDを使用してサブスクリプションを参照してください:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Load subscription info
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['com.example.premium.monthly'],
productType: PURCHASE_TYPE.SUBS,
});
const product = products[0];
console.log(`${product.title} — ${product.priceString}`);
// Purchase (planIdentifier = Base Plan ID from Google Play Console)
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.example.premium.monthly',
planIdentifier: 'monthly-plan', // REQUIRED on Android, ignored on iOS
productType: PURCHASE_TYPE.SUBS,
});
console.log('Transaction ID', transaction.transactionId);
// Later, check purchase state
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');
// For expiration/cancellation, validate purchaseToken through your backend
}

アプリにサブスクリプションが表示されない場合:

  • プロダクトIDが完全に一致しているか確認してください
  • サブスクリプションが有効化されていることを確認してください
  • アプリのパッケージ名が正しいか確認してください
  • 変更が反映されるまで、有効化から2〜3時間待機してください

ベースプランのエラー:

  • ベースプランがちょうど1つ設定されていることを確認してください
  • 必須項目がすべて入力されているか確認してください
  • 請求期間が有効であることを確認してください

価格設定のエラー:

  • 少なくとも1つの国が選択されていることを確認してください
  • 基本価格が最小許容額を超えているか確認してください
  • 通貨換算レートが許容範囲内か確認してください

使用している場合 Androidの自動更新サブスクリプションを作成する ストアの承認と配信を計画するには、これを次と連携させてください: @capgo/native-purchases を使用する 「Using @capgo/native-purchases」のネイティブ機能については、 @capgo/capacitor-in-app-review @capgo/capacitor-in-app-review での実装の詳細については、 @capgo/capacitor-in-app-review の使い方 「@capgo/capacitor-in-app-review の使い方」のネイティブ機能については、 @capgo/capacitor-native-market @capgo/capacitor-native-market の実装の詳細については、 @capgo/capacitor-native-market の使用 「@capgo/capacitor-native-market. の使用」のネイティブ機能については