iOSサブスクリプションの導入オファーを作成
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
Introductory offers(初回限定特典)を利用すると、対象ユーザーに無料トライアルや割引価格を提供できます。これにより、導入のハードルを下げ、サブスクリプションのコンバージョン率を向上させることが可能です。
Introductory offersは、購読者数を増やすための最も効果的なツールの一つです。ユーザーに以下の体験を提供できます:
- リスクなしでプレミアム機能を試す
- 契約前に価値を実感する
- より低い価格帯から開始する
- 製品への信頼を高める
特典の種類
「特典の種類」というタイトルのセクションiOSでは3種類の導入特典(Introductory Offers)が利用可能です:
1. 無料トライアル
「1. 無料トライアル」のセクションユーザーは指定された期間、無料でサービスを利用できます。トライアル期間終了後に解約しない場合、通常の料金が請求されます。
例:
- 7日間無料
- 14日間無料
- 1ヶ月間無料
最適なケース:
- 高単価なサブスクリプション
- 多機能なアプリ
- ユーザーの習慣化
2. 前払い型
「2. 前払い型」というタイトルのセクション導入期間をカバーする割引価格を一度だけ支払う形式です。
例:
- 2ヶ月間 $1.99 (その後は月額 $9.99)
- 3ヶ月間 $9.99 (その後は月額 $19.99)
最適なケース:
- 継続利用の意思確認
- キャッシュフローの確保
- 価格感度のテスト
3. 従量課金型
「3. 従量課金型」というタイトルのセクション複数の請求サイクルにわたって、ユーザーが割引価格で利用できる仕組みです。
例:
- 最初の3ヶ月間は月額$1.99(その後は月額$9.99)
- 最初の6ヶ月間は月額$4.99(その後は月額$14.99)
最適なユースケース:
- 段階的な継続利用の促進
- 長期的な価値の提示
- 利用への心理的ハードルの低下
以下の条件を満たすユーザーのみが、初回特典を受けられます:
- その製品の初回特典を過去に一度も利用していないこと
- 同じサブスクリプショングループ内のどの製品でも、初回特典(introductory offer)を受け取っていないこと
- 対象製品の有効なサブスクリプションを保持していないこと
前提条件
「前提条件」セクションまず以下の手順を行う必要があります: 自動更新サブスクリプションを作成し、 その後に初回特典を追加してください。
初回特典(Introductory Offer)の作成
「初回特典の作成」セクション-
Subscriptionへ移動
App Store Connectで、アプリの 収益化 > サブスクリプション セクションに移動し、特典を追加したいサブスクリプションを選択します。
-
サブスクリプション価格の追加
次をクリックします: + アイコンを「Subscription Prices」の横でクリックして、価格設定モーダルを開きます。
-
初回特典の作成
オプションから 「Create introductory offer」 を選択します。

