メインコンテンツにジャンプ

App Storeの審査を通過するためのIn-App購入の方法 2025

iOSとAndroidでIn-App購入を実装したアプリをApp Storeで承認するための完全ガイド。2025年の一般的な却下理由、要件、およびベストプラクティスを学びましょう。

マーティン・ドナディュー

マーティン・ドナディュー

コンテンツマーケター

App Storeの審査を通過するためのIn-App購入の方法 2025

App StoreとGoogle Playでアプリを承認することは難しいものです。特に、In-App購入(IAP)とサブスクリプションを実装する場合です。2025年の厳格なガイドラインを理解することは重要です。この包括的なガイドでは、初回提出で審査を通過するために必要なすべての情報をカバーしています。

__CAPGO_KEEP_0__の詳細なセットアップ手順が必要ですか? __CAPGO_KEEP_1__の完全なガイドをご確認ください: iOS App Store レビュー | Android Play Store レビュー

IAPを含むアプリが却下される理由

IAPを含むアプリは、実際の金銭取引を伴うため、より厳密に検査されます。 2025年の拒否理由のトップは、 AppleのApp Store レビュー ガイドライン Google Playのモノ化ポリシー

  1. によると、IAPを含むアプリの拒否理由は次のとおりです。 価格の不明性 (42% の拒否)
  2. 未払いまたは混乱のあるサブスクリプション条項 (31%)
  3. 不正なUIパターン (18%)
  4. プライバシーポリシーの違反 (9%)

これらの罠を回避する方法については、詳しく説明します。

iOS App Store 要件

📖 iOS App Store 仕様書: 完全なセットアップ手順については、以下のページを参照してください。 iOS App Store レビュー ガイド

1. 価格の明確な透明性

Appleは購入ボタンより前に価格の正確な披露を要求しています。これは交渉の余地がありません。 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__

Apple の要求事項:

  • 価格が明確に表示されている: 「$9.99/月」
  • 請求頻度が事前に述べられている
  • ユーザーが得られるもの
  • 課金が発生する時期
  • キャンセル方法が表示されている

UI デザインのベスト プラクティス

よくある間違い: 価格をユーザーが「サブスクライブ」ボタンをタップするまで隠す、または価格を細字で表示する

解決策:

// Example: Compliant subscription display
<div className="subscription-card">
  <h2>Premium Plan</h2>
  <p className="price">$9.99/month</p>
  <ul>
    <li>✓ Ad-free experience</li>
    <li>✓ Unlimited cloud storage</li>
    <li>✓ Priority support</li>
  </ul>
  <p className="terms">
    Renews automatically. Cancel anytime in Settings.
  </p>
  <button>Subscribe Now</button>
</div>

価格の統一ルール: すべての価格が次のものと一致している:

  • App Store listing
  • インアプリ購入画面
  • サブスクリプション管理
  • マーケティング資料

$1の差でも自動的に拒否されます。

2. サブスクリプションプランの提示

Appleは、安いプランを強制的に選択させないようにするために「ダークパターン」を使用するアプリを旗印にします。

必要なもの

  • すべてのサブスクリプションティアを同等に表示する
  • プレミアムオプションを事前に選択しない
  • 機能の比較が簡単にわかる
  • 安い代替案が簡単に見つかる

Forbidden:

  • 自動で年間プランに切り替えます
  • 月額プランを隠す
  • カウントダウンタイマーを使用して、偽の緊急性を創ります
  • 「残り3つ」などの偽の不足感

3. 購入履歴の復元機能

IAPを使用するすべてのアプリには、サポート連絡なしで機能する購入履歴の復元ボタンを提供する必要があります。詳細は、 スタートガイド.

実装:

import { NativePurchases } from '@capgo/native-purchases';

async function restorePurchases() {
  try {
    const { customerInfo } = await NativePurchases.restorePurchases();

    if (customerInfo.activeSubscriptions.length > 0) {
      showSuccess('Purchases restored!');
      unlockPremiumFeatures();
    } else {
      showInfo('No previous purchases found.');
    }
  } catch (error) {
    showError('Restore failed. Please try again.');
  }
}

4. プライバシー規制 (5.1.1)

