コンテンツにジャンプする

iOS 自動更新購入の作成

GitHub

iOSアプリで自動更新可能なサブスクリプションは、再生期日までにユーザーがキャンセルしない限り、定期的にコンテンツ、サービス、またはプレミアム機能にアクセスできます。このガイドでは、App Store Connectでサブスクリプションを作成する方法について説明します。

自動更新可能なサブスクリプションは、各請求期間の終わりで自動的に更新され、ユーザーがキャンセルしない限り、無期限に続きます。以下のようなものが適しています。

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

サブスクリプションを作成する前に、以下の条件を満たす必要があります:

  1. サブスクリプション グループを作成する サブスクリプションを整理するために使用する
  2. Apple Developer Program の有効な会員資格を持っている
  3. App Store Connect で銀行と税金の情報を完了している
  1. サブスクリプションに移動する

    App Store Connect にアクセスし、アプリを選択し、 Monetize > サブスクリプション.

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

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

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

    サブスクリプショングループの隣の + アイコンをクリックして、サブスクリプションを追加します。

  3. 基本情報を入力

    参照名: 内部使用のための説明的な名前 (顧客に表示されません)

    • 例: "プレミアム月額", "オールタイム年額", "基本プラン"

    製品ID: このサブスクリプションの固有の識別子 (後で変更できません)

    • フォーマット: com.yourcompany.yourapp.premium_monthly
    • 記述的な、下線付きの小文字名を使用してください
    • native-purchases プラグインの設定に必要

    サブスクリプションの詳細を入力してください

  4. 期間の設定

    利用可能なオプションからサブスクリプションの期間を選択してください:

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

    期間は、ユーザーが請求される頻度を決定します。

  5. 価格設定の設定

    Click 価格設定を追加 価格設定を設定するには:

    ベースの地域: 主に国を選択します

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

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

    価格設定を設定

  6. ファミリー シェアリング (オプション)

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

    有効にする場合:

    • コンテンツは家族向けです
    • 価値提案を増やすことができます
    • ビジネスモデルがサポートしている場合

    無効にする場合:

    • サブスクリプションは個人のみの利用です
    • コンテンツはユーザーに個別にカスタマイズされています
    • 最大限の収益をユーザーあたり得る場合
  7. ローカライズを追加

    アプリでサポートするすべての言語で、サブスクリプション表示情報を追加してください:

    サブスクリプション表示名: 顧客向けの名前(例:「プレミアム月額」)

    説明: サブスクリプションが含まれるbriefの説明

    • 簡潔で利点を強調する
    • 重要な機能を言及する
    • 価値提案を強調する

    ローカライズを追加する

  8. App Store プロモーション画像(オプション)

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

    • App Store サブスクリプションページで表示されます
    • アプリのデザインに合わせてください
    • 購入名を明確にするために含めてください
  9. 保存して提出

    クリック 保存 サブスクリプションを作成するにはクリックしてください。

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

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

    連続したサブスクリプションの場合:

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

サブスクリプションは次のいずれかの状態になります:

状態説明テストできますか?
メタデータが不足しています未完全設定Yes (sandbox)
提出可能提出済み未送信Yes (sandbox)
Appleに提出中Yes (sandbox)Appleによる検証中
Yes (sandbox)承認済みYes (sandbox)
Being reviewed by 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();
}

月額課金プラン(12か月契約)

「月額課金プラン(12か月契約)」

App Store Connectのサブスクリプションが月額課金プランと12か月契約で構成されている場合、StoreKitはその製品の追加価格条件を返します。この条件を使用して、購入前に月額課金額、合計契約価格、完全な契約期間を表示できます。

const yearlyProduct = products.find(
(product) => product.identifier === 'com.yourcompany.yourapp.premium_annual',
);
const monthlyCommitment = yearlyProduct?.pricingTerms?.find(
(term) => term.billingPlanType === 'monthly',
);
if (yearlyProduct && monthlyCommitment) {
console.log('Monthly charge:', monthlyCommitment.billingDisplayPrice);
console.log('Total commitment:', monthlyCommitment.commitmentInfo?.priceString);
await NativePurchases.purchaseProduct({
productIdentifier: yearlyProduct.identifier,
productType: PURCHASE_TYPE.SUBS,
billingPlanType: 'monthly',
});
}

