レシート検証機能の設定

概要:レシート検証では、アプリ内購入およびサブスクリプションによる収益を計測し、アプリストアとの照合によって取引を検証します。これにより、広告費用対効果(ROAS)を正確に算出できます。

新しいレシート検証へのアップグレード

従来のレシート検証は、2026年9月7日に提供を終了します。詳しくは、「お知らせ:従来のレシート検証の提供終了」を参照してください。アプリで従来のレシート検証を使用している場合は、以下の設定手順を実施し、新しいレシート検証へ移行してください。移行を開始する前に、主な相違点を確認し、移行の準備を行ってください。

旧レシート検証機能の廃止についてレシート検証の変更点

トピック 従来版 新しいレシート検証
SDKメソッド validateAndLogInAppPurchase(legacy / v1) validateAndLogInAppPurchase(v2)、iOSおよびAndroidでメソッド名は同じですが、新しいシグネチャを使用します.
価格と通貨の入力 SDK呼び出し時に渡す ストアから自動的に取得
購入タイプ 指定不要 PurchaseType パラメーターの指定が必須(subscriptionまたはone-time purchase
収益設定の構成 不要 必須([収益設定]ページ)
af_revenue 値の取得元 SDK呼び出し時に渡された値 ストアから返されたグロス値。SDK呼び出し時に渡されたカスタム値は、イベントのcustom_data オブジェクトに格納されます。
購入イベントの粒度 すべての取引タイプに対して、単一の af_purchase イベントを使用 取引タイプごとに異なるイベントを使用:af_purchaseaf_ars_trial_startedaf_ars_subscription_started、およびそれぞれのサンドボックス版イベント
StoreKit 2への対応(iOS) 非対応 対応
不正フィルタリング 限定的 AndroidおよびiOSの両方で改善
SDKの対応状況 AppsFlyer SDK v7.0.0以降では削除 Android v6.17.5、iOS v6.17.8、およびプラグインv6.17.8以降で利用可能
検証済み購入イベントの記録 2026年9月7日まで対応 継続して対応

移行の準備

移行を開始する前に、以下の点を確認してください。

  • 既存ユーザーへの影響を避けながら、段階的に移行してください。AppsFlyer管理画面で新しいレシート検証を有効にしても、従来のメソッドを引き続き使用しているアプリバージョンには影響しません。従来のレシート検証が2026年9月7日に提供終了となるまでは、両方の方式が引き続き動作します。
  • 移行後は、収益額が変わる可能性があります。新しいレシート検証では、ストアから返されたグロス値が使用されます。一方、従来のレシート検証では、SDK呼び出し時に渡された収益値が使用されていました。SDK呼び出し時にグロス値ではない金額を渡していた場合、移行後は、グロス値を反映する管理画面およびパートナーへのポストバックに、これまでとは異なる金額が表示されます。ネット収益を確認する場合は、代わりにROI360ストア収益を使用してください。詳しくは、「ROI360ストア収益を設定する」を参照してください。
  • 収益額の変更について、UAパートナーに事前に通知してください。これまで af_purchase ポストバックからグロス値ではない収益額を取り込んでいた広告ネットワークでは、移行後に異なる金額が表示されるようになります。
  • アプリのリリーススケジュールを計画してください。2026年9月7日以降、Android v6.17.5より前、またはiOS v6.17.8より前のSDKバージョンでビルドされたアプリを使用しているユーザーについては、検証済みの af_purchase イベントが生成されなくなります。提供終了日までに大半のユーザーが新しいアプリバージョンへ移行できるよう、十分な余裕を持って新バージョンをリリースしてください。

ROI360ストア収益への切り替え

ROI360ストア収益への切り替えに伴うSDKの変更は不要です。どちらの製品も、同じ validateAndLogInAppPurchase(v2)メソッドを使用するためです。購入を自動検出するためのPurchase Connectorの追加は任意です。

詳細および設定手順については、「ROI360ストア収益を設定する」を参照してください。

概要

 注意

レシート検証の仕組みや、AppsFlyerで有効化する方法など、レシート検証の詳細については、「レシート検証について」を参照してください。

レシート検証を設定するには、以下の手順を順番に実施してください。

  1. ストアの認証情報を設定する(iOSおよびAndroid)
    • iOSレシート検証を有効にするため、App Store Connectのキー(In-App Purchaseキー、Key ID、Issuer ID)をAppsFlyerに設定します。
    • AndroidGoogle Cloudのサービスアカウントを設定し、Google Play Consoleで必要な権限を付与したうえで、サービスアカウントのJSONキーファイルをAppsFlyerにアップロードします。
  2. validateAndLog SDK APIを実装する:開発者がAppsFlyerの validateAndLog SDK APIを組み込めるよう準備し、テスト用のサンドボックス環境を設定します。
  3. validateAndLog SDK APIの実装をテストする:iOSおよびAndroidで、サンドボックス環境における購入とサブスクリプションのテストを実施し、レシート検証イベントが生成され、AppsFlyerに正しく記録されることを確認します。
  4. 設定を確認し、必要に応じて更新する:プロダクトタイプが[レシート検証]に設定されていることを確認します。また、ストアキーとSDK連携のステータスを確認し、収益が継続的かつ正確に計測される状態であることを確認します。
  5. validateAndLog SDK APIを実装したアプリバージョンをリリースするvalidateAndLog SDK APIを組み込んだ更新版のアプリをリリースします。その際、サンドボックス用のフラグが無効になっていること、および必要なアプリ内イベントが検証ルールによってブロックされていないことを確認してください。

ステップ1(iOS):App Store Connectキーを設定する

ステップ1では、App Store Connect から以下の認証情報を取得し、AppsFlyerプラットフォームの[収益設定]ページに入力します。

  • In-App Purchase キー
  • Key ID
  • Issuer ID

開始する前に

  • 認証情報の設定には、App Store ConnectとAppsFlyerの両方で行う手順が含まれます。設定中は、App Store ConnectとAppsFlyerの両方のタブを開いたままにしてください。
  • iOSアプリでは、アプリ内購入およびサブスクリプションを処理するためのフレームワークであるStoreKit v1 または v2 が必要です。

1.1 App Store Connectキーを作成する

iOSの認証情報を設定するには、以下の手順を実施してください。

  1. App Store Connectで、[Users and Access]に移動します。

  2. Users and Access]>[Integrations]に移動し、[Keys]の一覧から[In-App Purchase]を選択します。

  3. ]をクリックして、新しいIn-App Purchaseキーを生成します。

  4. APIキーの名前を入力します。
  5. Generate]をクリックします。
  6. 生成したキーの横にある[Download In-App Purchase Key]をクリックし、キーをダウンロードします。 注意:キーをダウンロードできるのは1回のみです。
  7. 生成したキーのKey IDをコピーし、AppsFlyerの購入とサブスクリプションの設定にある[Key ID]フィールドに貼り付けます。

  8. Issuer IDをコピーします。 注意: Issuer IDがページ上部に表示されない場合は、任意のアクセスレベルでApp Store Connect APIキーを作成してください。その後、In-App Purchaseキーのページ上部にIssuer IDが表示されるようになります。