2025年には、プライバシー規制が厳しくなります。Appleは、以下の要件を設けました。

すべてのパーミッション:

  • Clear explanation __CAPGO_KEEP_0__ データの保存/共有方法の説明
  • 具体的な用途 (汎用的なものではない)
  • データの保存方法
  • オプションかどうか

Info.plist entries:

<key>NSCameraUsageDescription</key>
<string>Camera access lets you scan product barcodes for quick upgrades. Photos are never uploaded.</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>Location shows relevant local content in your Premium subscription.</string>

2025年、不正確なプライバシーラベルは最も多く却下された理由です。

Android Google Play 要求

📖 Androidの完全なガイド: __CAPGO_KEEP_1__ Android Play Store レビュー ガイド

1. 必須の Google Play Billing

デジタル商品 (サブスクリプション、インアプリコンテンツ) の場合、 Google Play Billing を使用する必要があります。代替の支払い方法は却下されます。 デジタル商品 (Play Billing を使用する必要があります):

機能のサブスクリプション

  • インアプリ通貨
  • デジタルコンテンツ (ebook、音楽)
  • プレミアムアンロック
  • 物理商品 (Play Billing を使用できません):

実物の商品

  • __CAPGO_KEEP_0__
  • 物理サービス
  • 非営利団体の寄付

native-purchases:の実装

Androidの完全なセットアップについては Androidサンドボックステストサブスクリプションの作成.

import { NativePurchases } from '@capgo/native-purchases';

// Automatically uses Google Play Billing on Android
await NativePurchases.configure({
  apiKey: 'your_api_key'
});

const { products } = await NativePurchases.getProducts({
  productIdentifiers: ['premium_monthly']
});

2.透明性のある自動更新

Googleは、サブスクリプションが自動更新されることを明確に示す必要があります。

  • 課金前に通知
  • 料金のリマインダー
  • 簡単なキャンセルアクセス

UIの準拠性:

<div className="subscription-terms">
  <p>Subscription renews automatically at $9.99/month</p>
  <p>Cancel anytime in Google Play Subscriptions</p>
  <p>Next billing date: February 15, 2025</p>
  <button onClick={openManagement}>
    Manage in Google Play
  </button>
</div>

3. プライバシーポリシーの要件

IAPアプリには必須:

  1. Play Consoleに記載されたプライバシーポリシーのURL
  2. アプリ内でアクセス可能なプライバシーポリシーのリンク
  3. Data Safetyの正確な宣言

Data Safetyの宣言は必須:

  • 購入履歴の収集
  • 受領のためのメールアドレス
  • デバイスID(詐欺防止)
  • 分析データ

アプリの説明ガイドライン

両プラットフォームで共通する拒否理由

1. メタデータの不一致

なぜ失敗するのか

  • スクリーンショットには現在のバージョンにない機能が表示されている
  • 説明文では実際に存在しない機能を謳っている
  • アプリ内と価格が異なる

メタデータチェックリスト

予防対策

  • すべてのサブミッションのスクリーンショットを更新する
  • 説明文を実際の機能に合わせる
  • すべての主張が正確であることをテストする
  • 古いプロモーション文を削除する

2. 不正のマーケティング

自動拒否トリガー:

  • 「#1アプリ」は証拠なし
  • 「無制限」は隠れた制限
  • 偽のレビューまたは評価
  • 競合他社の攻撃

マーケティングガイドライン

ベストプラクティス: 具体的かつ事実に基づく:

  • ✓ 「50,000人以上のユーザーに参加」
  • ✗ 「世界で一番のアプリ」
  • ✓ 「年間プランで最大30%節約」
  • ✗ “期間限定オファー!”

3. 購入フローの問題

テストすること

  • 製品が正しく読み込まれます
  • 購入が正常に完了します
  • プレミアム機能が即時解除されます
  • 購入履歴の復元が正常に機能します
  • エラーメッセージがユーザーフレンドリーです
  • ネットワークの障害が適切に処理されます
