At glance: Push API V1.0 is deprecated and will be removed from the platform in the future.
Migrate to Push API V2.0
Push API V1.0 real-time raw data
Push API enables advertisers to receive raw data messages via an HTTP request from AppsFlyer to any endpoint. A push API message can be sent upon every successful installation, in-app event or retargeting event, whether organic or not.
Messages are sent in near real-time, meaning that usually they are sent within a few seconds of the performed action, but may take up to two minutes.
The data is sent, by default, via an http POST or GET method and is JSON formatted.
For the complete list of fields and message examples click here.
For field descriptions please read this.
Who should use push API?
- Advertisers who need accurate attribution data sent to their servers in near real-time
Combine your users' data with detailed AppsFlyer's attribution data as it happens, especially for analytics and segmentation purposes. [If you base your app's flow on the attribution data in real time, i.e. within 5 seconds of the first app open, it is better to use AppsFlyer's conversion data API instead] - Advertisers with complex databases
If you need your data to be sent to different databases in your system to collect install/in-app event/organic/non-organic data, Push API can do this with a simple 2-minute configuration saving you precious developing resources. - Advertisers working with external data collection platforms
With Push API you can send any install or event data to external systems by simply supplying their endpoint URL
Notes
- The Push API is an AppsFlyer premium feature, which can be purchased as part of the API Access package. The package is available for free to advanced account tiers.
Please contact your CSM or AppsFlyer's support if you require more details. - Click here for information about selecting the best data APIs for you
- Click here to learn about the benefits of using Push API together with Pull API
Push API configuration
Deprecated version
This document describes a deprecated version of Push API. The sunset date of Push API V1.0 is August 31, 2020. If you have not yet implemented Push API use Push API V2.0.
Existing users - Migrate to Push API V2.0
Note
Only account owners can configure push API. Team members can view the push API configuration, but cannot edit it. Push API configuration is not available for partners and agencies.
Adding push API postbacks
- On the dashboard, from the left-hand menu under Integration select API Access
- Scroll down to the Push API section and click Add Postback
Note
You can configure up to 6 push API endpoints.
- Enter the URL of the endpoint that receives the postbacks
- Choose method POST or GET
Important!
The following restrictions apply:
- The endpoint must be a valid URL
- The endpoint must be a valid domain name - only letters, numbers, and hyphens are allowed in domain names
- If you specify third-party endpoints, note that some media sources don't allow their data to be shared with third-party platforms and services.
- The same endpoint can only be used once per app
- Push API only supports the use of port 80 and 443
- If you choose the GET method, make sure not to add any query parameters to the URL
- Choose the data you want to send. You can choose up to 8 different data sets. Each postback requires at least one data set.
Note
Organic push API is a premium AppsFlyer package. For more information contact your CSM.
- Click Save
After you save the changes, upon every conversion the data is sent to your endpoint's URL in the format provided in this document.
Note
Additional fields may be added to the JSON structure from time to time without prior notice. Please Follow this article to get informed of any API changes.
Currently, API key parameters are not supported as part of the push API.
Testing postbacks
After you set the postback endpoint, test the endpoint by clicking Send Test next to postback field.
If the endpoint is valid and responds to the push API request, a Test sent successfully message appears under the Send Test Otherwise, a Test failed message appears.
Note: If you use Amazon Cloudfront, even if the test succeeds refer to Choosing How CloudFront Serves HTTPS Requests.
Sample request body for testing push API postbacks
This is the sample request body that we send when you click on Send Test.
{
"device_model": "GT-I9300",
"fb_adgroup_id": "6032793211234",
"download_time": "2015-10-28 00:18:00",
"operator": "Vodafone IN",
"click_time": "2015-10-28 12:17:37",
"agency": null,
"ip": "115.98.114.125",
"cost_per_install": null,
"fb_campaign_id": "6032793121234",
"imei": "358422050231234",
"is_retargeting": false,
"app_name": "[App Name Comes Here]",
"re_targeting_conversion_type": null,
"android_id": "449021d533061234",
"city": "London",
"af_sub1": null,
"af_sub2": null,
"event_value": null,
"af_sub3": null,
"fb_adset_name": "FACEBOOK_ADSET_TEST",
"af_sub4": null,
"customer_user_id": "1234-5678",
"mac": null,
"af_sub5": null,
"campaign": "FACEBOOK_CAMPAIGN_TEST",
"event_name": null,
"currency": null,
"install_time": "2015-10-28 12:18:36",
"fb_adgroup_name": "FACEBOOK_ADGROUP_TEST",
"event_time": "2015-10-28 12:18:36",
"platform": "android",
"sdk_version": "1.17",
"appsflyer_device_id": "1446034686662-8619927357095541234",
"wifi": true,
"advertising_id": "95e55150-1111-2222-3333-3e0c8c1d9978",
"media_source": "Facebook Ads",
"country_code": "GB",
"http_referrer": null,
"fb_campaign_name": "FACEBOOK_CAMPAIGN_TEST",
"click_url": null,
"carrier": "Vodafone",
"language": "English",
"app_id": "[App ID Comes Here]",
"app_version": "4.4.1",
"attribution_type": "regular",
"af_siteid": null,
"os_version": "4.3",
"fb_adset_id": "6032793131234",
"device_brand": "samsung",
"event_type": "install",
"af_ad": "a86721874",
"af_ad_id": "123245353",
"af_ad_type": "Banner_210X600",
"af_adset": "3gvow",
"af_adset_id": "3gvow",
"af_c_id": "3e025",
"af_channel": "youtube",
"af_cost_currency": "USD",
"af_cost_model": "cpi",
"af_cost_value": "0.0750",
"af_keywords": "key1 key2 key3"
}
Important!
Your API endpoint must return a 200 status code. If you return other 2xx status codes the push API request fails.
Removing postbacks
- Click on Remove Postback on the right-hand side next to the postback.
- Click Save after removing the postback in order for changes to take effect.
Warning
If the receiving client fails to collect the push message correctly it can't be resent. In case your client has some downtime and loses push messages, you can always fill out the gaps using pull API.
IP allowlisting
We recommend to allowlist AppsFlyer's IPs in your internal networks/platforms in order to successfully receive the Push API calls from AppsFlyer.
Visit the following link for the updated list of AppsFlyer IPs.
TLS support
- 1.1
- 1.2 using these cyphers
Push API structure
The Push API supports in-app events data in addition to installation data, both for organic and non-organic installs. It also sends retargeting campaign data, showing re-attributions and re-engagement.
Supported fields
The table below shows all the available fields via Push API for organic or non-organic events.
Y - the field exists with a real or null value
N - the field doesn't exist or has a null value
Field | Non-Organic Install | FB Install | TW Install | Organic Install | Non-Organic In-App | FB In-App | TW In-App | Organic In-App |
---|---|---|---|---|---|---|---|---|
attributed_touch_type | Y | Y | Y | N | Y | Y | Y | N |
attributed_touch_time | Y | Y | Y | N | Y | Y | Y | N |
event_type | Y | Y | Y | Y | Y | Y | Y | Y |
attribution_type (Organic or Regular) |
Y | Y | Y | Y | Y | Y | Y | Y |
click_time | Y | Y | Y | Y | Y | Y | Y | Y |
download_time | Y | Y | Y | Y | Y | Y | Y | Y |
install_time | Y | Y | Y | Y | Y | Y | Y | Y |
media_source | Y | Y | Y | Y | Y | Y | Y | Y |
agency | Y | Y | Y | Y | Y | Y | Y | Y |
af_channel | Y | Y | Y | N | Y | Y | Y | N |
af_keywords | Y | Y | Y | iOS: Y And: N |
Y | Y | Y | N |
campaign | Y | Y | Y | Y | Y | Y | Y | Y |
af_c_id | Y | Y | Y | N | Y | Y | Y | N |
af_adset | Y | Y | Y | N | Y | Y | Y | N |
af_adset_id | Y | Y | Y | N | Y | Y | Y | N |
af_ad | Y | Y | Y | N | Y | Y | Y | N |
af_ad_id | Y | Y | Y | N | Y | Y | Y | N |
fb_campaign_name | Y | Y | Y | Y | Y | Y | Y | Y |
fb_campaign_id | Y | Y | Y | Y | Y | Y | Y | Y |
fb_adset_name | Y | Y | Y | Y | Y | Y | Y | Y |
fb_adset_id | Y | Y | Y | Y | Y | Y | Y | Y |
fb_adgroup_name | Y | Y | Y | Y | Y | Y | Y | Y |
fb_adgroup_id | Y | Y | Y | Y | Y | Y | Y | Y |
af_ad_type | Y | Y | Y | N | Y | Y | Y | N |
af_siteid | Y | Y | Y | Y | Y | Y | Y | Y |
af_sub1 | Y | Y | Y | Y | Y | Y | Y | Y |
af_sub2 | Y | Y | Y | Y | Y | Y | Y | Y |
af_sub3 | Y | Y | Y | Y | Y | Y | Y | Y |
af_sub4 | Y | Y | Y | Y | Y | Y | Y | Y |
af_sub5 | Y | Y | Y | Y | Y | Y | Y | Y |
http_referrer | Y | Y | Y | Y | Y | Y | Y | Y |
click_url | Y | Y | Y | Y | Y | Y | Y | Y |
af_cost_model | Y | N | N | N | Y | Y | Y | N |
af_cost_value | Y | N | N | N | Y | Y | Y | N |
af_cost_currency | Y | N | N | N | Y | Y | Y | N |
cost_per_install | Y | N | N | Y | Y | Y | Y | Y |
is_retargeting | Y | Y | Y | Y | Y | Y | Y | Y |
re_targeting_conversion _type |
Y | Y | Y | Y | Y | Y | Y | Y |
country_code | Y | Y | Y | Y | Y | Y | Y | Y |
city | Y | Y | Y | Y | Y | Y | Y | Y |
ip | Y | Y | Y | Y | Y | Y | Y | Y |
wifi | Y | Y | Y | Y | Y | Y | Y | Y |
mac | Y | Y | Y | Y | Y | Y | Y | Y |
operator - Android only | Y | Y | Y | Y | Y | Y | Y | Y |
carrier - Android only | Y | Y | Y | Y | Y | Y | Y | Y |
language | Y | Y | Y | Y | Y | Y | Y | Y |
appsflyer_device_id | Y | Y | Y | Y | Y | Y | Y | Y |
advertising_id | Y | Y | Y | Y | Y | Y | Y | Y |
android_id - Android only | Y | Y | Y | Y | Y | Y | Y | Y |
customer_user_id | Y | Y | Y | Y | Y | Y | Y | Y |
imei - Android only | Y | Y | Y | Y | Y | Y | Y | Y |
idfa - iOS only | Y | Y | Y | Y | Y | Y | Y | Y |
platform | Y | Y | Y | Y | Y | Y | Y | Y |
os_version | Y | Y | Y | Y | Y | Y | Y | Y |
app_version | Y | Y | Y | Y | Y | Y | Y | Y |
sdk_version | Y | Y | Y | Y | Y | Y | Y | Y |
app_id | Y | Y | Y | Y | Y | Y | Y | Y |
app_name | Y | Y | Y | Y | Y | Y | Y | Y |
bundle_id | Y | Y | Y | Y | Y | Y | Y | Y |
event_time | Y | Y | Y | Y | Y | Y | Y | Y |
event_name | Y | Y | Y | Y | Y | Y | Y | Y |
event_value | Y | Y | Y | Y | Y | Y | Y | Y |
currency | Y | Y | Y | Y | Y | Y | Y | Y |
download_time_selected |
Y | Y | Y | Y | Y | Y | Y | Y |
click_time_selected _timezone |
Y | Y | Y | Y | Y | Y | Y | Y |
install_time_selected _timezone |
Y | Y | Y | Y | Y | Y | Y | Y |
event_time_selected _timezone |
Y | Y | Y | Y | Y | Y | Y | Y |
selected_currency | Y | Y | Y | Y | Y | Y | Y | Y |
revenue_in_selected _currency |
N | N | N | N | Y | Y | Y | Y |
cost_in_selected_currency - iOS only | Y | Y | Y | Y | N | N | N | N |
Push API specific parameters
Some Push API parameters are called differently than in the V5 reports. There are also several parameters that exist on Push API, but not on other V5 sources. You can find them in the table below.
Push API Field Name | V5 Field Name | Description |
---|---|---|
fb_campaign_name | N/A | Facebook campaign name* |
fb_campaign_id | N/A | Facebook campaign ID number* |
fb_adset_name | N/A | Facebook ad set name* |
fb_adset_id | N/A | Facebook ad set ID number* |
fb_adgroup_name | N/A | Facebook ad group name* |
fb_adgroup_id | N/A | Facebook ad group ID* |
event_type | event_name |
install/in-app-event
|
event_name | event_name |
The name of an in-app event e.g. af_purchase.
|
attribution_type | N/A | Organic or Regular(non-organic) |
click_time | attributed_touch_time | Attributed touch time |
download_time | N/A | Timestamp of the device install time in UTC timezone (right after the download finishes) |
agency | af_prt | Name of the attributed agency |
cost_per_install | af_cost_value | Cost amount in original currency. Value exists only if the cost is part of the attribution link. The value is null if there's no cost data or if the cost data is received by API from the network, e.g., Facebook or Google Ads. |
re_targeting_conversion_type | retargeting_conversion_type | Re-engagement / Re-attribution |
appsflyer_device_id | appsflyer_id | Unique app installation identifier per device |
currency | af_cost_currency | The currency that the cost is reported in. Default USD. |
selected_currency | N/A | App-specific currency, set in the App Settings. |
revenue_in_selected_currency | event_revenue_currency | Revenue amount in the app-specific currency |
cost_in_selected_currency | af_cost_value | Cost amount in the app-specific currency |
download_time_selected_timezone | N/A | Time of download in the time zone selected for the app |
click_time_selected_timezone | attributed_touch_time | Time of the ad click in the time zone selected for the app |
install_time_selected_timezone | install_time | Time of the first app launch in the time zone selected for the app |
event_time_selected_timezone | event_time | Time of the event occurrence in the time zone selected for the app |
device_name | N/A | Name of the device as entered by the user - always appears as Null. |
device_type - iOS only | device_type | The type and model of the device e.g. iPhone 6s |
device_brand and device_model - Android only | device_type | The device brand and the device model in one string e.g. samsung-SM-G920F |
* All the "Facebook" parameters, such as fb_campaign_name
, fb_campaign_id
or fb_adgroup_id
, only get values when the user is attributed to Facebook.
Push API examples
Below you can find examples of Push API messages sent on various Android and iOS related scenarios for your reference.
Organic install
{
"mac": null,
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.sampleapp",
"app_version": "1.0",
"city": "London",
"fb_campaign_id": null,
"device_model": "Nexus 5s",
"selected_currency": "GBP",
"app_name": "com.appsflyer.sampleapp",
"install_time_selected_timezone": "2018-12-10 13:03:29.048+0000",
"wifi": "false",
"install_time": "2018-12-10 13:03:29",
"operator": "Android",
"fb_adgroup_id": null,
"currency": null,
"attributed_touch_type": null,
"re_targeting_conversion_type": null,
"attributed_touch_time": null,
"click_time_selected_timezone": null,
"is_retargeting": "false",
"country_code": "UK",
"event_type": "install",
"appsflyer_device_id": "154**********-*******************",
"http_referrer": null,
"af_sub5": null,
"fb_campaign_name": null,
"click_url": null,
"media_source": "Organic",
"campaign": null,
"af_keywords": null,
"cost_in_selected_currency": null,
"event_value": null,
"ip": "192.168.1.1",
"event_time": "2018-12-10 13:03:29",
"click_time": null,
"af_sub4": null,
"imei": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "organic",
"android_id": null,
"fb_adset_id": null,
"agency": null,
"fb_adset_name": null,
"cost_per_install": null,
"device_brand": "google",
"download_time": "2018-12-10 13:03:15",
"af_siteid": null,
"language": "English",
"app_id": "com.appsflyer.sampleapp",
"carrier": "Android",
"event_name": null,
"advertising_id": "92dd****-****-****-****-********",
"os_version": "8.1.0",
"platform": "android",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-10 13:03:15.000+0000",
"sdk_version": "v4.8.15",
"event_time_selected_timezone": "2018-12-10 13:03:29.048+0000"
}
{
"mac":"",
"attributed_touch_time":"",
"fb_adgroup_name":"",
"os_version":"10.3.1",
"agency":"",
"ip":"192.40.59.42",
"media_source":"Organic",
"http_referrer":"",
"fb_adgroup_id":"",
"download_time_selected_timezone":"2017-06-25 11:08:48.000+0000",
"app_name":"Great App",
"af_sub3":"",
"af_sub1":"",
"click_url":"",
"install_time_selected_timezone":"2017-06-25 11:14:51.495+0000",
"af_sub5":"",
"download_time":"2017-06-25 11:08:48",
"cost_per_install":"",
"click_time":"",
"attributed_touch_type":"",
"install_time":"2017-06-25 11:14:51",
"attribution_type":"organic",
"fb_adset_name":"",
"cost_in_selected_currency":"",
"af_sub4":"",
"event_type":"install",
"event_value":"",
"app_version":"5.9",
"sdk_version":"v4.4.7.3",
"fb_adset_id":"",
"af_keywords":"",
"device_name":null,
"re_targeting_conversion_type":"",
"bundle_id":"com.great.app",
"event_time_selected_timezone":"2017-06-25 11:14:51.495+0000",
"language":"en-SA",
"event_name": null,
"is_retargeting":"false",
"appsflyer_device_id":"1498*********-*******",
"customer_user_id":"A163****-****-****-****-************",
"idfa":"2053****-****-****-****-************",
"idfv":"25EF****-****-****-****-************",
"af_sub2":"",
"wifi":"true",
"campaign":"",
"af_siteid":"",
"click_time_selected_timezone":"",
"fb_campaign_name":"",
"platform":"ios",
"country_code":"US",
"city":"Los Angeles",
"event_time":"2017-06-25 11:14:51",
"app_id":"id123*******",
"selected_currency":"USD",
"currency":"",
"device_type":"iPhoneSA"
}
Non-organic install
{
"mac": null,
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.sampleapp",
"af_cost_value": null,
"app_version": "1.0",
"city": "London",
"fb_campaign_id": null,
"device_model": "Nexus 5s",
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "GBP",
"app_name": "com.appsflyer.sampleapp",
"install_time_selected_timezone": "2018-12-10 12:29:26.387+0000",
"wifi": "true",
"install_time": "2018-12-10 12:29:26",
"operator": "Android",
"fb_adgroup_id": null,
"currency": null,
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": null,
"attributed_touch_time": "2018-12-10 12:28:22",
"click_time_selected_timezone": "2018-12-10 12:28:22.177+0000",
"is_retargeting": "false",
"country_code": "UK",
"event_type": "install",
"appsflyer_device_id": "155**********-*******************",
"http_referrer": "",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/com.appsflyer.sampleapp?pid=test_media_int&c=Test&advertising_id=d1f6****-****-****-****-************",
"media_source": "test_media_int",
"campaign": "Test",
"af_keywords": null,
"cost_in_selected_currency": null,
"event_value": null,
"ip": "192.168.1.1",
"event_time": "2018-12-10 12:29:26",
"click_time": "2018-12-10 12:28:22",
"af_sub4": null,
"imei": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"android_id": null,
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"device_brand": "google",
"download_time": "2018-12-10 12:29:14",
"af_siteid": null,
"language": "English",
"app_id": "com.appsflyer.sampleapp",
"af_ad_type": null,
"carrier": "Android",
"event_name": null,
"advertising_id": "d1f6****-****-****-****-************",
"os_version": "8.1.0",
"platform": "android",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-10 12:29:14.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.15",
"event_time_selected_timezone": "2018-12-10 12:29:26.387+0000"
}
{
"mac": null,
"idfv": "4C3D********-****-****-****-************",
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.support.swift",
"af_cost_value": null,
"app_version": "1.0",
"city": "New York",
"fb_campaign_id": null,
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "USD",
"app_name": "id34*******",
"install_time_selected_timezone": "2018-12-10 13:48:47.012+0000",
"wifi": "true",
"install_time": "2018-12-10 13:48:47",
"fb_adgroup_id": null,
"currency": null,
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": null,
"device_name": null,
"attributed_touch_time": "2018-12-10 13:48:01",
"click_time_selected_timezone": "2018-12-10 13:48:01.350+0000",
"is_retargeting": "false",
"country_code": "US",
"event_type": "install",
"appsflyer_device_id": "154**********-*******",
"http_referrer": "",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/id340******?pid=test_media_int&c=test&idfa=B25356E9-AE6A-4759-B453-D35ED9E96692",
"media_source": "test_media_int",
"campaign": "test",
"af_keywords": null,
"cost_in_selected_currency": null,
"event_value": null,
"ip": "192.168.1.1",
"event_time": "2018-12-10 13:48:47",
"click_time": "2018-12-10 13:48:01",
"af_sub4": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"device_type": "iPhone 6s",
"idfa": "B25356E9-****-****-****-************",
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"download_time": "2018-12-10 13:48:41",
"af_siteid": null,
"language": "en",
"app_id": "id340******",
"af_ad_type": null,
"event_name": null,
"os_version": "12.0",
"platform": "ios",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-10 13:48:41.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.3",
"event_time_selected_timezone": "2018-12-10 13:48:47.012+0000"
}
Organic in-app event
{
"mac": null,
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.sampleapp",
"app_version": "1.0",
"city": "London",
"fb_campaign_id": null,
"device_model": "Nexus 5s",
"selected_currency": "GBP",
"app_name": "com.appsflyer.sampleapp",
"install_time_selected_timezone": "2018-12-10 13:03:29.048+0000",
"wifi": "false",
"install_time": "2018-12-10 13:03:29",
"operator": "Android",
"fb_adgroup_id": null,
"currency": "GBP",
"attributed_touch_type": null,
"re_targeting_conversion_type": null,
"attributed_touch_time": null,
"click_time_selected_timezone": null,
"revenue_in_selected_currency": "1234.67",
"is_retargeting": "false",
"country_code": "UK",
"event_type": "in-app-event",
"appsflyer_device_id": "154**********-*******************",
"http_referrer": null,
"af_sub5": null,
"fb_campaign_name": null,
"click_url": null,
"media_source": "Organic",
"campaign": null,
"af_keywords": null,
"event_value":"{\"af_content_id\":\"298270\",\"af_date_b\":\"08-07-2017\",\"af_customer_user_id\":\"3f83****-****-****-****-*******\",\"af_revenue\":140.25,\"af_price\":140.25,\"af_currency\":\"GBP\"}",
"ip": "192.168.1.1",
"event_time": "2018-12-10 13:04:11",
"click_time": null,
"af_sub4": null,
"imei": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "organic",
"android_id": null,
"fb_adset_id": null,
"agency": null,
"fb_adset_name": null,
"cost_per_install": null,
"device_brand": "google",
"download_time": "2018-12-10 13:03:15",
"af_siteid": null,
"language": "English",
"app_id": "com.appsflyer.sampleapp",
"carrier": "Android",
"event_name": "af_purchase",
"advertising_id": "92dd****-****-****-****-************",
"os_version": "8.1.0",
"platform": "android",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-10 13:03:15.000+0000",
"sdk_version": "v4.8.15",
"event_time_selected_timezone": "2018-12-10 13:04:11.849+0000"
}
{
"mac":null,
"idfv":"8D36****-****-*****-*****-**********",
"af_sub1":null,
"customer_user_id":null,
"bundle_id":"com.appsflyer.support.two",
"af_cost_value":null,
"app_version":"1.0",
"city":"New York",
"fb_campaign_id":null,
"af_cost_model":null,
"af_c_id":null,
"selected_currency":"USD",
"app_name":"id34******",
"install_time_selected_timezone":"2018-08-19 13:03:37.422+0000",
"wifi":"true",
"install_time":"2018-08-19 13:03:37",
"fb_adgroup_id":null,
"currency":"USD",
"attributed_touch_type":"click",
"af_adset_id":null,
"re_targeting_conversion_type":null,
"device_name":null,
"attributed_touch_time":"2018-08-19 13:03:13",
"click_time_selected_timezone":"2018-08-19 13:03:13.851+0000",
"revenue_in_selected_currency":"200",
"is_retargeting":"false",
"country_code":"US",
"event_type":"in-app-event",
"appsflyer_device_id":"156***********-******",
"http_referrer":"",
"af_sub5":null,
"fb_campaign_name":null,
"click_url":"https://app.appsflyer.com/id3******?pid=Social%20Twitter&c=test",
"media_source":"Social Twitter",
"campaign":"test",
"af_keywords":null,
"event_value":"{\"af_revenue\":200,\"af_price\":250}",
"ip":"192.168.1.1",
"event_time":"2018-08-19 13:04:08",
"click_time":"2018-08-19 13:03:13",
"af_sub4":null,
"fb_adgroup_name":null,
"af_sub2":null,
"attribution_type":"regular",
"af_adset":null,
"fb_adset_id":null,
"af_ad":null,
"agency":null,
"fb_adset_name":null,
"device_type":"x86_64",
"idfa":"C25C****-****-****-*****-*********",
"cost_per_install":null,
"af_channel":null,
"af_cost_currency":null,
"download_time":"2018-08-19 13:03:26",
"af_siteid":null,
"language":"en",
"app_id":"id340*******",
"af_ad_type":null,
"event_name":"af_purchase",
"os_version":"11.3",
"platform":"ios",
"af_sub3":null,
"download_time_selected_timezone":"2018-08-19 13:03:26.000+0000",
"af_ad_id":null,
"sdk_version":"v4.8.3",
"event_time_selected_timezone":"2018-08-19 13:04:08.838+0000"
}
Non-organic in-app event
{
"mac": null,
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.sampleapp",
"af_cost_value": null,
"app_version": "1.0",
"city": "New York",
"fb_campaign_id": null,
"device_model": "Nexus 5s",
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "GBP",
"app_name": "com.appsflyer.sampleapp",
"install_time_selected_timezone": "2018-12-10 12:29:26.387+0000",
"wifi": "true",
"install_time": "2018-12-10 12:29:26",
"operator": "Android",
"fb_adgroup_id": null,
"currency": "GBP",
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": null,
"attributed_touch_time": "2018-12-10 12:28:22",
"click_time_selected_timezone": "2018-12-10 12:28:22.177+0000",
"revenue_in_selected_currency": "1234.67",
"is_retargeting": "false",
"country_code": "US",
"event_type": "in-app-event",
"appsflyer_device_id": "154**********-*******************",
"http_referrer": "",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/com.appsflyer.sampleapp?pid=test_media_int&c=Test&advertising_id=d1f66885-158e-47ea-aa21-62b8aea937f8",
"media_source": "test_media_int",
"campaign": "Test",
"af_keywords": null,
"event_value": "{\"af_content_id\":\"298270\",\"af_date_b\":\"08-07-2017\",\"af_customer_user_id\":\"3f83****-****-****-****-*******\",\"af_revenue\":140.25,\"af_price\":140.25,}",
"ip": "192.168.1.1",
"event_time": "2018-12-10 12:29:36",
"click_time": "2018-12-10 12:28:22",
"af_sub4": null,
"imei": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"android_id": null,
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"device_brand": "google",
"download_time": "2018-12-10 12:29:14",
"af_siteid": null,
"language": "English",
"app_id": "com.appsflyer.sampleapp",
"af_ad_type": null,
"carrier": "Android",
"event_name": "af_purchase",
"advertising_id": "d1f6****-****-****-****-************",
"os_version": "8.1.0",
"platform": "android",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-10 12:29:14.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.15",
"event_time_selected_timezone": "2018-12-10 12:29:36.866+0000"
}
{
"mac": null,
"idfv": "4C3D78FA-D9CD-485B-89BA-BDF55FB72B4E",
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.support.swift",
"af_cost_value": null,
"app_version": "1.0",
"city": "London",
"fb_campaign_id": null,
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "USD",
"app_name": "id34*******",
"install_time_selected_timezone": "2018-12-10 13:48:47.012+0000",
"wifi": "true",
"install_time": "2018-12-10 13:48:47",
"fb_adgroup_id": null,
"currency": "USD",
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": null,
"device_name": null,
"attributed_touch_time": "2018-12-10 13:48:01",
"click_time_selected_timezone": "2018-12-10 13:48:01.350+0000",
"revenue_in_selected_currency": "1200",
"is_retargeting": "false",
"country_code": "UK",
"event_type": "in-app-event",
"appsflyer_device_id": "154**********-*******",
"http_referrer": "",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/id34*******?pid=test_media_int&c=test&idfa=B25356E9-AE6A-4759-B453-D35ED9E96692",
"media_source": "test_media_int",
"campaign": "test",
"af_keywords": null,
"event_value": "{\"af_revenue\":1200,\"af_content_id\":\"123\",\"af_content\":\"shoes\"}",
"ip": "192.168.1.1",
"event_time": "2018-12-10 13:50:25",
"click_time": "2018-12-10 13:48:01",
"af_sub4": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"device_type": "iPhone 6s",
"idfa": "B253****-****-****-****-************",
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"download_time": "2018-12-10 13:48:41",
"af_siteid": null,
"language": "en",
"app_id": "id34*******",
"af_ad_type": null,
"event_name": "af_purchase",
"os_version": "12.0",
"platform": "ios",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-10 13:48:41.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.3",
"event_time_selected_timezone": "2018-12-10 13:50:25.216+0000"
}
Re-attribution
{
"mac": null,
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.sampleapp",
"af_cost_value": null,
"app_version": "1.0",
"city": "New York",
"fb_campaign_id": null,
"device_model": "Mi 4i",
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "GBP",
"app_name": "com.appsflyer.sampleapp",
"install_time_selected_timezone": "2018-12-11 06:06:39.133+0000",
"wifi": true,
"install_time": "2018-12-11 06:06:39",
"operator": "",
"fb_adgroup_id": null,
"currency": null,
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": "re-attribution",
"attributed_touch_time": "2018-12-11 06:01:47",
"click_time_selected_timezone": "2018-12-11 06:01:47.707+0000",
"is_retargeting": true,
"country_code": "US",
"event_type": "install",
"appsflyer_device_id": "154**********-*******************",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/com.appsflyer.sampleapp?pid=test_media_int&c=ret_campaign&is_retargeting=true&advertising_id=cee6*****-****-****-****-************",
"media_source": "test_media_int",
"campaign": "ret_campaign",
"af_keywords": null,
"cost_in_selected_currency": null,
"event_value": null,
"ip": "192.168.1.1",
"event_time": "2018-12-11 06:06:39",
"click_time": "2018-12-11 06:01:47",
"af_sub4": null,
"imei": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"android_id": null,
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"device_brand": "Xiaomi",
"download_time": "2018-12-11 06:06:31",
"af_siteid": null,
"language": "English",
"app_id": "com.appsflyer.sampleapp",
"af_ad_type": null,
"carrier": "",
"event_name": null,
"advertising_id": "cee6*****-****-****-****-************",
"os_version": "5.0.2",
"platform": "android",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-11 06:06:31.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.15",
"event_time_selected_timezone": "2018-12-11 06:06:39.133+0000"
}
{
"mac": null,
"idfv": "AC5****-****-****-****-************",
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.support.swift",
"af_cost_value": null,
"app_version": "9.4.0",
"city": "London",
"fb_campaign_id": null,
"af_cost_model": null,
"af_c_id": "",
"selected_currency": "GBP",
"app_name": "",
"install_time_selected_timezone": "2018-12-11 07:21:16.887+0000",
"wifi": true,
"install_time": "2018-12-11 07:21:16",
"fb_adgroup_id": null,
"currency": null,
"attributed_touch_type": "click",
"af_adset_id": "",
"re_targeting_conversion_type": "re-attribution",
"device_name": null,
"attributed_touch_time": "2018-12-09 07:58:23",
"click_time_selected_timezone": "2018-12-09 07:58:23.000+0000",
"is_retargeting": true,
"country_code": "UK",
"event_type": "install",
"appsflyer_device_id": "154**********-*******",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": null,
"media_source": "media_test_int",
"campaign": "ret_campaign",
"af_keywords": "",
"cost_in_selected_currency": null,
"event_value": null,
"ip": "192.168.1.1",
"event_time": "2018-12-11 07:21:16",
"click_time": "2018-12-09 07:58:23",
"af_sub4": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"af_adset": "",
"fb_adset_id": null,
"af_ad": null,
"agency": "",
"fb_adset_name": null,
"device_type": "iPhone 5",
"idfa": "471*****-****-****-****-*********",
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"download_time": "2018-12-11 07:19:58",
"af_siteid": null,
"language": "en-US",
"app_id": "id8*******",
"af_ad_type": null,
"event_name": null,
"os_version": "10.3.3",
"platform": "ios",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-11 07:19:58.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.6",
"event_time_selected_timezone": "2018-12-11 07:21:16.887+0000"
}
Re-attribution in-app events
{
"mac": null,
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.sampleapp",
"af_cost_value": null,
"app_version": "1.0",
"city": "London",
"fb_campaign_id": null,
"device_model": "Mi 4i",
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "GBP",
"app_name": "com.appsflyer.sampleapp",
"install_time_selected_timezone": "2018-12-11 06:06:39.133+0000",
"wifi": true,
"install_time": "2018-12-11 06:06:39",
"operator": "",
"fb_adgroup_id": null,
"currency": "GBP",
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": "re-attribution",
"attributed_touch_time": "2018-12-11 06:01:47",
"click_time_selected_timezone": "2018-12-11 06:01:47.707+0000",
"revenue_in_selected_currency": 1234.67,
"is_retargeting": true,
"country_code": "UK",
"event_type": "in-app-event",
"appsflyer_device_id": "154**********-*******************",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/com.appsflyer.sampleapp?pid=test_media_int&c=ret_campaign&is_retargeting=true&advertising_id=cee6****-****-****-****-************",
"media_source": "test_media_int",
"campaign": "ret_campaign",
"af_keywords": null,
"event_value":
"{\"af_revenue\":1234.67,\"af_currency\":\"GBP",\"af_content_id\":\"123\",\"af_content\":\"shoes\"}" ,
"ip": "192.168.1.1",
"event_time": "2018-12-11 06:07:46",
"click_time": "2018-12-11 06:01:47",
"af_sub4": null,
"imei": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"android_id": null,
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"device_brand": "Xiaomi",
"download_time": "2018-12-11 06:06:31",
"af_siteid": null,
"language": "English",
"app_id": "com.appsflyer.sampleapp",
"af_ad_type": null,
"carrier": "",
"event_name": "Decimal_5",
"advertising_id": "cee6****-****-****-****-************",
"os_version": "5.0.2",
"platform": "android",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-11 06:06:31.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.15",
"event_time_selected_timezone": "2018-12-11 06:07:46.129+0000"
}
{
"mac": null,
"idfv": "E3******-****-****-****-**********",
"af_sub1": "",
"customer_user_id": "",
"bundle_id": "com.appsflyer.support.swift",
"af_cost_value": null,
"app_version": "9.4.0",
"city": "New York",
"fb_campaign_id": null,
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "USD",
"app_name": "",
"install_time_selected_timezone": "2018-12-11 13:50:03.178+0800",
"wifi": true,
"install_time": "2018-12-11 05:50:03",
"fb_adgroup_id": null,
"currency": "USD",
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": "re-attribution",
"device_name": null,
"attributed_touch_time": "2018-12-11 05:45:32",
"click_time_selected_timezone": "2018-12-11 13:45:32.022+0800",
"revenue_in_selected_currency": null,
"is_retargeting": true,
"country_code": "US",
"event_type": "in-app-event",
"appsflyer_device_id": "1544*********-*******",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/id34*******?pid=test_media_int&c=ret_campaign&is_retargeting=true&idfa=B25****-****-****-****-************",
"media_source": "test_media_int",
"campaign": "Detail",
"af_keywords": null,
"event_value": "{\"af_revenue\": 1234.67,\"af_currency\": \"GBP\",\"af_content_id\": \"123\",\"af_content\": \"shoes\"}",
"ip": "192.168.1.1",
"event_time": "2018-12-11 07:44:37",
"click_time": "2018-12-11 05:45:32",
"af_sub4": null,
"fb_adgroup_name": null,
"af_sub2": "",
"attribution_type": "regular",
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"device_type": "iPhone 7",
"idfa": "D740****-****-****-****-************",
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"download_time": "2018-12-11 05:45:47",
"af_siteid": null,
"language": "es-DO",
"app_id": "id10*******",
"af_ad_type": null,
"event_name": "af_purchase",
"os_version": "12.1",
"platform": "ios",
"af_sub3": "",
"download_time_selected_timezone": "2018-12-11 13:45:47.000+0800",
"af_ad_id": null,
"sdk_version": "v4.8.9",
"event_time_selected_timezone": "2018-12-11 07:21:16.887+0000"
}
Re-engagement
{
"mac": null,
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.sampleapp",
"af_cost_value": null,
"app_version": null,
"city": "London",
"fb_campaign_id": null,
"device_model": null,
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "GBP",
"app_name": "com.appsflyer.sampleapp",
"install_time_selected_timezone": null,
"wifi": false,
"install_time": "2018-12-09 20:47:08",
"operator": null,
"fb_adgroup_id": null,
"currency": null,
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": "re-engagement",
"attributed_touch_time": "2018-12-09 20:46:57",
"click_time_selected_timezone": "2018-12-09 20:46:57.985+0000",
"is_retargeting": true,
"country_code": "UK",
"event_type": "re-engagement",
"appsflyer_device_id": "7ced****-****-****-****-************",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/com.appsflyer.sampleapp?c=re-engagement&pid=test_media_int&advertiserId=bc39****-****-****-****-************&is_retargeting=true",
"media_source": "test_media_int",
"campaign": "re-engagement",
"af_keywords": null,
"cost_in_selected_currency": null,
"event_value": null,
"ip": "192.168.1.1",
"event_time": "2018-12-09 20:47:08",
"click_time": "2018-12-09 20:46:57",
"af_sub4": null,
"imei": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"android_id": null,
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"device_brand": null,
"download_time": "2018-12-09 20:47:08",
"af_siteid": null,
"language": null,
"app_id": "com.appsflyer.sampleapp",
"af_ad_type": null,
"carrier": null,
"event_name": "re-engagement",
"advertising_id": "bc39****-****-****-****-************",
"os_version": "8.0",
"platform": "android",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-09 20:47:08.019+0000",
"af_ad_id": null,
"sdk_version": "v4.4.8",
"event_time_selected_timezone": "2018-12-09 20:47:08.019+0000"
}
{
"mac": null,
"idfv": "AC5****-****-****-****-************",
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.support.swift",
"af_cost_value": null,
"app_version": "9.4.0",
"city": "London",
"fb_campaign_id": null,
"af_cost_model": null,
"af_c_id": "",
"selected_currency": "GBP",
"app_name": "",
"install_time_selected_timezone": "2018-12-11 07:21:16.887+0000",
"wifi": true,
"install_time": "2018-12-11 07:21:16",
"fb_adgroup_id": null,
"currency": null,
"attributed_touch_type": "click",
"af_adset_id": "",
"re_targeting_conversion_type": "re-engagement",
"device_name": null,
"attributed_touch_time": "2018-12-09 07:58:23",
"click_time_selected_timezone": "2018-12-09 07:58:23.000+0000",
"is_retargeting": true,
"country_code": "UK",
"event_type": "re-engagement",
"appsflyer_device_id": "154**********-*******",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/id8*******?c=re-engagement&pid=test_media_int&idfa=471*****-****-****-****-*********&is_retargeting=true",
"media_source": "media_test_int",
"campaign": "reengagement_campaign",
"af_keywords": "",
"cost_in_selected_currency": null,
"event_value": null,
"ip": "192.168.1.1",
"event_time": "2018-12-11 07:21:16",
"click_time": "2018-12-09 07:58:23",
"af_sub4": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"af_adset": "",
"fb_adset_id": null,
"af_ad": null,
"agency": "",
"fb_adset_name": null,
"device_type": "iPhone 5",
"idfa": "471*****-****-****-****-*********",
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"download_time": "2018-12-11 07:19:58",
"af_siteid": null,
"language": "en-US",
"app_id": "id8*******",
"af_ad_type": null,
"event_name": null,
"os_version": "10.3.3",
"platform": "ios",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-11 07:19:58.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.6",
"event_time_selected_timezone": "2018-12-11 07:21:16.887+0000"
}
Re-engagement in-app events
Important!
If you choose to receive push API postbacks for re-engagement in-app events, and postbacks for organic or non-organic in-app events, AppsFlyer sends two in-app event postbacks:
- One for the organic install or non-organic install / non-organic re-attribution media source
- One for the re-engagement media source
In such a scenario, you have an option to de-duplicate the events.
{
"mac": null,
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.sampleapp",
"af_cost_value": null,
"app_version": null,
"city": "New York",
"fb_campaign_id": null,
"device_model": null,
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "USD",
"app_name": "com.appsflyer.sampleapp",
"install_time_selected_timezone": "2018-12-12 07:05:45.445+0000",
"wifi": false,
"install_time": "2018-12-12 07:05:45",
"operator": null,
"fb_adgroup_id": null,
"currency": "USD",
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": "re-engagement",
"attributed_touch_time": "2018-12-12 07:05:35",
"click_time_selected_timezone": "2018-12-12 07:05:35.382+0000",
"revenue_in_selected_currency": 999,
"is_retargeting": true,
"country_code": "US",
"event_type": "in-app-event",
"appsflyer_device_id": "ea19****-****-****-****-***********",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://app.appsflyer.com/com.appsflyer.sampleapp?c=re-engagement&pid=test_media_int&advertiserId=cd45****-****-****-****-************&is_retargeting=true",
"media_source": "test_media_int",
"campaign": "re-engagement",
"af_keywords": null,
"event_value": "{\"af_currency\":\"UDS\",\"af_revenue\":999,\"af_price\":149,\"af_content_id\":\"888888888\",\"af_quantity\":\"1\",\"af_content_type\":\"SINGLE\"}",
"ip": "192.168.1.1",
"event_time": "2018-12-12 07:06:15",
"click_time": "2018-12-12 07:05:35",
"af_sub4": null,
"imei": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"android_id": null,
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"device_brand": null,
"download_time": "2018-12-12 07:06:15",
"af_siteid": null,
"language": null,
"app_id": "com.appsflyer.sampleapp",
"af_ad_type": null,
"carrier": null,
"event_name": "af_purchase",
"advertising_id": "cd45****-****-****-****-************",
"os_version": "",
"platform": "android",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-12 07:06:15.497+0000",
"af_ad_id": null,
"sdk_version": "v4.4.8",
"event_time_selected_timezone": "2018-12-12 07:06:15.497+0000"
}
{
"mac": null,
"idfv": "708B****-****-****-****-************",
"af_sub1": null,
"customer_user_id": null,
"bundle_id": "com.appsflyer.two",
"af_cost_value": null,
"app_version": "1.0",
"city": "New York",
"fb_campaign_id": null,
"af_cost_model": null,
"af_c_id": null,
"selected_currency": "USD",
"app_name": "id34*******",
"install_time_selected_timezone": "2018-12-13 10:37:58.697+0000",
"wifi": true,
"install_time": "2018-12-13 10:37:58",
"fb_adgroup_id": null,
"currency": "USD",
"attributed_touch_type": "click",
"af_adset_id": null,
"re_targeting_conversion_type": "re-engagement",
"device_name": null,
"attributed_touch_time": "2018-12-13 10:37:58",
"click_time_selected_timezone": "2018-12-13 10:37:58.697+0000",
"revenue_in_selected_currency": 200,
"is_retargeting": true,
"country_code": "IL",
"event_type": "in-app-event",
"appsflyer_device_id": "1544699211327-5372776",
"af_sub5": null,
"fb_campaign_name": null,
"click_url": "https://myapp.onelink.me/aaaa/bbbbbbb",
"media_source": "test_media_int",
"campaign": "re-engagement",
"af_keywords": null,
"event_value": "{\"af_revenue\":200,\"af_currency\":\"USD\",\"af_receipt_id\":\"9277\",\"af_quantity\":2,\"af_content_id\":\"092\"}",
"ip": "192.168.1.1",
"event_time": "2018-12-13 10:40:33",
"click_time": "2018-12-13 10:37:58",
"af_sub4": null,
"fb_adgroup_name": null,
"af_sub2": null,
"attribution_type": "regular",
"af_adset": null,
"fb_adset_id": null,
"af_ad": null,
"agency": null,
"fb_adset_name": null,
"device_type": "iPhone 7 Plus",
"idfa": "5C50****-****-****-****-***********",
"cost_per_install": null,
"af_channel": null,
"af_cost_currency": null,
"download_time": "2018-12-13 09:06:51",
"af_siteid": null,
"language": "en-IL",
"app_id": "id340******",
"af_ad_type": null,
"event_name": "af_purchase",
"os_version": "11.4.1",
"platform": "ios",
"af_sub3": null,
"download_time_selected_timezone": "2018-12-13 09:06:51.000+0000",
"af_ad_id": null,
"sdk_version": "v4.8.3",
"event_time_selected_timezone": "2018-12-13 10:40:33.459+0000"
}
Sharing data with 3rd party platforms
If you are working with partners such as Facebook, Twitter, Snap, Pinterest etc. who have set restrictions on sharing their data with third-party platforms and services, please make sure to follow their guidelines and remove any data which is under these restrictions.
Are retargeting events duplicated?
Usually, yes.
If the Retargeting in-app events box is checked, then all in-app events occurring during the re-engagement window of a retargeted user are sent with the attribution details of the retargeting network.
Simultaneously, a non-organic or an organic event is being pushed as well, if the respective in-app events box is checked. This message has the attribution details of the original media source.
Example
Bruce installs greatapp and is attributed to awesome_network. Later, Bruce re-engages with greatapp's retargeting campaign on retar-network and performs a purchase event. The event is sent twice with the following details:
1. As a non-organic event:
Media source: awesome_network
is_retargeting: false
re_targeting_conversion_type: (no value)
2. As a retargeting event:
Media source: retar_network
is_retargeting: true
re_targeting_conversion_type: re-engagement
How can I de-duplicate retargeting events?
When a re-engagement in-app event takes place, there are cases when AppsFlyer sends two push API postbacks. To distinguish between the two postbacks you should look at the re_targeting_conversion_type
field.
To de-duplicate retargeting events, compare the two payloads:
- Compare the
event_time
,appsflyer_device_id
andapp_id
fields. - If the fields are the same, it means that these two postbacks are related to the same retargeting in-app event.
- Then, look at the
re_targeting_conversion_type
field - Drop the payload where
re_targeting_conversion_type
isnull
What is the supported API security?
All Push API messages are sent using secure encrypted https connections.
For more details go here.xc
Where is the pushed Facebook data?
By default, Facebook does not release raw user-level data, unless you accept Facebook's Terms of Service.
By doing so, you enable the sending of user-level data of installs coming from Facebook, via Push API (and to other raw data resources, as well).
Some push messages are missing, Why?
Are you using Amazon CloudFront as your endpoint. If so, check if CloudFront is rejecting the message with reject code 421. If this is the case, see Choosing How CloudFront Serves HTTPS Requests
Merging Push API V1.0 data with Pull API data
Pull API and Push API provide raw data of installs and in-app events. The APIs have different formats and parameters naming conventions. Some are unique whilst others overlap.
If you are unsure of which method to use to get raw data, see Which AppsFlyer Data API is Best for You.
This article contains the following information:
- Use cases where format comparison and parameter mapping are required
- Comparision of the format and parameter naming conventions of the APIs
Use cases
Data availability
Push API requires an API endpoint to receive the payload. Sometimes, the endpoint may not be available, and the payload is not delivered. As a fallback, you can use Pull API to fill in the gap. This requires that you have a mechanism to identify lost payloads and to call the Pull API.
Example
You use Push API to store data in your BI systems. Your servers experience a two-minute downtime between 08:30 and 08:32. Push APIs sent during this time are not delivered and are therefore lost.
To recover data and fill in the missing data gaps, you need to call a Pull API at the end of the day. You examine the Pull API entries to identify entries whose timestamp corresponds to the two-minute downtime. These entries need to be recorded.
Using the mapping between Pull and Push API, you can push the data into your BI system, even if the column names in the table don't match those in Pull API.
Data enrichment
The following relates to Push APV V1.0. Push API V2.0 is aligned with other AppsFlyer raw data reports.
Moving to Push API V2.0 migration guide
Pull API contains fields which are not available in Push API V1.0. Use the Pull API to supplement the Push API V1.0 data. Note: Push API V.2 contains all the fields available in Pull API.
Example
You use Push API to store data in your BI systems. You want to supplement each entry in the database with contributor data which is only available in Pull API.
For this purpose, you call Pull API at the end of each day, compare the entries and add contributor data from Pull API entries to their respective entries in the database (created from Push API).
Parameter mapping
This section is relevant only to Push API V1.0.
The following table compares the format and parameter mapping of the following Pull API raw data reports:
- Installs: Organic and non-organic
- In-app events: Organic and non-organic
The table below is also available in CSV format.
Pull API | Push API V1.0 |
---|---|
Ad | af_ad |
Ad ID | af_ad_id |
Ad Type | af_ad_type |
Adset | af_adset |
Adset ID | af_adset_id |
Advertising ID | advertising_id |
Amazon Fire ID | N/A |
Android ID | android_id |
App ID | app_id |
App Name | app_name |
App Version | app_version |
AppsFlyer ID | appsflyer_device_id |
Attributed Touch Time | attributed_touch_time |
Attributed Touch Type | attributed_touch_type |
Attribution Lookback | N/A |
Bundle ID | bundle_id |
Campaign | campaign |
Campaign ID | af_c_id |
Carrier | carrier |
Channel | af_channel |
City | city |
Contributor 1 Campaign | N/A |
Contributor 1 Match Type | N/A |
Contributor 1 Media Source | N/A |
Contributor 1 Partner | N/A |
Contributor 1 Touch Time | N/A |
Contributor 1 Touch Type | N/A |
Contributor 2 Campaign | N/A |
Contributor 2 Match Type | N/A |
Contributor 2 Media Source | N/A |
Contributor 2 Partner | N/A |
Contributor 2 Touch Time | N/A |
Contributor 2 Touch Type | N/A |
Contributor 3 Campaign | N/A |
Contributor 3 Match Type | N/A |
Contributor 3 Media Source | N/A |
Contributor 3 Partner | N/A |
Contributor 3 Touch Time | N/A |
Contributor 3 Touch Type | N/A |
Cost Currency | af_cost_currency |
Cost Model | af_cost_model |
Cost Value | af_cost_value |
Country Code | country_code |
Customer User ID | customer_user_id |
Device Category | N/A |
Device Type | device_model (Android) device_type (iOS) |
DMA | N/A |
Event Name |
event_name or event_type If the event is an install:
If the event is an in-app event:
|
Event Revenue | revenue_in_selected_currency |
Event Revenue Currency | currency |
Event Revenue USD | N/A |
Event Source | N/A |
Event Time | event_time |
Event Value | event_value |
Google Play Click Time | N/A |
Google Play Install Begin Time | N/A |
Google Play Referrer | N/A |
HTTP Referrer | http_referrer |
IDFA | idfa |
IDFV | idfv |
IMEI | imei |
Install App Store | N/A |
Install Time | install_time |
IP | ip |
Is Primary Attribution | N/A |
Is Receipt Validated | N/A |
Is Retargeting | is_retargeting |
Keyword Match Type | N/A |
Keywords | af_keywords |
Language | language |
Match Type | N/A |
Media Source | media_source |
Operator | operator |
Original URL | click_url |
OS Version | os_version |
Partner | agency |
Platform | platform |
Postal Code | N/A |
Reengagement Window | N/A |
Region | N/A |
Retargeting Conversion Type | re_targeting_conversion_type |
SDK Version | sdk_version |
Site ID | af_siteid |
State | N/A |
Sub Param 1 | af_sub1 |
Sub Param 2 | af_sub2 |
Sub Param 3 | af_sub3 |
Sub Param 4 | af_sub4 |
Sub Param 5 | af_sub5 |
Sub Site ID | N/A |
User Agent | N/A |
WIFI | wifi |
See here for an explanation about the parameters below.
attribution_type |
click_time |
click_time_selected_timezone |
cost_in_selected_currency |
cost_per_install |
device_brand (Android) |
device_name (iOS) |
download_time |
download_time_selected_timezone |
event_time_selected_timezone |
event_type |
fb_adgroup_id |
fb_adgroup_name |
fb_adset_id |
fb_adset_name |
fb_campaign_id |
fb_campaign_name |
install_time_selected_timezone |
mac |
selected_currency |