どのようにお手伝いできますか?

[旧版]アプリ内購入のレシート検証

  • 更新

 重要

本記事では、非推奨となったレシート検証機能について説明します。詳細は、お知らせ:旧レシート検証機能の非推奨化を参照してください。

概要:レシート検証を実装して、iOSとAndroidのアプリストアにおけるアプリ内購入の不正対策を行い、報告された購入が実際に行われたことを確認します。注意:これは旧機能です。改良された新しい完全自動のアプリ内購入の検証機能については、こちらを参照してください。

レシート検証の流れ

レシート検証の流れは以下のとおりです。

  1. ユーザーがアプリ内購入を行います。
  2. アプリストアが、購入の成功をアプリに通知します。
  3. アプリ開発者が、SDKのレシート検証関数を呼び出します。

    validateAndLogInAppPurchase
  4. SDKがAppsFlyerの検証サービスを呼び出します。
  5. AppsFlyerが購入を検証し、不正でないことを確認します。
  6. 検証に成功すると、AppsFlyerは内部で通常のaf_purchaseイベントを作成します。検証に失敗すると、作成されたイベントは不正と判定されます(Protect360で確認可能)。
  7. AppsFlyerの検証サービスがSDKにレスポンスを返します。
  8. SDKが、レシート検証の結果(成功または失敗)をアプリに返します。
    レシート検証に失敗した場合、イベントはブロックされたアプリ内イベントのローデータレポートに表示されます(Protect360契約者が利用可能)。 

レシート検証の実装については、開発者向けのSDKドキュメントを参照してください。

注意:

  • iOSのサンドボックスアプリ(App Storeで公開されていないアプリ)でレシート検証を行うには、追加のコードが必要です。
  • サンドボックス環境での購入は通常のaf_purchaseイベントとして記録され、その収益はAppsFlyerのダッシュボードとレポートに反映されます。
  • AppsFlyerのレシート検証サービスは、すべてのアカウントプランで無料で利用できます。
  • Androidでは、購入時にエンドユーザーがインターネットに接続していない場合、レシート検証の結果がnullとなり、検証失敗と判定されることがあります。

 重要

validateAndLogInAppPurchaseを呼び出すと、af_purchaseアプリ内イベントも生成されます。そのため、検証時にaf_purchaseイベントを別途生成しないでください。別途生成すると、収益イベントが重複します。

注意

  • 本記事で説明する旧レシート検証機能は、StoreKit v2に対応していません。現行バージョンについては、iOS App Storeとの連携設定を参照してください。
  • アプリ内購入のレシート検証は、サードパーティAndroidアプリストアには対応していません。