SKAdNetwork raw-data reports via Data Locker

At a glance: SKAdNetwork raw data reports contain row-level data generated after translating and decoding postbacks received by AppsFlyer from iOS, as well as raw SKAdNetwork postbacks. Data is available via Data Locker.

Related reading: SKAdNetwork reports available

SKAdnetwork raw-data reports

Availability: 

  • Provided via: Data Locker.
  • Data freshness: Daily. Data is contained in the h=23 folder of the date the postback is received by AppsFlyer. For example, If the postback was received on Monday, it will be processed after the end of the day. After processing is complete, by 12:00 UTC Tuesday, the data is written to the Monday h=23 folder.  
  • Install date: The install date is based on the postback arrival time. The default calculation is that the install time is 48 hours before postback arrival. As such expect that the reports will contain installs of multiple days. If you use custom conversion value the formula to derive the install time is postback arrival time-24 hours-hours_from_install. 

Report types available are: 

  • Device postback: 1 device postback per install or redownload as received from the iOS device
  • SKAd raw data: AppsFlyer decodes and translates the device postback into raw data records. Each postback generates an install or redownload record and in-app event records. The number of in-app event records depends on the conversion value as follows:
    • conversion value = 0: No in-app records are generated
    • Conversion value > 1-63 in-app event records depending on the measurement type selected. 

Some fields may be empty. This may occur for any of the following reasons:

  • Non-mandatory enrichment fields like campaign_name, ad_network_campaign_id, ip that the ad network did not provide.
  • Apple withheld the data due to Apple threshold polices. Fields like source_app_id, skad_campaign_id, skad_conversion_value. 

Report types

Report type  Data Locker topic name Description
Device postback skad_postbacks Copy of device postbacks sent by the iOS to AppsFlyer. (The postbacks were sent via the ad network). Download postbacks example (CSV).
SKAd raw data skad_installs

First-time app installs defined as follows:

SKAdNetwork reported redownload=false. Meaning, this is the first time the user, represented by the Apple ID, downloaded the app. Download installs example (CSV).

SKAd raw data skad_redownloads

Lists app installs that are not first-time installs.

SKAdNetwork reported redownload=true. Meaning, this is not the first time the user, represented by the Apple ID, downloaded the app. This report has the same structure as installs.

SKAd raw data skad_inapps

In-app events. The number of in-app event records depends on the measurement mode and type configured in the SKAdNetwork settings page. Download in-app events example (CSV).

Measurement type Number of records Description
Revenue 0-1 If revenue > 0, a record containing the skad_revenue and event_name fields.
Conversion 

0-6

A record for each unique conversion event performed. The event_name field is populated accordingly. If no events are performed there is no record.
Engagement

0-63

The number of records represents the number of times the user performed the engagement event. If the user does not engage, there are no engagement records.

Fields

Field formats
Format name Description
String [n]

The maximum length of the string. We don't usually enforce field length limitations on receipt of the data, but data may be truncated thereafter.

Time string

String having the format, yyyy-mm-dd hh:mm:ss. For example, 2019-09-17 00:09:25 

Enum [n] Enum fields can only contain specific values. For example, Cost currency has 3 characters and can contain only currency codes as specified
Timestamp

10-digit UNIX timestamp. Example:

August 4, 2020, 07:25 UTC translates to "timestamp": "1596525944"

Boolean

The value of the field can be either TRUE or FALSE

Device postback report fields
Field name Source or iOS SKAdNetwork starting version Description Format
ad_network_campaign_id Ad network Campaign ID reported by the ad network to AppsFlyer String
ad_network_campaign
_name
Ad network

Campaign name reported by the ad network to AppsFlyer.

 

String
ad_network_timestamp Ad network Time the postback was received by the ad network Timestamp
app_id AppsFlyer App ID (advertiser app) with prefix ID. String
city AppsFlyer*   String
country_code AppsFlyer*   String
dma AppsFlyer*   String
postal_code AppsFlyer*   String
region AppsFlyer*   String
skad_ad_network_id 1.0 
  • ID of the ad network to whom the postback was sent.
  • Some SRNs don't share their ID. In this case the field is left blank. For example, Twitter. 
String
skad_attribution_signature 1.0   String
skad_campaign_id 1.0 Campaign ID used to publish the ad. Range 0-100 String
skad_conversion_value 2.0 

Conversion value reported by iOS. Range 0-63.