1.2 App Store Connectキーを設定する

  1. レシート検証を有効にします。
  2. App Store Connect keys]のステップで、[In-App Purchase key]フィールドのUpload]をクリックし、p8ファイルをアップロードします。
  3. App Store Connect keys]のセクションに、App Store Connectからコピーした以下の値を貼り付けます。

    • Key ID
    • Issuer ID
  4. Validate keys]をクリックし、入力したキーが正しいことを確認します。 注意:アプリがまだApp Storeで公開されていない場合、[Validate keys]が正常に機能しないことがあります。
  5. 保存して次へ]をクリックします。

ステップ1(Android):サービスアカウントキーと権限を設定する

ステップ1では、Google PlayおよびGoogle Cloudから必要な認証情報を取得し、AppsFlyerプラットフォームの[収益設定]ページに入力します。

開始する前に

  • アプリ内購入およびサブスクリプション収益の計測設定には、Google Cloud PlatformGoogle Play ConsoleAppsFlyerの管理画面で行う手順が含まれます。設定中は、3つすべての画面をタブで開いたままにしておくことを推奨します。
  • なお、AppsFlyerの管理画面で設定を行うには、管理者権限が必要ですのでご注意ください。

1.1 Google PlayデベロッパーアカウントをGoogle Cloudプロジェクトにリンクする

前提条件:Google Play ConsoleおよびGoogle Cloudプロジェクトへのアクセス権

Google PlayデベロッパーアカウントをGoogle Cloudプロジェクトにリンクするには、以下の手順を実施してください

  1. Google Play Consoleで、Google Playデベロッパーアカウントに移動します。
  2. アカウントをGoogle Cloudプロジェクトにリンクします。手順については、Googleのヘルプトピックを参照してください。
  3. Google Play Developer APIを有効にします。手順については、Googleのヘルプトピックを参照してください。

