At a glance: Integrated partners (ad networks and agencies) can view fraud related to their traffic identified and blocked by the ProtectLITE and Protect360 engines, as well as the customer’s manually-defined validation rules.
Overview
AppsFlyer identifies and blocks fraud via:
- ProtectLITE: Basic fraud protection for all customers.
- Protect360: Advanced fraud protection for advertisers with a premium subscription plan.
Advertisers must give integrated partners permission to view the ProtectLITE and Protect360 dashboard and reports. With permission, integrated partners can:
- View data related to the traffic they generated.
- Download related raw data reports.
Dashboard view
Integrated partners can view the dashboard and charts; see the example below.
Learn more about what data is available in the ProtectLITE and Protect360 dashboards.
Limitations:
- Ad networks cannot access the Anomalies dashboard. Agencies have access, but will only see data if there is traffic from sources that are trusted by AppsFlyer to have low fraud rates so that a baseline can be created to compare other media sources.
- Agencies cannot access the Protect360 In-app events (CPA) dashboard.
Raw-data reports
Prerequisites: Permission from the advertiser to access ProtectLITE and Protect360.
Protect360 raw-data reports show identified and blocked fraud via ProtectLITE, Protect360, and Validation Rules. Learn more about raw data reports. To get reports, in AppsFlyer, go to Reports > Export data.
Protect360 ad network 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.
- If the advertiser does not have a Protect360 subscription, only the Installs report is available.
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 |
---|---|---|
Post-attribution in-app events fraud |
Daily 10:00 UTC |
The report can be optionally filtered by in-app event type as described in the parameters table that follows. Report topic: |
Post-attribution installs |
Daily 10:00 UTC |
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: |
Clicks | Real-time |
Clicks performed by blocked users Report topic: |
Procedure for ad networks to get Protect360 reports by download
To get a report using the API:
- Identify the required report from the preceding list.
- Use the relevant curl example (in the following section) to prepare your script.
- Ensure that you replace the following placeholders:
- App ID
- From date
- To date
- Bearer token (AppsFlyer V2.0 authentication token)
- 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
Path |
|
Method | GET |
Path parameters (mandatory) |
|
Accepted content types | application/json |
Authorization |
|
Rate limitation | Rate limitations |
Date range limitation |
|
Row limitations | 200K rows |
Report characteristics |
|
API parameters
Parameter | Description | Format | Mandatory |
---|---|---|---|
app_id | App ID as it displays in AppsFlyer | String | Yes |
from |
Start of the date range:
|
YYYY-MM-DD | Yes |
to |
End of the date range:
|
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: |
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 |
---|---|---|---|
OK | 200 | Empty CSV file |
|
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 |
|
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 |
|
|