概要:連携済みパートナー(アドネットワークや代理店)は、自社が送客したトラフィックのうち、ProtectLITE、Protect360、および顧客が手動で設定した検証ルールによって検出・ブロックされた不正を確認できます。
概要
AppsFlyerは、以下の機能で不正を検出・ブロックします。
- ProtectLITE:すべての顧客に提供される基本的な不正対策機能です。
- Protect360:プレミアムプランを契約している広告主向けの、高度な不正対策機能です。
広告主は、以下の権限を付与する必要があります。
- アドネットワークに付与する権限:[Protect360ダッシュボードとローデータへのアクセス](ProtectLITEのレポートも含む)、および[アプリ内イベントの集計データへのアクセス](アプリ内イベントの不正を確認する場合)。
- 代理店に付与する権限:[Protect360ダッシュボードとローデータへのアクセス]。
必要な権限が付与された連携済みパートナーは、以下の操作を行えます。
- 自社が送客したトラフィックに関するデータを確認する。
- 関連するローデータレポートをダウンロードする。
アドネットワークは、インプレッションの受け付け制限(キャッピング)やクリック署名の検証失敗に関するローデータレポートも利用できます。これらのレポートには、広告主からの権限付与は不要です。
注意
広告主が代理店を介してアドネットワークを利用している場合、アドネットワークと代理店の両方がデータにアクセスするには、広告主がAppsFlyerで両者との連携を設定し、それぞれにデータアクセス権限を付与する必要があります。
代理店との連携設定と権限付与だけでは、アドネットワークはデータにアクセスできません。
ダッシュボードでの確認
事前準備:広告主から、ProtectLITEとProtect360へのアクセス権限を付与してもらう必要があります。
連携済みパートナーは、ダッシュボードやグラフを確認できます。以下の画面例を参照してください。
各ダッシュボードで確認できるデータの詳細は、ProtectLITEとProtect360の記事を参照してください。
制限事項:
- アドネットワークは、異常検知ダッシュボードにアクセスできません。
-
アドネットワークと代理店は、Fraud Protection Studioにはアクセスできず、タグ付けされたデータをローデータとして取得することもできません。ただし、Protect360ダッシュボードの「タグ付けされたアトリビューション」と「タグ付けされたアプリ内イベント」で、集計データを確認できます。また、タグの種類(新しいリリースなど)ごとに不正を確認することもできます。 Fraud Protection Studio(FPS)の詳細は、こちらの記事を参照してください。
ローデータレポート
事前準備:広告主から、ProtectLITEとProtect360へのアクセス権限を付与してもらう必要があります。
Protect360のローデータレポートでは、ProtectLITE、Protect360、検証ルールによって検出・ブロックされた不正を確認できます。
レポートは、以下の方法で取得できます。
- データのエクスポート:AppsFlyerのサイドメニューから、[レポート] > [ローデータのエクスポート]を選択します。
- API:後述のアドネットワーク向けレポートAPIのセクションを参照してください。
Protect360のローデータレポートの詳細を参照してください。
アドネットワーク向けProtect360レポートAPI
- このセクションに記載するローデータレポートは、アドネットワークがAPI経由で取得できます。
- 同じ内容のレポートは、管理画面の[データのエクスポート]ページからも取得できます。
- 広告主がProtect360を契約していない場合、利用できるのはインストールレポートのみです。
事前準備
- 広告主のデータにAPIでアクセスするには、広告主がアドネットワークに、Protect360ダッシュボードとデータへのAPIアクセス権限を付与する必要があります。ダッシュボードへのアクセス権限があるアドネットワークは、APIも利用できます。その場合、広告主による追加の操作は不要です。
- Protect360のアクセス権限が付与されているアプリの一覧は、アプリ一覧取得APIで取得できます。
- 管理者は、AppsFlyerの管理画面でV2.0認証トークンを取得する必要があります。
Protect360 APIで取得できるレポート
| レポート | 更新頻度と時刻 | 説明 |
|---|---|---|
| ポストアトリビューションのアプリ内イベント不正 | 毎日10:00(UTC) |
後述のパラメータ表に従って、任意でアプリ内イベントの種類を指定し、レポートを絞り込めます。 レポートトピック: |
| ポストアトリビューションのインストール | 毎日10:00(UTC) |
レポートトピック:detection |
| インストール | リアルタイム |
ブロックされたインストールと、そのブロック理由。 レポートトピック:blocked_installs_report |
| アプリ内イベント | リアルタイム |
ブロックされたユーザーが実行したアプリ内イベント。 レポートトピック: |
| クリック | リアルタイム |
ブロックされたユーザーによるクリック。 レポートトピック: |
アドネットワークがProtect360レポートをダウンロードする手順
APIを使用してレポートを取得するには、以下の手順を実行します。
- 前述の一覧で、取得するレポートを確認します。
- 次のセクションにある該当レポートのcurl例を使用して、スクリプトを作成します。
- 以下のプレースホルダーは、必ず実際の値に置き換えてください。
- アプリID
- 開始日
- 終了日
- Bearerトークン(AppsFlyerのV2.0認証トークン)
- 一部のリクエストでは、本記事で説明する任意のパラメータも使用できます。
curlの例
インストール(blocked_installs_report)
app_id、from、to、tokenのプレースホルダーを、実際の値に置き換えてください。
curl --location --request GET 'https://hq1.appsflyer.com/api/adnets-data/v1/export/blocked_installs_report/app/{app_id}?from={2020-07-10}&to={2020-07-20}&additional_fields=keyword_id,store_reinstall,deeplink_url,oaid,blocked_reason,blocked_reason_value,blocked_reason_rule,blocked_sub_reason,match_type,device_category,gp_referrer,gp_click_time,gp_install_begin,amazon_aid,keyword_match_type' \
-H 'Authorization: Bearer {V2.0 api token placeholder. Note: The token has more than 700 characters.}' \
ポストアトリビューションのインストール(detection)
アプリID、from、to、tokenのプレースホルダーを、実際の値に置き換えてください。
curl --location --request GET 'https://hq1.appsflyer.com/api/adnets-data/v1/export/detection/app/{app-id}?from={2020-06-10}&to={2020-07-20}&additonal-fields=fraud_reason,fraud_sub_reason,match_type,device_category,gp_referrer,gp_click_time,gp_install_begin,detection_date' \
-H 'Authorization: Bearer {V2.0 api token placeholder. Note: The token has more than 700 characters.}' \
アプリ内イベント(blocked_in_app_events_report)
アプリID、from、to、tokenのプレースホルダーを、実際の値に置き換えてください。
curl --location --request GET 'https://hq1.appsflyer.com/api/adnets-data/v1/export/blocked_in_app_events_report/app/?from=YYYY-MM-DD&to=YYYY-MM-DD&additional_fields=keyword_id,store_reinstall,deeplink_url,oaid,blocked_reason,blocked_reason_value,blocked_reason_rule,blocked_sub_reason,match_type,device_category,gp_referrer,gp_click_time,gp_install_begin,amazon_aid,keyword_match_type' \
-H 'Authorization: Bearer {V2.0 api token placeholder. Note: The token has more than 700 characters.}' \
ポストアトリビューションのアプリ内イベント不正(fraud_post_inapps)
アプリID、from、to、tokenのプレースホルダーを、実際の値に置き換えてください。
curl --location --request GET 'https://hq1.appsflyer.com/api/adnets-data/v1/export/fraud-post-inapps/app/{app-id}?from={2020-06-10}&to={2020-07-20}&additional_fields=match_type,device_category,gp_referrer,gp_click_time,gp_install_begin,fraud_reason,fraud_sub_reason,detection_date' \
-H 'Authorization: Bearer {V2.0 api token placeholder. Note: The token has more than 700 characters.}' \
クリック(blocked-clicks_report)
アプリID、from、to、tokenのプレースホルダーを、実際の値に置き換えてください。
curl --location --request GET 'https://hq1.appsflyer.com/api/adnets-data/v1/export/blocked_clicks_report/app/{app-id}?from={2020-06-10}&to={2020-07-20}&additional_fields=keyword_id,store_reinstall,deeplink_url,oaid,blocked_reason,blocked_reason_value,blocked_reason_rule,blocked_sub_reason,gp_referrer,gp_click_time,gp_install_begin,amazon_aid,keyword_match_type' \
-H 'Authorization: Bearer {V2.0 api token placeholder. Note: The token has more than 700 characters.}' \
アドネットワーク向けProtect360 APIリファレンス
APIの基本仕様
アドネットワーク向けProtect360 APIの基本仕様は、以下のとおりです。
| パス | https://hq1.appsflyer.com/api/adnets-data/v1/export/report_topic/app/app_id |
| メソッド | GET |
| パスパラメータ(必須) |
|
| 受け付けるコンテンツタイプ |
application/json |
| 認証 |
|
| リクエスト数の上限 | リクエスト数の上限 |
| 取得できる日付範囲の制限 |
|
| 行数の上限 | 20万行 |
| レポートの仕様 |
|
APIパラメータ
Protect360 APIのパラメータは、以下のとおりです。
| パラメータ | 説明 | 形式 | 必須 |
|---|---|---|---|
| app_id | AppsFlyerに表示されるアプリID | 文字列 | はい |
| from |
対象期間の開始日:
|
YYYY-MM-DD | はい |
| to |
対象期間の終了日:
|
YYYY-MM-DD | はい |
| event_name |
[ポストアトリビューションのアプリ内イベント不正レポートで任意に指定可能] アプリ内イベントの種類で絞り込みます。レポートを特定のイベントに絞り込めます。 1つまたは複数のイベントを指定できます。 指定例: |
文字列 |
いいえ
|
| detect-from |
[ポストアトリビューションのインストールレポートで任意に指定可能] 不正の検出日で絞り込む場合の開始日。(デフォルトはfromの値です。) |
YYYY-MM-DD | いいえ |
| detect-to |
[ポストアトリビューションのインストールレポートで任意に指定可能] 不正の検出日で絞り込む場合の終了日。(デフォルトはtoの値です。) |
YYYY-MM-DD | いいえ |
Protect360 APIのHTTPレスポンスコード
エラーコードと対処方法:
| ステータス | コード | 症状・メッセージ | 対処方法 |
|---|---|---|---|
| OK | 200 | 空のCSVファイルが返される。 |
URI内でaddtional_fieldsが複数回使用されています。 |
| OK | 200 | 空のCSVファイルが返される。 | fromとtoの日付が、どちらもyyyy-mm-dd形式になっていることを確認してください。 |
| OK | 200 | AppsFlyerのHTMLログインページが返される。 | Bearerトークンを指定するヘッダーに、トークンが含まれていません。 |
| Bad request | 400 | Bad request |
|
| Unauthorized | 401 | Unauthorized | トークンは指定されていますが、無効です。自社アカウントの最新のV2.0トークンを使用していることを確認してください。管理者に依頼して、管理画面から最新のトークンを取得してください。 |
| Not found | 404 |
|
インプレッションの受け付け制限(キャッピング)
アドネットワークのインプレッション不正の割合が極めて高い場合、Protect360は、24時間を1周期として、そのアドネットワークのインプレッションをブロックします。基準値に達した後に発生したインプレッションは、AppsFlyerに記録されず、アトリビューションの対象にもなりません。ただし、ブロックされたインプレッションは、Protect360のダッシュボードとレポートには表示されます。
AppsFlyerの不正対策アルゴリズムは、この不正を検出する際、インプレッション数、コンバージョン率(CVR)、検出された不正の割合、通常のアクティビティの変動、業種別・地域別の基準値、独自のパラメータなど、さまざまな要素を考慮します。アルゴリズムは、変化する傾向を反映するため、1時間ごとに動的に更新されます。
インプレッション洪水の基準値を繰り返し超えた場合、AppsFlyerプラットフォームからパートナー連携が恒久的に削除される可能性があります。
インプレッションの受け付け制限の基準値には、以下の特徴があります。
- すべてのアドネットワークに等しく適用されます。つまり、どのアドネットワークでも、インプレッション不正の割合が極めて高い場合には制限が適用されます。
- アプリとアドネットワークの組み合わせ単位で適用されます。つまり、そのアドネットワークが対象アプリで実施するすべてのキャンペーンを、不正分析の対象とします。また、ブロックは、そのアプリに対する当該アドネットワークのすべてのキャンペーンのレポートとアトリビューションに影響します。Protect360の契約の有無は問いません。
- 基準値は24時間ごとにリセットされ、ブロックはその周期が終わるまで続きます。周期の開始時刻と終了時刻は、AppsFlyerでは公開していません。
- 変更や停止はできません。 Protect360の不正検出は、精密に調整され、高い精度を維持しています。アルゴリズムを手動で変更したり、無効にしたりすることはできません。
- 異常なアクティビティがあるキャンペーンやパブリッシャーからの配信を停止することで、制限の適用を回避できます。
よくある質問
インプレッションの受け付け制限に関するよくある質問:
|
Q:アドネットワークに適用される基準値はいくつですか? A:制限の回避を防ぐため、仕組みの詳細は公開していません。ただし、基準値に達するのは、人の行動では起こり得ないほど大量のインプレッションが発生した場合に限られます。その日のインプレッション数とインストール数を確認すれば、1つまたは複数のパブリッシャーでインプレッション洪水が発生しているかどうかを把握できます。 |
|
Q:アドネットワークのブロックを解除するにはどうすればよいですか? A:異常なアクティビティがあるキャンペーンやパブリッシャーからの配信を停止することで、基準値に達するのを防げます。ただし、いったんブロックされた場合は、24時間周期が終了するまで、インプレッションの記録再開を待つ必要があります。 |
|
Q:Protect360を契約していないAppsFlyerの顧客にも、ブロックは適用されますか? A:はい。Protect360の契約の有無にかかわらず、受け付け制限が適用されます。この仕組みによって、すべての顧客をインプレッションの不正利用から保護します。 |
|
Q:これは不正ではありません。低価格の配信元を利用しているため、トラフィックの品質が低い場合があるだけではないでしょうか? A:不審ではない配信元から通常の規模で配信されている限り、成果が低くても受け付け制限の対象にはなりません。このアルゴリズムが検出するのは、人の行動では起こり得ない成果のパターンです。 |
|
Q:この制限はキャンペーンの拡大を妨げます。インプレッションをブロックしないでもらえますか? A:AppsFlyerの不正対策アルゴリズムは、極端かつ明らかなインプレッション洪水から顧客を保護します。人の行動によらないインプレッションを対象としているため、キャンペーンの拡大には影響しません。ブロックの大半は、負担を生じさせるだけのものです。懸念がある場合は、AppsFlyerにお問い合わせください。 |
|
Q:これは不正ではありません。 AppsFlyer側で大量のインプレッションを処理しきれていないのではないでしょうか? A:データ量の処理に問題はありません。 AppsFlyerは、世界最大規模の広告主にもサービスを提供しており、膨大な正規のインプレッションを含め、毎日数十億件のデータをリアルタイムで処理しています。正確で詳細なデータによって大規模な成長を支えるため、顧客の利益を最優先に、明らかなインプレッション洪水をブロックしています。
|
|
Q:新しいキャンペーンの開始などにより、トラフィックやインプレッション数の大幅な増加が見込まれる場合は、どうすればよいですか?ブロックを避ける方法はありますか? A:アルゴリズムは、さまざまな傾向を反映するため、1時間ごとに動的に更新されます。急激な増加にも対応でき、突然の大幅な増加を含め、通常のアクティビティの変動では制限が適用されないよう設計されています。ただし、パートナー側でも、インプレッションデータやレポートから不審な配信元を特定し、該当するキャンペーンを停止できます。 |
|
Q:問題のあるトラフィックを確認し、キャンペーンの成果を改善するにはどうすればよいですか? A:パートナーは、インプレッションデータやレポートから不審な配信元を特定し、該当するキャンペーンを停止できます。また、広告主からダッシュボードでの不正データの閲覧権限を付与されていれば、Protect360 / ProtectLITEダッシュボードの専用の列で、ブロックされたインプレッションのデータを確認できます。
|
クリック署名
アドネットワークは、HMAC-SHA256による署名をクリックに追加できます。
AppsFlyerは署名を使ってクリックを検証し、クリック情報が不正行為者によって改ざんされていないことを確認します。
- 検証に成功したクリックは記録され、アドネットワークがアトリビューション先となります。
- 検証に失敗したクリックは拒否され、以下のように扱われます。
- 広告主向けではなく、アドネットワーク向けのProtect360レポートに集計されます。
- アドネットワークのコンバージョン率には影響しません。