1.2 Google Cloud Platformでサービスアカウントを設定する

前提条件:Google Cloud Platformへのアクセス権

サービスアカウントを設定するには、以下の手順を実施してください:

  1. サービスアカウントを作成する、または既存のサービスアカウントを確認する:

    1. Google Cloud Platformの[Service Accounts]セクションに移動し、[CREATE SERVICE ACCOUNT]をクリックします。
    2. サービスアカウントの詳細を入力します。
    3. メールアドレスをコピーします。
    4. Create and continue]をクリックします。
    5. Grant this service account access to the project]のステップで、[Pub/Sub subscriber]ロールを選択します。
    6. Continue]>[Done]をクリックします。

  2. サービスアカウントのプライベートキーをダウンロードする

    1. Google Cloud Platformの[Service accounts]セクションに移動し、一覧から対象のアカウント(先ほど作成したアカウント)を見つけて、[More actions]アイコンをクリックします。
    2. Manage keys]をクリックします。
    3. Add key]>[Create new key]をクリックします。

    4. Create private key]のポップアップで、[Key type]から[JSON]を選択し、[Create]をクリックします。
    5.  Createをクリックします。プライベートキーのJSONファイルがダウンロードされます。

    6. 後ほどAppsFlyerにアップロードするため、JSONキーファイルを保存します。 注意!キーファイルは必ず保存してください。後から再取得することはできません。保存しなかった場合は、新しいキーを一から作成する必要があります。

1.3 Google Play ConsoleでAPIアクセス権限を設定する

前提条件:Google Play Consoleへのアクセス権

注意:サービスアカウントの認証情報と権限を設定してから、実際に使用できるようになるまで時間がかかることがあります。場合によっては最大24時間かかるため、後続の手順でエラーが発生する可能性があります。

Google Play ConsoleでAPIアクセス権限を設定するには、以下の手順を実施してください。

  1. Google Play Consoleで[Users and permissions]に移動し、作成したサービスアカウントを見つけて、[Invite new users]をクリックします。

  2. 手順1.2.1.3でサービスアカウントを設定した際にコピーしたメールアドレスを入力します。

  3. Permissions]セクションで[Account permissions]タブに移動し、以下の両方を選択します。

    • [View financial data, orders, and cancellation survey responses]
    • [Manage orders and subscriptions]
  4. App permissions]タブで[Add app]をクリックし、対象のアプリを選択します。必要に応じて、複数のアプリを追加します。

  5. Invite user]をクリックします。

  6. 確認用のポップアップで、[Send invite]をクリックします。

1.4 サービスアカウントのプライベートキーをAppsFlyerにアップロードする

ステップ1.2でダウンロードしたGoogleのJSONキーをアップロードし、検証します。

前提条件:AppsFlyerの管理者権限

サービスアカウントの秘密鍵をAppsFlyerにアップロードするには、以下の手順を実施してください:

  1. レシート検証を有効にします
  2. Service Account Key and Permissions]のステップで、[Upload Google JSON key]フィールドのUpload]をクリックします。
  3. ステップ1.2でダウンロードしたJSONファイルをアップロードします。
  4. Validate key]をクリックします。 注意:

    • サービスアカウントの認証情報と権限を設定してから、実際に使用できるようになるまで最大24時間かかる場合があります。そのため、キーの検証または検証テストを実行する際に、エラーが発生することがあります。
    • 24時間の待機時間を回避するには、Google Play Consoleで任意のアプリに移動し、[Monetize]>[Products]>[Subscriptions/In-app products]を開いて、何らかの変更を行います。たとえば、商品の説明を編集して保存します。通常、この操作によってアカウントの認証情報と権限が即座に更新されます。その後、変更内容を元に戻すことができます。
  5. Next]をクリックします。SDK実装のステップが表示されます。

ステップ2:SDKを実装する

このステップでは、開発者がSDKの validateAndLog APIを組み込めるよう準備し、テスト用のサンドボックス環境を設定します。最新の validateAndLog APIに対応するSDKの最小バージョンは、Androidではv6.17.5、iOSではv6.17.8です。

validateAndLog SDK APIを実装するには、以下の手順を実施してください:

  1. SDK implementation]のステップで、管理画面に表示される作成済みのメッセージをコピーします。
  2. そのメッセージを開発者に送信します。メッセージには、以下の情報が含まれています:

    • アプリ名とApp ID
    • SDK実装ガイドへのリンク
    • サンドボックス環境を設定する手順(sandbox = true
    • テスト手順(TestFlightを使用)

    このメッセージには、開発者が実装を完了し、テストを開始するために必要な情報がすべて含まれています。

  3. Next]をクリックします。[Verify SDK implementation]のステップが表示されます。

