SKAN aggregated performance report API

At a glance: SKAN performance enriched with additional data points. Similar to the data in the SKAdNetwork dashboard. Aggregate using either the install date or postback arrival date.

SKAN aggregated performance report API

API basics

Overview The API returns attribution metrics reported by Apple SKAdNetwork (real data) and other data points using the install or postback arrival date. The report is similar in structure to the data presented in the SKAN dashboard
Data freshness

Data availability is according to the SKAN data freshness rate.


Path parameters (mandatory)

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

Query parameters

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

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
  • When setting the date range the most recent date should be the current date UTC time zone minus 3 days. Meaning on March 31, use March 28. 
  • Earliest date supported: November 1, 2020
  • Maximum query range: 90 days
Rate limitation
  • Queries return up to 200K rows
  • 60 calls per minute
SRN-related remarks
  • Facebook: data is available. 
  • Google Ads: Installs can be recorded up to 8 days post-install due to the Google click-time methodology. 
API facts
Query parameters
Parameter name Format Mandatory


The date type used in the date range bounded by start_date and end_date


  • [Default] install: The install date derived by AppsFlyer using the postback arrival time and after considering the measurement period.
  • arrival: The postback arrival time. Note: Organic install metrics have the value N/A. 

Google Ads data: The install and arrival dates are the same due to the Google Ads reporting methodology. 




The install date range is bounded by start_date and end_date. Note! Install date differs from postback arrival date. 

  • Earliest install date having format YYYY-MM-DD 
  • Earliest date permitted: 2020-11-01
    Example: 2020-11-05
  • Most recent install date having format YYYY-MM-DD
  • Maximum number of days per report call: 90 days 
  • Example: 2020-11-12

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


Request example (cURL)

curl --request \
GET '<app_id>?start_date=2020-11-10&end_date=2020-11-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:


Available fields

  • Columns and metrics available are listed in the table that follows. 
  • Some metrics (revenue, engagement, conversion) depend on the SKAN performance measurement settings.
  • The report includes only the in-app events that users performed during the reporting period. As such, the number and sequence of in-app event columns can change from report to report. Don't rely on column sequence in designing your data import process.
  • Example CSV file
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

{your in-app event name} (Unique users) 

{your in-app event name} (Event counter)  Metric


Traits and limitations

Trait Remarks 
Ad network access  If you are an analytics partner, ask the advertiser to grant you permission.
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 SKAN postbacks
Non-organic data Calculated using SKAN postbacks received by AppsFlyer
Historical data Earliest conversion data (install or retarget) supported: November 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


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. The earliest recommended date is the current date UTC time, less 3 days. For example: If the current date UTC timezone is March 31, the earliest date you should use is March 28. 
400 Bad request

Missing or invalid query parameters

401 Unauthorized

Authorization token is missing or invalid

Make sure you use the token correctly

403 No permission You don't have permission to access this report. If you are an analytics partner ask the advertiser to give you permission. 
404 Not found
429 Too many requests

Exceeded rate limitation


Was this article helpful?