-
国と開始日の設定
国と地域: オファーの対象となる場所を選択してください
- リーチを最大化するにはすべての国を選択
- テスト用に特定の市場に限定することも可能
開始日: オファーが利用可能になるタイミング
- 即時適用、または将来の日時を指定可能
- マーケティングキャンペーンとの連携に便利です
終了日 (任意): オファーの有効期限
- 継続的に提供する場合は空欄のままにします
- 期間限定プロモーションの開始日を設定
-
オファータイプを選択
以下の3つのオファータイプから1つ選択してください:
無料 (無料トライアル)
- 期間を選択 (日、週、月)
- 例: 7日間、2週間、1ヶ月
前払い
- 一括支払額を設定
- 支払いが適用される期間を設定
- 例: 2ヶ月間で$1.99
従量課金
- 期間ごとの割引価格を設定
- 期間の回数を設定
- 例: $2.99/月を3ヶ月間
-
内容を確認して確定
以下のサマリーを確認してください:
- オファーの種類と期間
- 価格の詳細
- 導入期間終了後の通常価格
- 利用開始日と対象国
-
保存
クリック 保存 初回限定特典(Introductory Offer)を作成します。サンドボックスモードですぐにテスト可能です。
特典設定の例
「特典設定の例」というタイトルのセクション例1:標準的な無料トライアル
「例1:標準的な無料トライアル」というタイトルのセクションType: FreeDuration: 7 daysThen: $9.99/monthユーザーフロー:
- 1〜7日目:無料で利用可能
- 8日目:初回決済 $9.99
- 以降、月額料金が発生
例2:期間限定の割引適用
「例2:期間限定の割引適用」というタイトルのセクションType: Pay Up FrontPrice: $4.99Duration: 3 monthsThen: $9.99/monthユーザー体験の流れ:
- 1日目: $4.99を請求
- 90日間のアクセス権
- 91日目: 月額$9.99を請求
例3: 段階的な導入
「例3: 段階的な導入」というタイトルのセクションType: Pay As You GoPrice: $2.99/monthPeriods: 6 monthsThen: $9.99/monthユーザー体験の流れ:
- 1〜6ヶ月目: 月額$2.99
- 7ヶ月目以降: 月額$9.99
アプリでの実装方法
「アプリでの使用方法」セクションnative-purchases プラグインは、初回限定特典(Introductory Offer)の表示と適用条件の判定を自動的に処理します:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch products with intro offer informationconst { products } = await NativePurchases.getProducts({ productIdentifiers: ['com.yourapp.premium_monthly'], productType: PURCHASE_TYPE.SUBS,});
const product = products[0];
// Display intro offer details (StoreKit sends localized metadata)if (product.introductoryPrice) { console.log('Intro price:', product.introductoryPriceString); console.log('Intro period:', product.introductoryPricePeriod); console.log('Intro cycles:', product.introductoryPriceCycles); console.log('Regular price:', product.priceString);} else { console.log('No intro offer configured');}
// Purchase (StoreKit automatically applies intro pricing if eligible)try { const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.yourapp.premium_monthly', productType: PURCHASE_TYPE.SUBS, });
console.log('Subscription active, receipt length:', transaction.receipt?.length); await validateReceiptOnServer(transaction.receipt);} catch (error) { console.error('Purchase failed:', error);}ユーザーへの初回限定特典の表示
「ユーザーへの初回限定特典の表示」セクションUIのベストプラクティス
「UIのベストプラクティス」セクション明確な価値提案:
Try Premium Free for 7 DaysThen $9.99/month. Cancel anytime.お得感を強調する:
Start at Just $1.99Get 3 months of Premium for only $1.99Then $9.99/month透明性のあるコミュニケーション:
Your Free Trial• Access all premium features• No charge for 7 days• $9.99/month after trial• Cancel anytime, even during trialfunction formatIntroOffer(product: any): string { if (!product.introductoryPrice) { return `${product.priceString} per ${product.subscriptionPeriod}`; }
const intro = product.introductoryPrice; const regular = product.priceString;
if (intro.price === 0) { // Free trial return `Try free for ${intro.periodString}, then ${regular}`; } else if (intro.cycles === 1) { // Pay up front return `${intro.priceString} for ${intro.periodString}, then ${regular}`; } else { // Enterprise return `${intro.priceString} for ${intro.cycles} ${intro.periodString}s, then ${regular}`; }}マーケティングのベストプラクティス
「マーケティングのベストプラクティス」というタイトルのセクショントライアル期間の戦略
「トライアル期間の戦略」というタイトルのセクション- 3〜7日間: 即断を促すアプリやゲーム向け
- 7〜14日間: ほとんどのアプリにおける標準
- 14〜30日間:複雑なツール、プロ向けアプリ
- 30日以上:高価値なB2Bまたはエンタープライズ
価格設定の心理学
「価格設定の心理学」というセクション- $0.99-$1.99:ハードルが非常に低く、テストに最適
- 50% OFF:高い価値を感じさせやすい
- 初月無料:一般的で馴染みのあるパターン
コミュニケーションのタイミング
「通知のタイミング」セクション- トライアル終了前: 次回の課金予定を通知
- 価値を強調: 利用統計や実績を表示
- 簡単な解約手続き: 透明性の高いプロセスで信頼を構築
初回特典のテスト
「初回特典のテスト」セクションsandboxテストを使用して動作を確認します:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// In sandbox mode, accelerated subscription durations apply:// - 3 days free trial = 3 minutes// - 1 week free trial = 3 minutes// - 1 month free trial = 5 minutes
const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Purchase with intro offerconst transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', productType: PURCHASE_TYPE.SUBS,});
console.log('Intro purchase transaction:', transaction.transactionId);
// Wait for accelerated renewalsetTimeout(async () => { const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, }); const premium = purchases.find((purchase) => purchase.productIdentifier === 'premium_monthly'); console.log('After trial state:', premium?.subscriptionState);}, 180000); // 3 minutes for weekly trial重要な注意事項
「重要な注意事項」セクション適用条件
「適用条件」セクション- サブスクリプショングループごとに1ユーザー1回まで(生涯)
- 新規サブスクライバーのみに適用
- 解約後の再利用は不可
- アップグレードおよびクロスグレードには適用不可
StoreKit API
「StoreKit API」セクションintroductoryPrice初回特典の詳細を表示eligibilityユーザーの適用資格を確認するメソッド- 購入時に自動的に適用
- 特別な購入フローは不要
制限事項
「制限事項」セクション- 1つのサブスクリプションにつき、有効な初回特典は1つのみ
- 他の割引タイプとの併用は不可
- 適用条件の変更は不可
- 適用条件の判定はAppleが制御
トラブルシューティング
「トラブルシューティング」セクション初回特典が表示されない場合:
- App Store Connectで特典が有効か確認してください
- ユーザーが過去に初回特典を利用していないか確認してください
- ユーザーが同じグループ内で既に購読していないか確認してください
- 新しいSandboxアカウントでテストしてください
適格性チェックに失敗する場合:
- App Storeの同期を待機(2〜3時間かかる場合があります)
- 製品IDが正しいか確認してください
- サブスクリプショングループの設定を確認してください
- 新規テストアカウントを使用してSandboxでテストしてください
価格が正しく表示されない場合:
- リージョンごとの価格設定を確認してください
- 通貨換算を確認してください
- オファーの期間が現在有効であることを確認してください
- 製品情報をリフレッシュしてください
Sandboxテストにおける注意点:
- 加速された期間を使用 (3分 = 1週間)
- テストごとに新しいテストアカウントを作成
- トライアルが自然に終了するまで待機
- 更新回数を確認 (Sandboxでは最大6回)
分析と最適化
「分析と最適化」というタイトルのセクション追跡すべきメトリクス
「追跡すべきメトリクス」というタイトルのセクション- 初回特典の承諾率
- トライアルから有料への転換率
- トライアル中の解約率
- 初回課金後の継続率
- 収益への影響
A/Bテストのアイデア
「A/Bテストのアイデア」というセクション- 無料トライアル vs 有料導入オファー
- トライアル期間のバリエーション
- 割引率
- 単発支払い vs 継続割引
最適化戦略
「最適化戦略」というセクション// Track offer performanceanalytics.track('intro_offer_displayed', { product_id: product.identifier, offer_type: product.introductoryPriceType, offer_duration: product.introductoryPricePeriod});
analytics.track('intro_offer_accepted', { product_id: product.identifier});
// Monitor conversionNativePurchases.addListener('transactionUpdated', (transaction) => { if (transaction.productIdentifier === product.identifier && transaction.isActive) { analytics.track('trial_converted', { transactionId: transaction.transactionId, productId: transaction.productIdentifier, }); }});次のステップ
「次のステップ」セクション- Sandboxテストの設定 初回限定オファーのテスト
- 休眠ユーザー向けキャンペーンのプロモーション設定
- サブスクリプション分析の実装
- ターゲットを絞ったマーケティングキャンペーンの作成
関連リソース
「関連リソース」セクション詳細については、以下の Apple公式ドキュメント(初回限定オファー).
「iOSサブスクリプション初回限定オファーの作成」へ進む
「iOSサブスクリプション初回限定オファーの作成」セクション使用している場合 iOSサブスクリプションの導入オファーを作成 支払いや購入を計画するには、これを以下と連携させます @capgo/native-purchases の使用 @capgo/native-purchases を使用したネイティブ機能について、 Capgo の料金 Capgo の料金ページのプロダクトワークフローについては、 決済システム 決済システムの、実装の詳細について、 @capgo/native-purchases @capgo/native-purchases の、実装の詳細について、 スタートガイド 実装の詳細については、Getting Started を参照してください。