重要
本記事では、非推奨となったレシート検証機能について説明します。詳細は、お知らせ:旧レシート検証機能の非推奨化を参照してください。
概要:レシート検証を実装して、iOSとAndroidのアプリストアにおけるアプリ内購入の不正対策を行い、報告された購入が実際に行われたことを確認します。注意:これは旧機能です。改良された新しい完全自動のアプリ内購入の検証機能については、こちらを参照してください。
レシート検証の流れ
レシート検証の流れは以下のとおりです。
- ユーザーがアプリ内購入を行います。
- アプリストアが、購入の成功をアプリに通知します。
-
アプリ開発者が、SDKのレシート検証関数を呼び出します。
validateAndLogInAppPurchase
- SDKがAppsFlyerの検証サービスを呼び出します。
- AppsFlyerが購入を検証し、不正でないことを確認します。
- 検証に成功すると、AppsFlyerは内部で通常のaf_purchaseイベントを作成します。検証に失敗すると、作成されたイベントは不正と判定されます(Protect360で確認可能)。
- AppsFlyerの検証サービスがSDKにレスポンスを返します。
-
SDKが、レシート検証の結果(成功または失敗)をアプリに返します。
レシート検証に失敗した場合、イベントはブロックされたアプリ内イベントのローデータレポートに表示されます(Protect360契約者が利用可能)。
レシート検証の実装については、開発者向けのSDKドキュメントを参照してください。
注意:
- iOSのサンドボックスアプリ(App Storeで公開されていないアプリ)でレシート検証を行うには、追加のコードが必要です。
- サンドボックス環境での購入は通常のaf_purchaseイベントとして記録され、その収益はAppsFlyerのダッシュボードとレポートに反映されます。
- AppsFlyerのレシート検証サービスは、すべてのアカウントプランで無料で利用できます。
- Androidでは、購入時にエンドユーザーがインターネットに接続していない場合、レシート検証の結果が
nullとなり、検証失敗と判定されることがあります。
重要
validateAndLogInAppPurchaseを呼び出すと、af_purchaseアプリ内イベントも生成されます。そのため、検証時にaf_purchaseイベントを別途生成しないでください。別途生成すると、収益イベントが重複します。
注意
- 本記事で説明する旧レシート検証機能は、StoreKit v2に対応していません。現行バージョンについては、iOS App Storeとの連携設定を参照してください。
- アプリ内購入のレシート検証は、サードパーティAndroidアプリストアには対応していません。