コンテンツへスキップ

iOS サブスクリプションの紹介オファーを作成する

お試しオファーを利用すると、対象となるユーザーに無料トライアルまたは割引されたお試し価格を提供して、参入障壁を軽減し、サブスクリプション コンバージョンを増やすことができます。

紹介オファーは、加入者ベースを拡大するための最も効果的なツールの 1 つです。これらにより、ユーザーは次のことが可能になります。

  • プレミアム機能をリスクなしでお試しください
  • コミット前の経験値
  • 低価格帯から始める
  • 製品に対する信頼を築く

iOS は、次の 3 種類の紹介オファーをサポートしています。

顧客は指定された期間中無料でアクセスできます。試用後、キャンセルしない場合は、通常の料金が請求されます。

例:

  • 7日間無料
  • 14日間無料
  • 1ヶ月無料

こんな方に最適:

  • 高価値のサブスクリプション
  • 機能豊富なアプリ
  • ユーザーの習慣を構築する

顧客は、導入期間をカバーする単一の割引価格を支払います。

例:

  • 2 か月間 $1.99 (その後は月額 $9.99)
  • 3 か月間 $9.99 (その後は月額 $19.99)

こんな方に最適:

  • コミットメントシグナル
  • キャッシュフローのニーズ
  • 価格感応度のテスト

顧客は複数の請求サイクルに対して割引価格を支払います。

例:

  • 3 か月間 $1.99/月 (その後は $9.99/月)
  • 6 か月間 $4.99/月 (その後は $14.99/月)

こんな方に最適:

  • 段階的な取り組み
  • 長期的な価値の実証
  • 認識されているリスクの軽減

ユーザーは次の場合にのみ紹介オファーを受け取ることができます。

  • これまでに製品の紹介オファーを受け取ったことがない
  • 同じサブスクリプション グループ内のどの製品の紹介オファーも受け取っていない
  • 製品の有効なサブスクリプションを持っていない

紹介特典を追加する前に、まず 自動更新可能なサブスクリプションを作成 する必要があります。

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

    App Store Connect で、アプリの 収益化 > サブスクリプション セクションに移動し、オファーを追加するサブスクリプションを選択します。

  2. サブスクリプション価格を追加

    [サブスクリプション価格] の横にある + アイコンをクリックして、価格設定モーダルを開きます。

  3. 紹介オファーを作成

    オプションから 「紹介オファーの作成」 を選択します。

    紹介オファーを作成

  4. 国と開始日の構成

    国と地域: オファーを利用できる国を選択してください

    • リーチを最大化するにはすべての国を選択してください
    • またはテストを特定の市場に限定する

    開始日: オファーが利用可能になった日

    • すぐに実行することも、将来的にスケジュールすることもできます
    • マーケティング キャンペーンとの調整に役立ちます

    終了日 (オプション): オファーの有効期限が切れる日

    • 継続的に利用できる場合は空白のままにします
    • 期間限定プロモーションの日付を設定します
  5. オファーの種類を選択

    次の 3 つのオファー タイプから 1 つを選択します。

    無料 (無料トライアル)

    • 期間を選択します (日、週、月)
    • 例: 7 日、2 週間、1 か月前払い
    • 一括支払い価格の設定
    • 支払いの対象となる期間を設定する
    • 例: 2 か月で 1.99 ドル

    従量課金制

    • 期間ごとに割引価格を設定
    • 期間の数を設定します
    • 例: 3 か月間 $2.99/月
  6. レビューと確認

    以下を示す概要を確認してください。

    • 特典の種類と期間
    • 価格の詳細
    • 導入期間後の通常価格
    • 利用可能日と国
  7. 保存

    [保存] をクリックして紹介オファーを作成します。サンドボックス モードですぐにテストできるようになります。

Type: Free
Duration: 7 days
Then: $9.99/month

ユーザージャーニー:

  • 1日目~7日目:無料アクセス
  • 8日目: 初回料金9.99ドル
  • 月額料金は継続します
Type: Pay Up Front
Price: $4.99
Duration: 3 months
Then: $9.99/month

ユーザージャーニー:

  • 1日目: $4.99の請求
  • 90日間のアクセス
  • 91 日目: 月額 9.99 ドルが請求されます
Type: Pay As You Go
Price: $2.99/month
Periods: 6 months
Then: $9.99/month