ステップ3:SDKの実装を検証する

サンドボックス環境でアプリ内購入およびサブスクリプション収益の連携をテストし、SDKコネクターが正しく組み込まれていること、およびサーバー通知が適切に設定され、AppsFlyerで受信されていることを確認します。

SDKの実装をテストする

過去7日間に、AppsFlyerがアプリから有効な validateAndLog ペイロードを受信しているか確認するには、以下の手順を実施してください。

  1. Verify SDK implementation]のステップで、[Test SDK implementation]をクリックします。
  2. AppsFlyerが最後にペイロードを受信した日時を含む、テスト結果を確認します。注意: この確認では、リクエストがAppsFlyerに到達していることのみを確認します。データが完全かつ正確であることまでは検証されません。
  3. 実装を完全に検証するには、以下のテスト手順に進んでください。

サンドボックス環境に関する留意事項

サンドボックス環境では、以下の点に注意してください。

  • validateAndLog SDK APIによってイベントが生成され、AppsFlyerに記録されるのは、初回購入イベントのみです。アプリ内購入イベントの名称は af_purchase_sandbox_sdk です。サブスクリプションイベントの名称は af_ars_sandbox_sdk です。
  • サンドボックスイベントの収益額は0になります。
  • Androidでは、SDKでサンドボックス環境を設定していない場合でも、ライセンステスターによるテストはサンドボックスイベントとして記録されます。

アプリ内購入およびサブスクリプション収益をテストする

アプリ内購入およびサブスクリプション収益をテストするには、以下の手順を実施してください:

  1. 開発者に、validateAndLog SDK APIのサンドボックス環境を設定するための手順に従うよう依頼します。
  2. Google Playではライセンステスターを使用し、iOSではTestFlightを使用して、購入またはサブスクリプションのテストを実施します。 
  3. 以下のいずれかの方法で、テストイベントが表示されていることを確認します。

  4. 以下のテストイベントを確認します。

    • 購入イベント:af_purchase_sandbox_sdk
    • サブスクリプションイベント:af_ars_sandbox_sdk
  5. テストイベントに、以下の情報が含まれていることを確認します。

    • 収益額が0であること(AppsFlyerの実際のレポートに影響を与えないようにするためです)
    • af_sandbox_revenue パラメーターに、購入した商品の収益額が含まれていること(これにより、正しい収益額が報告されていることを確認できます)
    • af_validated パラメーターが true であることaf_validatedfalse の場合は、上記のステップ2に戻り、ストアから提供されたキーを検証してください。
    • af_validation_type パラメーターが receipt_validation であること

ステップ4:設定を確認し、更新する

上記の設定を完了して各ステップの内容を保存すると、有効な設定の画面に移動します。この画面では、以下の設定を確認または更新できます。

  1. プロダクトタイプ]が[レシート検証]に設定されていることを確認します。
  2. Verify purchases with the App Store]がオンになっていることを確認します
  3. 以下の設定を確認し、必要に応じて更新します。

    • App Storeキーの設定
    • SDK連携の設定

ステップ5:validateAndLog SDK APIを組み込んだアプリバージョンをリリースする

これまでのステップに記載されたすべての設定が完了し、AppsFlyerのvalidateAndLog SDK APIがアプリに組み込まれたら、開発者にvalidateAndLog SDK APIを組み込んだアプリバージョンをリリースするよう依頼します。

開発者が新しいアプリバージョンをリリースする前に、以下を確認してください:

  • アプリ内購入またはサブスクリプションとして計測するアプリ内イベントが、AppsFlyerで設定した検証ルールによってブロックされていないこと
  • 開発者がすべてのサンドボックスフラグを false に設定していること

validateAndLog SDK APIを組み込んだアプリがリリースされると、アプリ内購入およびサブスクリプションのイベントが生成され、AppsFlyerのすべてのダッシュボードに表示されるようになります。また、集約データレポートおよびローデータレポートでも確認できるようになります。

イベントが生成されるのは、validateAndLog SDK APIを組み込んだバージョンにアプリをアップデートしたユーザーのみです。そのため、更新版のアプリがユーザー全体に十分に普及するまでは、アプリ側の収益データとストア側の収益データの間に差異が生じることが想定されます。