コンテンツへスキップ

iOS 自動更新可能なサブスクリプションを作成する

自動更新可能なサブスクリプションにより、iOS アプリのコンテンツ、サービス、またはプレミアム機能に定期的にアクセスできます。このガイドでは、App Store Connect でサブスクリプションを作成する手順を説明します。

自動更新可能なサブスクリプションは、ユーザーがキャンセルするまで、各請求期間の終了時に自動的に更新されます。以下のような用途に最適です。

  • プレミアムコンテンツと機能
  • 広告なしのエクスペリエンス
  • クラウドストレージと同期
  • ストリーミングサービス
  • プロフェッショナルなツールとユーティリティ

サブスクリプションを作成する前に、次のことを行う必要があります。

  1. サブスクリプション グループを作成 してサブスクリプションを整理します
  2. アクティブな Apple 開発者プログラム メンバーシップを持っている
  3. App Store Connect で銀行と税金の情報を入力します
  1. サブスクリプションに移動

    App Store Connect で、アプリを選択し、[収益化] > [サブスクリプション] に移動します。

    サブスクリプション グループを選択するか、必要に応じて新しいグループを作成します。

    サブスクリプションに移動

  2. 新しいサブスクリプションを作成

    サブスクリプション グループの横にある + アイコンをクリックして、新しいサブスクリプションを追加します。

  3. 基本情報を入力

    参照名: 内部使用のためのわかりやすい名前 (顧客には表示されません)

    • 例:「プレミアムマンスリー」、「アルティメット年間」、「ベーシックプラン」

    製品 ID: このサブスクリプションの一意の識別子 (後で変更することはできません)

    • 形式: com.yourcompany.yourapp.premium_monthly
    • アンダースコアを含むわかりやすい小文字の名前を使用します
    • ネイティブ購入プラグインの構成に必要です

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

  4. 期間の構成

    利用可能なオプションからサブスクリプション期間を選択します。

    • 1週間
    • 1ヶ月
    • 2ヶ月
    • 3ヶ月
    • 6ヶ月
    • 1年

    期間によって、ユーザーに請求される頻度が決まります。

  5. 価格設定

    [サブスクリプション価格の追加] をクリックして価格を設定します。

    基本地域: 主要市場 (通常はあなたの国) を選択してください

    価格: サブスクリプション価格を設定します

    • Apple は自動的に他の通貨に変換されます
    • Apple の価格帯から選択します
    • 知覚価値と市場レートを考慮する

    価格設定

  6. ファミリー共有 (オプション)

    最大 6 人の家族メンバーがサブスクリプションにアクセスできるようにするファミリー共有を有効にするかどうかを決定します。

    :::注意 ファミリー共有を一度有効にすると、この製品ではオフにすることはできません。 :::

    次の場合に有効にします:

    • コンテンツは家族での使用に適しています
    • 価値提案を高めたい
    • あなたのビジネスモデルがそれをサポートしています

    次の場合は有効にしないでください

    • サブスクリプションは個人使用のみを目的としています
    • コンテンツはユーザーに合わせてカスタマイズされます
    • ユーザーあたりの収益を最大化したい
  7. ローカリゼーションを追加

    アプリがサポートするすべての言語でサブスクリプション表示情報を追加します。

    サブスクリプション表示名: 顧客向けの名前 (例: 「Premium Monthly」)

    説明: サブスクリプションに含まれる内容の簡単な説明

    • 簡潔かつ利益を重視した内容にします
    • 主な機能について言及する
    • 価値提案を強調する

    ローカリゼーションを追加8. App Store プロモーション画像 (オプション)

    このサブスクリプションのプロモーション画像をアップロードします (312x390 ピクセル):

    • App Store サブスクリプション ページに表示されます
    • アプリのデザインと一致する必要があります
    • 明確にするためにサブスクリプション名を含めます

    :::メモ 画像は最初の送信ではオプションですが、App Store でのプロモーション表示には必須です。後で追加することもできます。 :::

  8. 保存して送信

    [保存] をクリックしてサブスクリプションを作成します。

    初めてのサブスクリプションの場合:

    • 新しいアプリバージョンで提出する必要があります
    • 次回の App Store の提出物に含めてください
    • 単独で提出することはできません

    次回以降のサブスクリプションの場合:

    • サブスクリプションページから直接送信できます
    • 新しいアプリのバージョンは必要ありません
    • 最初のサブスクリプションが承認された後に利用可能になります

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

Section titled “サブスクリプションのステータス”

サブスクリプションは次のいずれかのステータスになります。

ステータス説明テストできますか?
メタデータがありませんセットアップが不完全はい (サンドボックス)
送信準備完了完了したが送信されていないはい (サンドボックス)
レビュー待ちApple に送信されましたはい (サンドボックス)
レビュー中Apple によってレビュー中はい (サンドボックス)
承認済み購入可能はい
拒否されました変化が必要はい (サンドボックス)

