Protect360 for integrated partners

At a glance: Protect360 detects mobile app fraud and blocks the attribution of fraudulent installs. Integrated partners (ad networks) can view fraud related to their traffic.

Protect360 for integrated partners

Protect360 can be included in an advertiser's AppsFlyer subscription plan. Advertisers must give integrated partners permission to view the Protect360 dashboard. Integrated partners can:

  • View data related to the traffic they generated.
  • Download Protect360-related raw data reports

Grant access

To grant an integrated partner permission to access Protect360:

  1. Go to Integration > Integrated Partners
  2. Select the integrated partner.
  3. In the Permissions tab, enable Allow access to your Protect360 dashboard.

Dashboard view

Integrated partners can view the dashboard and charts; see the example below.  

Limitation: Integrated partners cannot access Anomaly insights. 

/P360partner1.png

Raw-data reports

Protect360 raw-data reports show blocked fraud. Learn more about raw data reports. To get reports, go to the navigation menu > Reports > Export data

Protect360 adnet reporting API

  • The raw-data reports listed in this section are available to ad networks via API.
  • Equivalent reports are available in the dashboard in the Export Data page

Prerequisites

  • To access advertiser data by API, the advertiser grants the ad network permission to access their Protect360 dashboard and data by API. Ad networks having access to the dashboard are permitted to use the API. No action is required by the advertiser. 
  • For a list of apps for which you have Protect360 permission use get app list API. 
  • The admin needs to get an AppsFlyer V2.0 authentication token available in the dashboard.
Report Data freshness Description
Protect360 API reports
Post-attribution in-app events fraud

Daily 10:00 UTC

  • In-app events performed by installs identified as fraudulent.
  • Any other in-app event judged as fraudulent irrespective of the install.

The report can be optionally filtered by in-app event type as described in the parameters table that follows. 

Report topic: fraud-post-inapps

Post-attribution installs

Daily 10:00 UTC

  • Installs identified as fraudulent post-attribution. 
  • The report can be optionally filtered by the detection date as described in the section that follows. 

Report topic: detection

Installs

Real-time

Blocked installs with the block reason

Report topic: blocked_installs_report

In-app event Real-time

In-app events performed by blocked users

Report topic: blocked_in-app_events_report

Clicks Real-time

Clicks performed by blocked users

Report topic: blocked_clicks_report

Procedure for ad networks to get Protect360 reports by download

To get a report using the API:

  1. Identify the required report from the preceding list.
  2. Use the relevant curl example (in the following section) to prepare your script.
  3. Ensure that you replace the following placeholders:
    1. App ID
    2. From date
    3. To date
    4. Bearer token  (AppsFlyer V2.0 authentication token)
  4. Some calls have optional parameters, as described in this article. 

Curl examples

Installs (blocked_installs_report)

Replace the app_id, from, to, and token placeholders.


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.}' \

Post-attribution installs (detection)

Replace the app id, from, to, and token placeholders. 


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.}' \

In-app event (blocked_in_app_events_report)

Replace the app id, from, to, and token placeholders.


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.}' \

Post-attribution in-app events fraud (fraud_post_inapps)

Replace the app id, from, to, and token placeholders.


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.}' \

Clicks (blocked-clicks_report)

Replace the app id, from, to, and token placeholders.


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 adnets API reference guide

API basics

Protect360 adnets API basics
Path

https://hq1.appsflyer.com/api/adnets-data/v1/export/report_topic/app/app_id

Method GET
Path parameters (mandatory)
  • app_id:
    • The app identifier, as found in the AppsFlyer dashboard. Insert it precisely as it displays in the dashboard.
    • Make sure to prefix iOS apps with id.
  • report_topic
Accepted content types application/json 
Authorization
  • Bearer token in the request header.
  • AppsFlyerAdmin_us-en.pngAsk the admin to get the V2.0 token in the tokens page. This token is about 700 characters in length. 
Rate limitation Rate limitations
Date range limitation
  • Earliest date supported: 90 days before the current data
  • 31 days out of the previous 90 days
Row limitations 200K rows
Report characteristics
  • Timezone: UTC
  • Currency: USD

API parameters

Protect360 API parameters
Parameter Description Format Mandatory
app_id  App ID as it displays in AppsFlyer String Yes
from

Start of the date range:

  • For installs, this is the install date.
  • For in-app events, this is the date of the event.
YYYY-MM-DD Yes
to

End of the date range:

  • For installs, this is the install date.
  • For in-app events, this is the date of the event.
YYYY-MM-DD Yes
event_name

[Optional for Post-attribution in-app events fraud]

Filter events by in-app event. Limit the report to specific events. One or more events can be included.

Example usage: &event_name=af_purchase,af_login

String

No

 

detect-from

[Optional for Post-attribution installs]

Start of the fraud detect date range. (Default is from.

YYYY-MM-DD No
detect-to

[Optional for Post-attribution installs]

End of the fraud detection date range. (Default is to.)

YYYY-MM-DD No

Protect360 API HTTP return codes

Status Code Symptom/message Solution
Error codes and solutions
OK 200 Empty CSV file

addtional_fieldsused more than once in the URI

OK

200

Empty CSV file

Ensure that both from and to dates have the format yyyy-mm-dd

OK 

200

AppsFlyer HTML login page returns

There is no token in the Bearer token header

Bad request

400

Bad request

  • Date range limitation.
    • The earliest date allowed is 90 days prior to the current day
    • Period can't exceed 60 days for installs and 90 days for in-app reports
Unauthorized

401

Unauthorized

A token was found, but it is not valid. Check that you have the current V2.0 token for your account. Ask the admin to retrieve the current token from the dashboard.

Not found

404

 

  • The endpoint specified is incorrect
  • Ensure that the app ID is correct
  • You are not authorized to access the app
Was this article helpful?