// Comprehensive error handling
async function handlePurchase(productId: string) {
  try {
    const { customerInfo } = await NativePurchases.purchaseProduct({
      productIdentifier: productId
    });

    if (customerInfo.entitlements.active['premium']) {
      unlockPremiumFeatures();
    }
  } catch (error: any) {
    switch (error.code) {
      case 'USER_CANCELLED':
        // Silent - user backed out
        break;
      case 'ITEM_ALREADY_OWNED':
        await NativePurchases.restorePurchases();
        break;
      case 'NETWORK_ERROR':
        showError('Check your connection and try again.');
        break;
      default:
        showError('Purchase failed. Please try again.');
    }
  }
}

提出前にチェックすること

提出前にチェックすること

提出前にこのチェックリストを使用してください。詳細なテスト手順については:

テスト

  • すべてのサブスクリプション レベルをテスト
  • 無料試用期間が正しく動作することを確認
  • 導入オファーをテスト
  • 購入の復元が正常に動作することを確認
  • 複数のデバイスでテスト
  • サンドボックス/テスト アカウントが正常に動作することを確認

価格 & 条件

  • 価格はすべてのプラットフォームで一致します
  • サブスクリプションの条件が明確に述べられています
  • キャンセル方法が表示されています
  • 請求頻度が表示されています
  • 無料試用期間が正確です

プライバシー &amp; パーミッション

  • ストア内でプライバシーポリシーにリンクしています
  • アプリ内でプライバシーポリシーにアクセスできます
  • すべてのパーミッションが正当化されています
  • Info.plist の説明が明確 (iOS)
  • データ セーフティが完了しました (Android)

メタデータ

  • スクリーンショットは現在のバージョンを表示します。
  • 説明は機能に一致します。
  • プレースホルダーテキストはありません。
  • 年齢制限は正確です。
  • すべての主張はテスト可能です。

Code Quality

  • 起動時にクラッシュはありません。
  • すべての機能は説明どおりに機能します。
  • エラーハンドリングが実装されています。
  • ローディング状態が表示されます。
  • ネットワークエラーが処理されています。

レビューのタイムラインの期待値

レビュー タイムライン

iOS:

  • 標準: 24-48 時間
  • ピーク期: 3-5 日
  • 週末: なし
  • 優先: 臨界バグの場合に利用可能

Android:

  • 初期: 平均 7 日
  • 更新: 通常は速い
  • ローリング レビュー: ライブにできる時期はいつでも
  • ポリシー違反: 即時停止が可能

プロのヒント: __CAPGO_KEEP_0__のiOSアプリは、月曜日から水曜日までに提出すると、土曜日の遅延を避けることができます。

拒否された場合の行動

説明のプロセス

ステップ 1: 問題を理解する

  • 拒否通知を丁寧に読む
  • 特定のガイドラインを引用する
  • 提供された例を確認する
  • フィードバックのパターンを探す

ステップ 2:徹底的に修正する

  • 根本原因を対処する、症状だけを修正するのではなく
  • 修正を徹底的にテストする
  • すべての変更をドキュメントする
  • スクリーンショットの前/後

ステップ 3: 専門的な対応

ドキュメントの要求

iOS 解決センター:

Thank you for the feedback. I have addressed the issue:

Issue: Subscription pricing not clear upfront

Fix: Added explicit pricing display on subscription screen
showing "$9.99/month" before purchase button. Also added
cancellation instructions on the same screen.

Screenshots showing changes are attached. Test account
provided in App Review Notes.

Android の抗議:

Subject: Policy Violation Appeal - [App Name]

I have received notification regarding [Policy X.Y].

Changes made:
1. Updated subscription UI to show all pricing upfront
2. Added clear cancellation instructions
3. Implemented restore purchases functionality

Version [X.Y.Z] addresses all concerns. Test account
credentials provided below for verification.

ステップ 4: 速やかに再提出

  • 再提出は迅速にレビューされます
  • 通常 24 時間以内
  • テストアカウントを含め
  • 前の提出を参照

2025 年の更新と新しい要件

iOS の変更

AI機能の披露 (新)

  • AI生成コンテンツのラベル付けが必須
  • AI使用の説明
  • コンテンツの安全性の記録

強化されたサブスクリプションの明確化

  • 比較対照表の表示が必須
  • 安価なオプションの隠蔽が禁止
  • アップグレード/ダウングレードのパスが明確

プライバシーの強化

  • セクション 5.1.1 の強制が増強
  • データの正当性に対する厳密な監視
  • より厳格な子供向けアプリの規則