Field population depends on privacy thresholds**

Integer
skad_redownload 2.0 If true, app was redownloaded String
skad_source_app_id 2.0

Site ID. The app publishing the ad. This field is identical to source_app_id.

Field population depends on privacy thresholds**

String
skad_transaction_id 1.0   String
skad_version 2.0   String
timestamp Ad network Time the postback was sent by the iOS device Timestring
ad_network_name Ad network

Ad network name reported by the ad network to AppsFlyer. 

  • If this field is blank, the ad network didn't (couldn't) populate it.
  • You can resolve the ad network name using skad_ad_network_id. Use this table to do so. 
String
ip  

IP address in the HTTP message of the iOS device sending the postback.

This field is populated if the ad network provides us with the address.

Note! The SDK isn't involved in getting the address.

String

skad_app_id

1.0   String

source_app_id

AppsFlyer Site ID. The app publishing the ad. This field is identical to skad_source_app_id String

ad_network_adset_id

Ad network   String

ad_network_adset_name

Ad network   String

ad_network_ad_name

Ad network   String

ad_network_ad_id

Ad network   String

* Derived using the source IP address of the postback sent by iOS 

** Apple determines if the field is populated using a privacy threshold mechanism

 

SKAd raw data fields
Field name Source Description Format
ad_network_campaign_id Ad network Campaign ID reported by the ad network to AppsFlyer String
ad_network_campaign
_name
Ad network Campaign name reported by the ad network to AppsFlyer String
ad_network_timestamp Ad network Time the postback was received by the ad network Timestamp
app_id iOS App ID (advertiser app) String
city AppsFlyer*   String
country_code AppsFlyer*   String
dma AppsFlyer*   String
event_name iOS In-app event name String
event_uuid AppsFlyer A unique random identifier enabling partners to identify duplicate postbacks String
install_date iOS Estimated by AppsFlyer based on the update Conversion window. Time string
install_type iOS New installs String
ip iOS

IP address in the HTTP message of the iOS device sending the postback.

This field is populated if the ad network provides us with the address.

Note! The SDK isn't involved in getting the address. 

string
media_source iOS Ad network attributed using AppsFlyer network names String
postal_code AppsFlyer*   String
region AppsFlyer*   String
skad_ad_network_id iOS ID of the ad network to whom the postback was sent String
skad_ambiguous_event AppsFlyer If true, the iOS postback was received during the first 72-hours after an advertiser changed the SKAdNetwork settings in the dashboard. Due to the various timers employed by SKAdNetwork AppsFlyer can't map the event accurately. Boolean
skad_attribution_signature iOS   String
skad_campaign_id iOS Campaign ID used to publish the ad. Range 0-100 String
skad_conversion_value iOS

Conversion value reported by iOS. Range 0-63.

Field population depends on privacy thresholds**

Integer
skad_mode AppsFlyer The conversion measurement mode used to decode the iOS postback. Being: single, split, or custom. String
skad_redownload iOS If true, app was redownloaded String
skad_revenue iOS Event revenue amount in USD String
skad_source_app_id iOS

Site ID. The app publishing the ad.

Field population depends on privacy thresholds**

String
skad_transaction_id iOS - String
skad_version iOS - String
timestamp iOS Time the postback was sent by the iOS device Timestamp
event_value S2S

Default value: null

Contains a string set by apps implementing custom decode or event sending by S2S

Advertisers consume this in their systems. AppsFlyer doesn't make use of it. 

String (JSON)

ad_network_adset_id

Ad network   String

ad_network_adset_name

Ad network   String

ad_network_ad_name

Ad network   String

ad_network_ad_id

Ad network   String

* Derived using the source IP address of the postback sent by iOS 

** Apple determines if the field is populated using a privacy threshold mechanism

Traits and limitations

SKAdNetwork Solution
Trait Remarks 
Ad network access Ad networks are provided with postbacks
Agency access Not available
Agency transparency N/A
Timezone UTC
Currency  USD
Organic data Based on SDK event data. For example, organic install metrics are calculated as follows: Data of all installs reported by the SDK less non-organic installs reported by SKAdNetworks.
Non-organic data Based on SKAdNetwork postbacks
Data freshness

Daily. SKAdNetwork timing means that iOS reports installs 48–72 hours after the first app open.

Historical data

Earliest date, availability of iOS 14 (September 16, 2020)

Team member access Available. According to account permissions
Was this article helpful?