詳細な支払い壁と特権フローについては iOSの月額契約課金プラン.

ベストプラクティス

「ベストプラクティス」

価格戦略

「価格戦略」
  • 月額プラン: 入り口が低く、習慣を形成する
  • 年間プラン: 高価値、より高いLTV、低い脱落率
  • 複数の階層: Basic、Premium、Ultimate など、異なるユーザー セグメント用
  • 競争分析: 同類アプリの価格を調べる
  • 一貫した命名規則を使用する: company.app.tier_duration
  • 階層と期間を含むIDを使用する: premium_monthly, ultimate_annual
  • 製品IDを変更しない (永久的なもの)
  • チーム全員で製品IDをドキュメントする
  • 家族向けアプリ(ゲーム、教育、エンターテインメント)向けに有効にする
  • 収益への影響を考慮する
  • 共有動作を徹底的にテストする
  • マーケティングで共有機能を伝える
  • すべてのサブスクリプション名と説明を翻訳する
  • 地域間の価格差を考慮する
  • すべてのサポート言語で表示されることをテストする
  • 文化的に適切なマーケティング言語を使用する
  • 一貫した視覚的スタイルを維持する
  • サブスクリプション名と主な利点を表示する
  • シーズンごとのプロモーション用に更新する
  • アプリの全体的なデザイン言語に合わせる

共通のサブスクリプションパターン

「共通のサブスクリプションパターン」のセクション

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

「シングル・ティア(フリーミアム)」のセクション
Free App + Premium Subscription
- Basic: Free (limited features)
- Premium Monthly: $4.99
- Premium Annual: $39.99 (save 33%)

「マルチ・ティア(グッド、ベター、ベスト)」

Multi-Tier (Good, Better, Best)のセクション
- Basic Monthly: $4.99
- Premium Monthly: $9.99
- Ultimate Monthly: $19.99
- Basic Annual: $49.99
- Premium Annual: $99.99
- Ultimate Annual: $199.99

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

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

アプリ内でサブスクリプションが読み込まれない場合:

  • 製品IDが正確に一致することを確認してください (大文字小文字区別)
  • サブスクリプションがサブスクリプション グループ内にあることを確認してください
  • App Store Connectのバンドル IDが正しいことを確認してください
  • 製品を作成した後 2-3 時間待ってください

購入申請が送信できません:

  • すべての必須フィールドを入力してください (名前、説明、価格)
  • 少なくとも 1 つのローカライゼーションを追加してください
  • 銀行/税務情報が承認されていることを確認してください
  • 最初の購入 (アプリのバージョンが必要) を確認してください

ファミリーシェアリングの切り替えが無効化されました:

  • すでに有効化されています (無効化できません)
  • 購入の詳細を確認してください
  • アプリのサポートに連絡してください (詰まっている場合)

価格のレベルが利用できません:

  • 一部の地域では利用できない可能性があります
  • 代替レベルを選択してください
  • Appleの料金に関する質問は、Appleに連絡してください。

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

  • 逆ドメイン形式でなければなりません
  • スペースや特殊文字を含めることはできません
  • 入力ミスを確認してください
  • すべての製品で一意性を確認してください

追加リソース

「追加リソース」

詳細については、 自動更新可能なサブスクリプションに関する公式のAppleドキュメント.

「iOS Auto-Renewable サブスクリプションを作成する」から続けてください

「iOS Auto-Renewable サブスクリプションを作成する」から続けてください

Capacitorを使用している場合 Create iOS Auto-Renewable Subscriptionを使用している場合 ストアの承認と配布を計画するには、を接続する必要があります。 を使用して@capgo/native-purchases のネイティブ機能を使用するには@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-in-app-review の実装詳細を使用するには@capgo/capacitor-native-market のネイティブ機能を使用するには@capgo/capacitor-native-market を使用して@capgo/capacitor-native-market