At a glance: Get Predict reports using either the Predict Pull API and/or Data Locker. Reports are available based on SKAdNetwork (SKAN) attribution or AppsFlyer (AF model) attribution.
Related reading
For additional information about the methods for accessing Predict reports, be sure to read these articles:
- Predict reports (this article)
- Predict Pull API
- Data Locker—for advertisers
Overview
Predict reports include install attributions, cost data, and predicted metrics for groups of newly acquired users (or “cohorts”). Different report types are available based on:
- The attribution method selected for the report:
- SKAdNetwork (SKAN) attribution; or
- AppsFlyer (AF model) attribution
- The level of data reported:
- Aggregated reports: Data is aggregated using the postback arrival date (for SKAN attribution) or install date (for AF model attribution).
- Raw data reports: Data is reported at the user level.
Accessing Predict reports
Predict reports are generated as CSV files and can be accessed via the Predict Pull API and/or AppsFlyer Data Locker.
- With the Predict Pull API, you can generate reports on demand using API calls.
- With Data Locker, your report data is written directly and automatically to cloud storage, enabling direct loading into your internal systems (such as BI or CRM systems).
The methods by which reports can be accessed vary by report type, as follows:
Report | Aggregated | Raw data |
---|---|---|
SKAN installs |
|
Data Locker |
SKAN redownloads |
|
Data Locker |
AF model installs |
|
Data Locker |
Additional details and instructions for accessing reports via these methods are included in the following tabs:
Predict Pull API
Your account admin can obtain the V2.0 token (bearer token) required for API access from the AppsFlyer dashboard.
Learn more about the Predict Pull API and how to retrieve the report.
Data Locker
To enable access to Predict reports via Data Locker:
- If you don't yet receive reports via Data Locker (for any AppsFlyer feature), complete first-time Data Locker setup. (If you do currently receive Data Locker reports, skip to step 2.)
- Add Predict reports to Data Locker:
- In AppsFlyer, go to Integration > Data Locker.
- Select all the reports in the Predict section.
- Click Save configuration.
- Reports will be available the next day by 10:00 UTC.
Predict report structure
The following tabs list the data fields included in Predict reports:
Aggregated reports
Column name | Dimension/metric | Format |
---|---|---|
Install Date | Dimension | String |
App ID | Dimension | String |
Ad ID |
Dimension |
String |
Ad Name |
Dimension |
String |
Adset ID |
Dimension |
String |
Adset Name |
Dimension |
String |
Agency |
Dimension |
String |
Campaign ID |
Dimension |
String |
Campaign (c) |
Dimension |
String |
Channel |
Dimension |
String |
Platform |
Dimension |
String |
Geo |
Dimension |
String |
Media Source (pid) |
Dimension |
String |
Region | Dimension | String |
Site ID | Dimension | String |
Total Users | Metric | Integer |
Users without a conversion value | Metric | Integer |
Users without sufficient data | Metric | Integer |
Predicted Revenue | Metric | Number |
pARPU | Metric | Number |
Predicted Paying Users Rate | Metric | Number |
Predicted Whale Rate | Metric | Number |
eCPI | Metric | Number |
pROAS | Metric | Number |
1 AppsFlyer Attribution Found | Dimension | Boolean |
1 SKAN Redownload | Dimension | Boolean |
1 SKAN Source App ID | Dimension | Boolean |
2 p-retention day {x} | Metric | Number |
2 p-retention day {y} | Metric | Number |
2 p-retention day {z} | Metric | Number |
Notes: 1 Column appears only in reports using the SKAN attribution method |
Raw data reports – SKAN attribution
Field name | 1 Data source | Description | Format | In postback copy? |
---|---|---|---|---|
ad_network_campaign_id |
Ad network | Campaign ID reported by the ad network to AppsFlyer | String | No |
ad_network_campaign_name |
Ad network |
Campaign name reported by the ad network to AppsFlyer |
String | No |
ad_network_timestamp |
Ad network |
Time the ad network received the postback.
|
Timestamp | No |
app_id |
AppsFlyer | App ID (advertiser app); includes the prefix id | String | Yes |
city |
AppsFlyer | Starting August 30, 2021, always null | String | No |
country_code |
Ad network | String | No | |
dma | Starting August 30, 2021, always null | String | No | |
install_date | iOS | Estimated by AppsFlyer based on the updated conversion window | Time string | No |
install_type | iOS |
New install/redownload (corresponds to skad_redownload) |
String | No |
ip |
IP address in the HTTP message of the iOS device sending the postback.
|
String | No | |
media_source | iOS | Ad network attributed using AppsFlyer network names | String | No |
postal_code |
Starting August 30, 2021, always null | String | No | |
region |
AppsFlyer | According to the country_code reported | String | No |
skad_ad_network_id |
SKAN 1.0+ |
|
String |
Yes |
skad_attribution_signature |
SKAN 1.0+ | String | Yes | |
skad_campaign_id | SKAN 1.0+ |
Campaign ID used to publish the ad
|
String | Yes |
skad_conversion_value | SKAN 2.0+ |
Conversion value reported by iOS
2 SKAN privacy threshold determines whether field is populated |
Integer | Yes |
skad_mode | Predict |
Conversion measurement mode used to decode the iOS postback |
String | No |
skad_redownload | SKAN 2.0+ | If TRUE, the app was redownloaded |
Boolean |
Yes |
skad_source_app_id | SKAN 2.0+ |
Site ID (the app publishing the ad)
2 SKAN privacy threshold determines whether this field is populated |
String | Yes |
skad_transaction_id | SKAN 1.0+ | String | Yes | |
skad_version | SKAN 2.0+ | String | Yes | |
timestamp | Ad network |
Time the iOS device sent the postback. In the case of Google ads, this time is derived using the last-click time reported by Google Ads. |
Time string | Yes |
source_app_id |
AppsFlyer |
Site ID (the app publishing the ad)
|
String | No |
ad_network_adset_id |
Ad network | String | No | |
ad_network_adset_name |
Ad network | String | No | |
ad_network_ad_name |
Ad network | String | No | |
ad_network_ad_id |
Ad network | String | No | |
skad_did_win |
SKAN 3.0+ (iOS 14.6+) |
Used to distinguish between campaigns contributing to or attributed with the install:
|
Boolean | Yes |
fidelity_type |
SKAN 2.2+ (iOS 14.5+) |
Differentiates between ad presentation options that affect attribution:
Disregard the field value if SKAN version is prior to 2.2. |
Integer | Yes |
ad_network_source_app_id |
Ad network | Publisher app ID reported by the ad network. Used to help reconcile cost; reported by the ad network. The publisher app gives the basis for this data. | String | No |
ad_network_channel |
Ad network | String | No | |
af_prt |
Ad network | String | No | |
measurement_window |
AppsFlyer |
Duration of the activity window
|
Integer | No |
af_attribution_found |
AppsFlyer | Currently null for Predict | Boolean | No |
p_revenue |
Predict | Mean predicted revenue (Day 30) of the revenue bucket to which the user is assigned | Number | No |
is_p_payer |
Predict |
|
Integer | No |
is_p_whale |
Predict |
|
Integer | No |
p_retention |
Predict | The last of the 3 selected retention measurement dates on which the user will be a retained user | Integer | No |
no_conversion_value |
Predict |
|
Integer | No |
insufficient_data |
Predict |
|
Integer | No |
Notes: |
Raw data reports – AF model attribution
Field name | Description | Format |
---|---|---|
af_ad_id |
Ad ID |
String |
platform |
Device platform (iOS) |
Enum string |
af_adset_id |
ID of the adset (a group containing one or more ads) |
String |
af_adset |
Name of the adset |
String |
media_source |
Ad network attributed (using AppsFlyer ad network names) |
String |
af_ad |
Ad name |
String |
region |
Geographic region, based on the device IP address reported by the SDK |
String |
campaign |
Campaign name |
String |
af_channel |
Media source channel
|
Dynamic enum string |
campaign_id |
Campaign ID |
String |
Country |
Country code using ISO 3166 (alpha-2), based on the device IP address reported by the SDK – for example: US, CN
|
Enum string |
site_id |
Publisher ID |
String |
attribution_type |
The type of attribution:
Currently, Predict supports only Install attributions. |
String |
af_prt |
Agency |
String |
install_time |
Currently, Predict supports only UA, so install_time will always be the first launch after install. |
Date Time |
app_id |
App ID assigned by the app store
|
String |
ip |
IP address in the HTTP message of the iOS device sending the postback, as reported by the SDK |
String |
attributed_touch_type |
Possible values:
Currently, Predict supports only UA, so attributed_touch_type will be one of the possible values for UA. |
Enum |
city |
The most granular location of the user, based on the device IP address reported by the SDK
|
String |
dma |
Designated Market Area or geographic area, based on the device IP address reported by the SDK
|
String |
postal_code |
Postal code, based on the device IP address reported by the SDK |
String |
state |
State, based on the device IP address reported by the SDK |
String |
user_agent |
URL user agent |
String |
is_lat |
Limit ad tracking (LAT):
|
Boolean |
app_name |
App name as set by the advertiser |
String |
source |
Organic or non-organic |
Enum string |
p_retention |
The last day (during the first 30 days post-install) on which the user will use the app |
Integer |
p_purchase_revenue |
Predicted revenue as of Day 30 from user purchases/in-app events | String |
p_ad_revenue |
Predicted revenue as of Day 30 from served ad impressions | String |
bucket_revenue_0 |
|
Integer |
bucket_revenue_1 |
|
Integer |
bucket_revenue_2 |
|
Integer |
bucket_revenue_3 |
|
Integer |
bucket_revenue_4 |
|
Integer |
bucket_revenue_5 |
|
Integer |
bucket_revenue_6 |
|
Integer |
bucket_retention_0 |
|
Integer |
bucket_retention_1 |
|
Integer |
bucket_retention_2 |
|
Integer |
bucket_retention_3 |
|
Integer |
is_p_whale |
|
Integer |
is_p_payer |
|
Integer |
insufficient_data |
|
Integer |
install_date |
Date of the first launch after install based on UTC time zone
|
Date string |
install_date_tz |
Date of first launch after install, adjusted based on app-specific time zone
|
Date string |
Feature specifications
- Ad network access: Ad networks are provided with postbacks
- Agency access: Not available
- Agency transparency: N/A
- Currency: USD
- Timezone: UTC
- Data freshness: Daily
- For reports based on the SKAN attribution method, SKAN timing means that iOS reports on an install 48-72 hours after the first app is opened.
- Historical data: Data is available from the date Predict was enabled in your AppsFlyer account.
- Source (organic/non-organic): Reports based on the SKAN attribution method include only non-organic data, calculated using SKAN postbacks received by AppsFlyer.