SKAdNetwork aggregate reporting API

At a glance: The SKAdNetwork aggregate reporting API provides iOS campaign attribution metrics reported by Apple SKAdNetwork infrastructure and additional data points. The data available is similar to that available in the SKAdNetwork dashboard

SKAdNetwork aggregate reporting API

API basics

Overview The API returns attribution metrics reported by Apple SKAdNetwork and other data points
Data freshness
  • The report updates Daily.
  • Data availability is according to the SKAdNetwork data freshness rate.
Path

https://hq1.appsflyer.com/api/skadnetworks/v1/data/app/<app_id>

Path parameters (mandatory)

<app_id>: Is the app identifier as found in the AppsFlyer dashboard. Insert it exactly as it appears in the dashboard. Example: id123456789

Query parameters

Listed in the table that follows.
HTTP method GET
Response content type text/plain
Authorization

Authorization HTTP header containing API V2.0 token (Bearer token) is required.

AppsFlyerAdmin_us-en.pngThe admin gets the V2 token in the dashboard, go to your email address > API tokens. 

Date limitations
  • Earliest date supported October 1, 2020
  • Maximum query range: 90 days
Rate limitation
  • Queries return up to 200K rows
  • 60 calls per minute
API facts
Query parameters
Parameter name Format Mandatory

start_date

  • YYYY-MM-DD 
  • Earliest date permitted: 2020-10-01
    Example: 2020-10-05
Yes
end_date
  • YYYY-MM-DD
  • Maximum number of days per report call: 90 days 
  • Example: 2020-10-12
Yes
view_type

Filter the installs by type as follows: 

  • acquisition: Installs 
  • retargeting: Redownloads
  • unified: Acquisition and redownloads combined.
  • [Default] unified
  • Ad spend metrics return when view_type=unified

No

Request example (cURL)

curl --request \
GET 'https://hq1.appsflyer.com/api/skadnetworks/v1/data/app/<app_id>?start_date=2020-09-10&end_date=2020-09-20' \
--header 'Authorization: Bearer <V2_AUTH_TOKEN_HERE (700+ characters string)>'

Report structure and example

The API returns a CSV file with the following naming scheme:

<app_id>_skadnetworks_report_<view_type>
_<start-date>_<end-date>_<unique-report_hash>_UTC_.csv

Available fields

SKAdNetwork aggregate report structure
Column name Dimension or metric
Media Source (pid) Group by
Campaign (c)

Group by

Campaign ID Group by
Site ID Group by
Country Group by
Impressions Metric
Clicks Metric
CTR Metric
Installs Metric
Conversion Rate Metric
Converted Users Metric
Converted Users/Installs Metric
Total Revenue Revenue metric
Total Cost Metric
ROI Revenue metric
ARPU Revenue metric
Average eCPI Metric
{af_skad_revenue} unique users Revenue metric
{af_skad_revenue} event counter Revenue metric
{conversion in-app event [n]} Unique Users (n=1..6) Conversion metric
{conversion in-app event [n]} Event Counter (n=1..6) Conversion metric
{engagement in-app event} Unique Users Engagement metric

{engagment in-app event}

Event counter

Engagement metric

 

Traits and limitations

Trait
Trait Remarks 
Ad network access  Not available
Agency access Not available
App-specific time zone UTC only
App-specific currency  Always USD
Organic data Calculated as the difference between all data reported by SDK directly to AppsFlyer less non-organic data reported by SKAdNetwork postbacks
Non-organic data Calculated using SKAdNetwork postbacks received by AppsFlyer
Historical data Earliest conversion data (install or retarget) supported: October 1, 2020
Team member access The authorization token is available to the account admin in the dashboard.

HTTP response codes and troubleshooting

Response codes and troubleshooting guide
HTTP Response

Remarks

200 OK

Valid data returned (CSV)

200 OK

Empty report - no data found for the specified date range (CSV, only column names are returned).

  • In the SKAdNetwork dashboard, verify that data is available for the specified date range.
  • Verify that start_date is a date earlier than yesterday.
400 Bad request

Missing or invalid query parameters

401 Unauthorized

Authorization token is missing or invalid

Make sure you use the token correctly

404 Not found
429 Too many requests

Exceeded rate limitation

Was this article helpful?