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

概要: レシート検証の機能を実装することで 、iOSとAndroidのアプリストアで行われた不正なアプリ内購入から保護し、レポート通りにアプリ内購入が発生したことを確認します。注: これはレガシー機能です。 完全に自動化され、改善された新しい アプリ内購入検証メカニズムの詳細をご覧ください。

 注意

アプリ内購入のレシート検証は、サードパーティの Android アプリストアではサポートされていません。

レシート検証のフロー 

以下のような流れで、レシート検証を行います。

  1. エンドユーザーがアプリ内課金を実施。
  2. アプリストアが、課金が成功したことをアプリへ通知。
  3. アプリ開発者が、SDKのレシート検証の機能を呼び出し。
    validateAndLogInAppPurchase
  4. SDKがAppsFlyerの検証サービスを呼び出し。
  5. AppsFlyerが、課金が不正なものではないことを確認するために検証。
  6. 検証が成功した場合、AppsFlyerが内部的に通常のaf_purchaseのイベントを作成。
    それ以外の場合、作成されたイベントを不正イベントとしてタグ付け。(Protect360経由で確認可能)
  7. AppsFlyerの検証サービスが、レスポンスをSDKに転送。
  8. SDKがレシート検証のレスポンスをアプリへ転送。(成功 or 失敗)
    レシート検証が失敗した場合、そのイベントはブロックされたアプリ内イベントのローデータレポート内に表示されます。(Protect360を契約している場合に利用可能) 

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

注:

  • iOSのsandboxアプリ(App Store には公開されていないアプリ)の場合、レシート検証を実施するにはコードの追加が必要です
  • AppsFlyerのレシート検証サービスは、すべての広告主が無料で利用可能です。
  • Androidの場合、購入時にエンドユーザーがインターネットにアクセスできない場合、レシートの検証で結果が null で返され、検証が失敗したと見なされる場合があります。

 重要!

validateAndLogInAppPurchase の呼び出しにより、af_purchaseのアプリ内イベントが生成されます。そのため、レシート検証時に af_purchaseのイベントを生成しないでください。生成してしまうと、重複して収益イベントが計測されてしまいます。