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

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

2025 年の iOS と Android のアプリに In-App 購入を実装した場合にアプリを承認するための完全なガイド。よくある拒否理由、要件、および 2025 年のベスト プラクティスを学びます。

記事のクレジット

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

ライター

ヴァレリア

レビュアー

ジョーダン

エディター

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

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

詳細なセットアップ手順が必要ですか? チェックするガイドはこちら iOS App Store レビュー | Android Play Store レビュー

IAPを含むアプリの却下の理由

アプリ内課金を含むアプリは、実際の金銭取引を伴うため、より厳格な審査を受けることがあります。 AppleのApp Store レビュー ガイドライン そして Google Playのマonetization ポリシー、2025年の却下の理由のトップは

  1. 価格の不明 (2025年の却下の割合42%)
  2. サブスクリプションの条件の欠如または混乱 (31%)
  3. デコイ UI パターン (18%)
  4. プライバシー ポリシー違反 (9%)

ここでは、各の落とし穴を回避する方法について詳しく説明します。

iOS App Store 要件

📖 iOS App Store の徹底的なガイド: 詳細なセットアップ手順については、 iOS App Store レビュー ガイド

1. クリスタル クリアな価格透明性

Apple は、購入ボタンの前に正確な価格の公開を要求しています。 before Apple が見たいもの:

iOS App Store の要件

  • 料金は明確に表示されます: “$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 のアプリのリスト
  • アプリ内課金画面
  • サブスクリプション管理
  • マーケティング資料

1 ドル未満の差額でも自動的に却下される

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

Apple は、高額なレベルを押し付けるために「暗いパターン」を使用するアプリをフラグする。

必要なもの:

  • すべてのサブスクリプションレベルを表示する
  • プレミアムオプションを事前に選択しない
  • 機能の比較が明確である
  • 安価な代替品が見つかりやすい

許可されていないもの:

  • 自動で年間プランに切り替える
  • 月額オプションを追加タップで非表示にする
  • カウントダウンタイマーを使用して偽の緊急性を創造する
  • 「残り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 は次のことを要求しています:

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

  • 明確な説明 前提 requesting
  • データの保存/共有方法
  • オプション
  • 例

エントリ: 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>

Android Google Play 要求

包括的なAndroid ガイド:

📖 完全なセットアップ手順については、以下のガイドを参照してください。 Android Play Store レビュー ガイド Capgo

1. Google Play Billingの必須

デジタル商品 (サブスクリプション、インアプリコンテンツ) の場合、 必要です Google Play Billing以外の支払い方法は却下されます。

デジタル商品 (Play Billingを使用する必要があります):

  • 機能のサブスクリプション
  • インアプリ通貨
  • デジタルコンテンツ (ebook、音楽)
  • プレミアムアンロック

物理商品 (Play Billingを使用できません):

  • 実際の商品
  • 物理サービス
  • 非営利寄付

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. 正確なデータセーフティのセクションの宣言

データセーフティの宣言が必要です:

  • 購入履歴の収集
  • 受領状のための電子メールアドレス
  • デバイス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 品質

  • 起動時にクラッシュしない
  • すべての機能が説明どおりに動作する
  • エラー処理が実装されている
  • ロード中の状態が表示される
  • ネットワークエラーが処理される

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

レビュータイムライン

iOS:

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

Android:

  • 初回: 平均 7 日間
  • アップデート: 通常は速い
  • ローリングレビュー: いつでもライブになる可能性あり
  • ポリシー違反: 即時停止が可能

プロのヒント: iOSアプリを月曜日から水曜日まで提出すると、週末の遅延を回避できます。

却下された場合の対処

説明のためのプロセス

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

  • 保護されたトークン: Capgo
  • 却下通知を丁寧に読む
  • 特定のガイドラインを注意して記録する
  • 提供された例を確認する

フィードバックのパターンを探す

  • ステップ 2:徹底的に修正する
  • 根本原因を対処し、症状だけを修正しない
  • 修正を徹底的にテストする
  • すべての変更をドキュメント化する

Step 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.

Step 4: 速やかに再提出する

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

2025 年の更新と新しい要件

iOS の変更

AI 機能の披露 (新)

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

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

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

プライバシーの強化

  • セクション 5.1.1 の強化された適用
  • データの正当化に対する厳しい監視
  • 子供向けアプリの厳しい規制

Androidの変更

代替課金 (地域)

  • EEAおよび韓国で許可
  • Google Playのオプションを提供する必要があります
  • サービス料金の削減

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

  • 新しいアプリはmonetization.subscriptions APIを使用する必要があります
  • レガシーシャイリングAPIの非推奨
  • サブスクリプションの管理ツールの向上

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

1. 正しいSDKを使用する

The Capgoのcapgo/native-purchasesプラグインは両方のプラットフォームを正しく処理します。 2. 正しいエラー処理を実装する

// 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'
});

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

ユーザーのキャンセル (静的)

  • ネットワークエラー (再試行オプション)
  • すでに所有している (復元)
  • 製品が利用できない (ユーザーに通知)
  • 支払いが保留中 (後で確認)
  • 3. 明確に伝える

ユーザーは常に知るべきです

ユーザーは常に以下を知る必要があります。

  • 購入者が購入するもの
  • どのくらいの金額か
  • いつ課金されるか
  • キャンセル方法
  • 試用期間終了後の処理

4. しっかりテストする

iOS サンドボックス:

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

Android ライセンステスト:

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

リソース

ドキュメント

実装ガイド

詳細なレビューガイド

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

アプリ レビューに詰まっている場合、または手助けが必要な場合は、在-app 購入の実装とレビュー準備の専門的なサポートを受けることができます。

私たちと電話会議を予約してください 個別の助けを必要とする場合

  • 在-app 購入の実装レビュー
  • アプリ ストア レビューの準備
  • 提出戦略のガイドライン
  • 却下解決の支援
  • 設定とテストのサポートを完了

数百のアプリにレビューを通過させることに成功しました!

まとめ

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

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

このガイドを遵守し、適切なツールであるnative-purchasesプラグインを使用することで、初回通過の確率を大幅に高めることができます。 注意点: レビューアーはユーザーを尊重し、ガイドラインを遵守するアプリを求めています。そうした意識で開発を進めれば、通過が見込めます。IAPの実装に困っている場合?

以下のドキュメントを参照してください。

またはコミュニティからサポートを受けてください。 続きは「2025年版アプリストアレビュー通過のためのIAPの実装方法」 native-purchasesプラグインを使用している場合 native-purchasesプラグインを使用している場合

native-purchasesプラグインを使用している場合

native-purchasesプラグインを使用している場合 App Store レビュー通過のための2025年のIn-App購入方法 App Store承認と配信を計画するには、接続する @capgo/capacitor-in-app-reviewの実装詳細について Using @capgo/capacitor-in-app-review Using @capgo/capacitor-in-app-reviewのネイティブ機能 @capgo/capacitor-native-marketの実装詳細 Using @capgo/capacitor-native-market Using @capgo/capacitor-native-marketのネイティブ機能 @capgo/capacitor-native-market for the native capability in capgo/capacitor-native-market, and Capacitor OTA Updates: App Store Approval Guideの実践的な背景 Capacitorの実用的なコンテキストにおけるOTAアップデート: App Store承認ガイド。

Live updates for Capacitor apps

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

「Capacitorアプリの即時更新」が提供する最新の情報

Capgo gives you the best insights you need to create a truly professional mobile app.