ユーザージャーニー:

  • 1 ~ 6 か月目: 月額 2.99 ドル
  • 7 か月目以降: $9.99/月

ネイティブ購入プラグインは、紹介オファーの提示と資格を自動的に処理します。

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch products with intro offer information
const { 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);
}

ユーザーへの紹介オファーの表示

Section titled “ユーザーへの紹介オファーの表示”

明確な価値提案:

Try Premium Free for 7 Days
Then $9.99/month. Cancel anytime.

節約を重視:

Start at Just $1.99
Get 3 months of Premium for only $1.99
Then $9.99/month

透過的なコミュニケーション:

Your Free Trial
• Access all premium features
• No charge for 7 days
• $9.99/month after trial
• Cancel anytime, even during trial
function 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}`;
}
}

マーケティングのベストプラクティス

Section titled “マーケティングのベストプラクティス”
  • 3~7日: アプリ、ゲームをすぐに決定
  • 7 ~ 14 日: ほとんどのアプリの標準
  • 14~30日: 複雑なツール、プロフェッショナルなアプリ
  • 30 日以上: 高価値の B2B またはエンタープライズ
  • $0.99-$1.99: 障壁が非常に低く、テストに適しています
  • 50% オフ: 知覚価値が高い
  • 初月無料: よくあるおなじみのパターン
  • 試用期間が終了する前に: 今後の請求についてユーザーに通知します
  • ハイライト値: 使用状況の統計、実績を表示します。
  • 簡単なキャンセル: 透明性のあるプロセスで信頼を構築

サンドボックス テストを使用して動作を検証します。

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 offer
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Intro purchase transaction:', transaction.transactionId);
// Wait for accelerated renewal
setTimeout(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 つのイントロ オファー (生涯)
  • 新規加入者のみに適用されます ・キャンセル後は再利用不可
  • サブスクリプションのアップグレード/クロスグレードには利用できません
  • introductoryPrice には、イントロ オファーの詳細が表示されます
  • eligibility メソッドはユーザーが資格があるかどうかを確認します
  • 購入時に自動的に適用されます
  • 特別な購入方法は必要ありません
  • サブスクリプションごとに一度に有効になるイントロ オファーは 1 つだけです
  • 他の割引タイプとの併用はできません
  • 資格ルールは変更できません
  • Apple は適格性チェックを制御します

紹介オファーが表示されない:

  • App Store Connect でオファーがアクティブ化されているかどうかを確認します
  • ユーザーがこれまでに紹介オファーを使用したことがないことを確認する
  • ユーザーがグループ内の何もサブスクライブしていないことを確認してください
  • 新しいサンドボックス アカウントでテストする

資格チェックに失敗しました:

  • App Store の同期を待ちます (2 ~ 3 時間かかる場合があります)
  • 製品IDが正しいことを確認してください
  • サブスクリプション グループの構成を確認する
  • 新しいテスト アカウントを使用してサンドボックスでテストする間違った価格表示:
  • 地域の価格設定を確認する
  • 通貨換算を確認する
  • オファーの日付が最新のものであることを確認してください
  • 製品情報を更新

サンドボックス テストの問題:

  • 加速期間を使用します (3 分 = 1 週間)
  • テストごとに新しいテスト アカウントを作成する
  • トライアルが自然に完了するまで待ちます
  • 更新回数の確認(サンドボックスでは最大6回)
  • 紹介オファー承諾率
  • トライアルから有料への変換率
  • トライアル中のキャンセル
  • 最初の充電後の保持
  • 収益への影響
  • 無料トライアルと有料イントロの比較
  • トライアルの長さのバリエーション
  • 割引率
  • 一括支払いと定期割引の比較
// Track offer performance
analytics.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 conversion
NativePurchases.addListener('transactionUpdated', (transaction) => {
if (transaction.productIdentifier === product.identifier && transaction.isActive) {
analytics.track('trial_converted', {
transactionId: transaction.transactionId,
productId: transaction.productIdentifier,
});
}
});
  • サンドボックス テストを構成 してイントロ オファーをテストします
  • ウィンバック キャンペーンのプロモーション オファーを設定する
  • サブスクリプション分析の実装
  • ターゲットを絞ったマーケティング キャンペーンを作成する

詳細については、紹介オファーに関する公式 Apple ドキュメント を参照してください。