Androidの変更

代替課金 (地域)

  • EEA、韓国で許可されている
  • Google Playのオプションを提供する必要がある
  • サービス料金の削減

サブスクリプションAPIの要件

  • 新規アプリはmonetization.subscriptions APIを使用する必要がある
  • Legacy billing APIは非推奨
  • サブスクリプションの管理ツールの向上

成功のためのベストプラクティス

1. 正しく SDK を使用する

The @capgo/native-purchases プラグインは両方のプラットフォームを正しく処理します:

// Single API for iOS and Android
await NativePurchases.configure({
  apiKey: 'your_api_key'
});

// Automatically uses correct billing system
const { products } = await NativePurchases.getProducts({
  productIdentifiers: ['premium_monthly']
});

// Platform-specific logic handled automatically
await NativePurchases.purchaseProduct({
  productIdentifier: 'premium_monthly'
});

2. 正しくエラー処理を実装する

購入状態をすべて優雅に処理する:

  • キャンセル (静的)
  • ネットワークエラー (再試行オプション)
  • 既に所有 (復元)
  • 製品が利用できない (ユーザーに通知する)
  • 支払いが保留中 (後で確認する)

3. 明確にコミュニケーションをとる

ユーザーは常に知る必要があります:

  • 購入することの内容
  • どのくらいの費用がかかるか
  • いつ課金されるか
  • キャンセルする方法
  • 試用期間終了後のこと

4. Extensivelyのテスト

iOSサンドボックス:

  • App Store Connectでテストアカウントを作成する
  • デバイス上の設定(設定 > App Store > サンドボックス)で構成する
  • 加速されたサブスクリプション期間の注意

Androidライセンステスト:

  • Play Consoleでテストアカウントを追加する
  • 「テスト購入」通知を参照する
  • 実際の請求は発生しません

リソース

プラットフォームドキュメント

実装ガイド

詳細なレビュー ガイド

専門の助けが必要ですか?

アプリ レビューに詰まっている場合や、ハンドソーン アシスタンスが必要ですか? 私たちのチームは、イン アプリ 購入実装とレビュー準備のための専門的なサポートを提供しています。

私たちとカウントを予約してください 個別の助けが必要な場合

  • IAP実装レビュー
  • アプリ ストア レビュー準備
  • 提出戦略ガイダンス
  • 拒否解決支援
  • セットアップとテストのサポート

数百のアプリをレビューに通すのに役立っています!

まとめ

2025年のアプリレビューに通すには、細かい点に注意し、明確なコミュニケーション、適切な実装が必要です。主なポイントは次の通りです。

  1. 透明性は必須 - 価格を常に事前に表示する
  2. プラットフォームの規則に従う - 必要な請求システムを使用する
  3. 徹底したテスト - レビューアが見つける前に問題を発見する
  4. 明確なコミュニケーション - ユーザーは混乱しないようにする
  5. ドキュメントの準備 - テストアカウントを用意する

このガイドを参考にして、適切なツールであるnative-purchasesプラグインを使用することで、初回承認の確率を大幅に高めることができます。 注意: レビューアーはユーザーを尊重し、ガイドラインを遵守するアプリを求めています。ユーザーを尊重し、ガイドラインを遵守する意識で開発を進めれば、承認が受けられるでしょう。インアプリ購入の実装に困っている場合

以下のドキュメントを参照するか、コミュニティにご相談ください。

「2025年版 App Store レビュー通過のためのインアプリ購入ガイド」から続けて進んでください。 __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

あなたが使用している場合 2025年インアプリ購入のApp Storeレビュー通過方法 ストアの承認と配布を計画するには、接続する必要があります。 @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のネイティブ機能を使用 @Capacitor/__CAPGO_KEEP_1__-native-market、 Capacitorの実用的なコンテキストにおけるOTA更新のためのApp Store承認ガイド。

リアルタイム更新は Capacitor アプリに適用されます

Capgoのバグが実際に生じた場合、Capgoを使用して修正を配信するのではなく、数日間待ってアプリストアの承認を待つのではなく、ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路で残る。

Get Started Now

Latest from our Blog

Capgoは、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を提供します。