作成したら、製品 ID を使用してアプリ内でサブスクリプションを参照します。

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch subscription products direct from StoreKit
const { products } = await NativePurchases.getProducts({
productIdentifiers: [
'com.yourcompany.yourapp.premium_monthly',
'com.yourcompany.yourapp.premium_annual',
],
productType: PURCHASE_TYPE.SUBS,
});
products.forEach((product) => {
console.log(`${product.title}: ${product.priceString}`);
console.log(`Duration: ${product.subscriptionPeriod}`);
console.log(`Description: ${product.description}`);
});
// Purchase a subscription (StoreKit 2 automatically handles intro pricing and offers)
try {
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.yourcompany.yourapp.premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Transaction ID:', transaction.transactionId);
// StoreKit receipts are included on iOS for server-side validation
await sendReceiptToBackend(transaction.receipt);
} catch (error) {
console.error('Purchase failed:', error);
}
// Check subscription status using the store's data
const { purchases } = await NativePurchases.getPurchases({
productType: PURCHASE_TYPE.SUBS,
});
const premium = purchases.find(
(purchase) => purchase.productIdentifier === 'com.yourcompany.yourapp.premium_monthly',
);
if (premium?.isActive) {
console.log('Expires:', premium.expirationDate);
console.log('Will renew:', premium.willCancel === false);
console.log('Store state:', premium.subscriptionState);
unlockPremiumFeatures();
} else {
showPaywall();
}
  • 月額プラン: 参入障壁が低くなり、習慣が身に付きます
  • 年間計画: より良い価値、より高い LTV、より低い解約率
  • 複数のレベル: さまざまなユーザーセグメントに対応するベーシック、プレミアム、アルティメット
  • 競合分析: 類似アプリの価格を調査します。
  • 一貫した名前を使用します: company.app.tier_duration
  • ID に階層と期間を含めます: premium_monthlyultimate_annual
  • 製品 ID は変更しないでください (永久的なものです)。
  • チームのすべての製品 ID を文書化します。
  • 家族向けアプリ (ゲーム、教育、エンターテイメント) を有効にします
  • 収益への影響を考慮する
  • 共有動作を徹底的にテストする
  • マーケティングにおける共有機能を伝える
  • すべてのサブスクリプション名と説明を翻訳します
  • 地域による価格の違いを考慮する
  • サポートされているすべての言語での表示をテストします
  • 文化的に適切なマーケティング言語を使用する
  • 一貫したビジュアルスタイルを維持する
  • サブスクリプション名と主な特典を含めます
  • 季節限定プロモーションの更新
  • マッチアプリ全体のデザイン言語

一般的なサブスクリプション パターン

Section titled “一般的なサブスクリプション パターン”

シングルティア (フリーミアム)

Section titled “シングルティア (フリーミアム)”
Free App + Premium Subscription
- Basic: Free (limited features)
- Premium Monthly: $4.99
- Premium Annual: $39.99 (save 33%)
- Basic Monthly: $4.99
- Premium Monthly: $9.99
- Ultimate Monthly: $19.99
- Basic Annual: $49.99
- Premium Annual: $99.99
- Ultimate Annual: $199.99

消耗品 + サブスクリプションのハイブリッド

Section titled “消耗品 + サブスクリプションのハイブリッド”
- Credit packs (consumable)
- Monthly subscription (unlimited credits)
- Annual subscription (unlimited + bonus features)

サブスクリプションがアプリに読み込まれていません:

  • 製品 ID が正確に一致することを確認します (大文字と小文字が区別されます)。
  • サブスクリプションがサブスクリプション グループに含まれていることを確認します
  • バンドル識別子が App Store Connect と一致することを確認してください
  • 製品を作成してから 2 ~ 3 時間待ちますサブスクリプションを送信できません:
  • すべての必須フィールドに入力します (名前、説明、価格)
  • 少なくとも 1 つのローカリゼーションを追加します
  • 銀行/税金情報が承認されていることを確認します
  • 最初のサブスクリプションかどうかを確認します (アプリのバージョンが必要です)

ファミリー共有の切り替えが無効になっています:

  • すでに有効になっています(無効にすることはできません)
  • サブスクリプションの詳細をチェックインする
  • 行き詰まった場合は、Apple サポートにお問い合わせください

価格帯は利用できません:

  • 一部の地域では制限される場合があります
  • 代替ティアを選択してください
  • 価格に関する質問については、Apple にお問い合わせください。

「無効な製品 ID」エラー:

  • リバースドメイン形式である必要があります
  • スペースや特殊文字を含めることはできません
  • タイプミスをチェックする
  • すべての製品の一意性を検証する

詳細については、自動更新可能なサブスクリプションに関する公式 Apple ドキュメント を参照してください。