AppsFlyer
AppsFlyer is a mobile app tracking and attribution analytics platform.
Features
Feature Name | Supported | Notes |
---|---|---|
Capture deletes | ||
History mode | ||
Custom data | ||
Data blocking | check | |
Column hashing | check | |
Re-sync | check | |
API configurable | check | API configuration |
Priority-first sync | ||
Fivetran data models | ||
Private networking | ||
Authorization via API | check |
Setup guide
Follow our step-by-step AppsFlyer setup guide to connect AppsFlyer with your destination using Fivetran connectors.
Sync overview
If you use Data Locker, we can sync your historical data.
If you use the default webhooks method to send us data, we cannot sync your historical data. We can only capture data from your connection date forward.
If you use Pull API, we can sync your historical data for aggregate reports. We can only capture the data from raw reports from the date of your connector creation due to rate limitations.
Schema information
This schema applies to all Appsflyer connectors.
To zoom, open the ERD in a new window.We will sync the following standard tables:
event
Expand for details
Column name | Data type |
---|---|
_fivetran_id 🔑 | TEXT |
ad_unit | TEXT |
advertising_id | TEXT |
af_ad | TEXT |
af_ad_id | TEXT |
af_ad_type | TEXT |
af_adset | TEXT |
af_adset_id | TEXT |
af_attribution_lookback | TEXT |
af_c_id | TEXT |
af_channel | TEXT |
af_cost_currency | TEXT |
af_cost_model | TEXT |
af_cost_value | TEXT |
af_keywords | TEXT |
af_prt | TEXT |
af_reengagement_window | TEXT |
af_siteid | TEXT |
af_sub1 | TEXT |
af_sub2 | TEXT |
af_sub3 | TEXT |
af_sub4 | TEXT |
af_sub5 | TEXT |
af_sub_siteid | TEXT |
af_web_id | TEXT |
amazon_aid | TEXT |
android_id | TEXT |
app_id | TEXT |
app_name | TEXT |
app_type | TEXT |
app_version | TEXT |
appsflyer_id | TEXT |
att | TEXT |
attributed_touch_hour | TEXT |
attributed_touch_time | TIMESTAMP |
attributed_touch_time_selected_timezone | TIMESTAMP |
attributed_touch_type | TEXT |
blocked_reason | TEXT |
blocked_reason_rule | TEXT |
blocked_reason_value | TEXT |
blocked_sub_reason | TEXT |
bundle_id | TEXT |
campaign | TEXT |
campaign_type | TEXT |
carrier | TEXT |
city | TEXT |
contributor_1_af_prt | TEXT |
contributor_1_campaign | TEXT |
contributor_1_match_type | TEXT |
contributor_1_media_source | TEXT |
contributor_1_touch_time | TIMESTAMP |
contributor_1_touch_type | TEXT |
contributor_2_af_prt | TEXT |
contributor_2_campaign | TEXT |
contributor_2_match_type | TEXT |
contributor_2_media_source | TEXT |
contributor_2_touch_time | TIMESTAMP |
contributor_2_touch_type | TEXT |
contributor_3_af_prt | TEXT |
contributor_3_campaign | TEXT |
contributor_3_match_type | TEXT |
contributor_3_media_source | TEXT |
contributor_3_touch_time | TIMESTAMP |
contributor_3_touch_type | TEXT |
conversion_type | TEXT |
cost_in_selected_currency | TEXT |
country_code | TEXT |
custom_data | TEXT |
custom_dimension | TEXT |
customer_user_id | TEXT |
deeplink_url | TEXT |
detection_date | TEXT |
device_category | TEXT |
device_download_time | TIMESTAMP |
device_download_time_selected_timezone | TIMESTAMP |
device_model | TEXT |
device_type | TEXT |
dma | TEXT |
download_time | TIMESTAMP |
download_time_selected_timezone | TIMESTAMP |
event_hour | TEXT |
event_name | TEXT |
event_revenue | TEXT |
event_revenue_currency | TEXT |
event_revenue_preferred | TEXT |
event_revenue_usd | TEXT |
event_source | TEXT |
event_time | TIMESTAMP |
event_time_selected_timezone | TIMESTAMP |
event_value | TEXT |
fraud_reason | TEXT |
fraud_sub_reason | TEXT |
gp_broadcast_referrer | TEXT |
gp_click_time | TIMESTAMP |
gp_install_begin | TIMESTAMP |
gp_referrer | TEXT |
http_referrer | TEXT |
idfa | TEXT |
idfv | TEXT |
imei | TEXT |
impressions | TEXT |
install_app_store | TEXT |
install_hour | TEXT |
install_time | TIMESTAMP |
install_time_selected_timezone | TIMESTAMP |
ip | TEXT |
is_lat | BOOLEAN |
is_organic | BOOLEAN |
is_primary_attribution | BOOLEAN |
is_receipt_validated | BOOLEAN |
is_retargeting | BOOLEAN |
keyword_id | TEXT |
keyword_match_type | TEXT |
language | TEXT |
match_type | TEXT |
media_source | TEXT |
media_type | TEXT |
mediation_network | TEXT |
monetization_network | TEXT |
network_account_id | TEXT |
oaid | TEXT |
operator | TEXT |
original_url | TEXT |
os_version | TEXT |
pid | TEXT |
placement | TEXT |
platform | TEXT |
postal_code | TEXT |
postback_error_message | TEXT |
postback_http_response_code | TEXT |
postback_method | TEXT |
postback_retry | BOOLEAN |
postback_url | TEXT |
region | TEXT |
rejected_reason | TEXT |
rejected_reason_value | TEXT |
retargeting_conversion_type | TEXT |
revenue_in_selected_currency | TEXT |
sdk_version | TEXT |
segment | TEXT |
selected_currency | TEXT |
selected_timezone | TEXT |
state | TEXT |
store_product_page | TEXT |
store_reinstall | BOOLEAN |
user_agent | TEXT |
utm_campaign | TEXT |
utm_content | TEXT |
utm_medium | TEXT |
utm_source | TEXT |
utm_term | TEXT |
web_event_type | TEXT |
wifi | TEXT |
This table also contains additional custom fields apart from above-mentioned standard fields.
skan_event
Expand for details
Column name | Data type |
---|---|
_fivetran_id 🔑 | TEXT |
ad_network_ad_id | TEXT |
ad_network_ad_name | TEXT |
ad_network_adset_id | TEXT |
ad_network_adset_name | TEXT |
ad_network_campaign_id | TEXT |
ad_network_campaign_name | TEXT |
ad_network_channel | TEXT |
ad_network_creative | TEXT |
ad_network_name | TEXT |
ad_network_source_app_id | TEXT |
ad_network_timestamp | TIMESTAMP |
af_attribution_flag | BOOLEAN |
af_prt | TEXT |
app_id | TEXT |
country_code | TEXT |
did_win | BOOLEAN |
event_name | TEXT |
event_revenue | DOUBLE |
event_uuid | TEXT |
event_value | TEXT |
fidelity_type | INT |
install_date | TEXT |
install_type | TEXT |
interval | TEXT |
ip | TEXT |
max_event_counter | INT |
max_revenue | DOUBLE |
max_time_post_install | INT |
measurement_window | INT |
media_source | TEXT |
min_event_counter | INT |
min_revenue | DOUBLE |
min_time_post_install | INT |
region | TEXT |
skad_ad_network_id | TEXT |
skad_ambiguous_event | BOOLEAN |
skad_app_id | TEXT |
skad_attribution_signature | TEXT |
skad_campaign_id | TEXT |
skad_coarse_conversion_value | TEXT |
skad_conversion_value | INT |
skad_did_win | BOOLEAN |
skad_fidelity_type | INT |
skad_mode | TEXT |
skad_postback_sequence_index | INT |
skad_redownload | BOOLEAN |
skad_revenue | DOUBLE |
skad_source_app_id | TEXT |
skad_source_domain | TEXT |
skad_source_identifier | INT |
skad_transaction_id | TEXT |
skad_version | TEXT |
source_app_id | TEXT |
timestamp | TIMESTAMP |
user_agent | TEXT |
This table also contains additional custom fields apart from above-mentioned standard fields.
geo_daily
Expand for details
Column name | Data type |
---|---|
_fivetran_id 🔑 | TEXT |
agency | TEXT |
app_id | TEXT |
arpu | TEXT |
average_ecpi | TEXT |
campaign | TEXT |
clicks | TEXT |
conversion_rate | TEXT |
conversion_type | TEXT |
conversions | TEXT |
country | TEXT |
ctr | TEXT |
date | DATE |
impressions | TEXT |
installs | TEXT |
loyal_users | TEXT |
loyal_users_per_installs | TEXT |
media_source | TEXT |
roi | TEXT |
sessions | TEXT |
total_cost | TEXT |
total_revenue | TEXT |
skad_ad_network_id | TEXT |
skad_ambiguous_event | BOOLEAN |
skad_app_id | TEXT |
skad_attribution_signature | TEXT |
skad_campaign_id | TEXT |
skad_coarse_conversion_value | TEXT |
skad_conversion_value | INT |
skad_did_win | BOOLEAN |
skad_fidelity_type | INT |
skad_mode | TEXT |
skad_postback_sequence_index | INT |
skad_redownload | BOOLEAN |
skad_revenue | DOUBLE |
skad_source_app_id | TEXT |
skad_source_domain | TEXT |
skad_source_identifier | INT |
skad_transaction_id | TEXT |
skad_version | TEXT |
source_app_id | TEXT |
timestamp | TIMESTAMP |
user_agent | TEXT |
This table also contains the following custom event-related fields where *
is the event name:
- *_unique_users
- *_event_counter
- *_sales
cohort_event
Expand for details
Column name | Data type |
---|---|
_fivetran_id 🔑 | TEXT |
ad | TEXT |
ad_id | TEXT |
adset | TEXT |
adset_id | TEXT |
agency | TEXT |
app_id | TEXT |
attributed_touch_type | TEXT |
campaign | TEXT |
campaign_id | TEXT |
channel | TEXT |
conversion_date | DATE |
conversion_type | TEXT |
days_post_attribution | TEXT |
event_count | FLOAT |
event_date | DATE |
event_name | TEXT |
geo | TEXT |
install_app_store | TEXT |
is_primary_attribution | BOOLEAN |
keyword_id | TEXT |
keywords | TEXT |
media_source | TEXT |
report_type | TEXT |
revenue_selected_currency | FLOAT |
revenue_usd | FLOAT |
selected_currency | TEXT |
site_id | TEXT |
unique_users | FLOAT |
Sync note
We sync the Appsflyer attribution events from Data Locker and Webhooks into a common standard table EVENT
.
We sync the SKAdNetwork (SKAN) attribution events from Data Locker and Webhooks into the SKAN_EVENT
table.
We sync the Cohort analytics aggregate reports from Data Locker into the COHORT_EVENT
table.
We sync the following raw reports from Pull API V2 into a common EVENT
table.
AD REVENUE RAW DATA
ORGANIC AD REVENUE
ATTRIBUTED AD REVENUE
RETARGETING AD REVENUE
POSTBACKS
INSTALL POSTBACKS
IN-APP EVENT POSTBACKS
RETARGETING IN-APP EVENT POSTBACKS
RETARGETING CONVERSIONS POSTBACKS
PROTECT360 FRAUD
INSTALLS
POST-ATTRIBUTION INSTALLS
IN-APP EVENTS
POST_ATTRIBUTION IN-APP EVENTS
CLICKS
BLOCKED INSTALL POSTBACKS
RAW DATA REPORTS
(organic and non-organic)INSTALLS
IN-APP EVENTS
UNINSTALLS
REINSTALLS
RETARGETING
CONVERSIONS (RE_ENGAGEMENTS & RE-ATTRIBUTIONS)
IN-APP EVENTS
We sync GEO DAILY
aggregate reports (both UA and Retargeting) into a common GEO_DAILY
table.
Fivetran requires specific fields from the AppsFlyer Push API for schema generation and event de-duplication. When you register the Fivetran-generated Webhook URL for AppsFlyer attribution messages on your AppsFlyer dashboard, select the following fields to prevent data integrity issues:
app_id
appsflyer_id
event_name
event_time
event_value
The APIs that fetch data for the GEO_DAILY
table have a latency of 15 to 60 minutes. Latency can exceed one hour when fetching large amounts of data. Therefore, we perform a rollback sync for the GEO_DAILY
table with the rollback window size of 1 day to prevent data integrity issues.
Data retention
Data Locker events (stored in the AppsFlyer S3 bucket) have a retention policy of 14 days. We retain the Push API events we receive through webhooks for 30 days.
Pull API events have a retention policy of 90 days for raw data. Pull API aggregate data events have a retention policy of 5 years.
The AppsFlyer connector may not capture events in the following scenarios:
- The connector sync events from Data Locker, and you have paused the connector for more than 14 days.
- The connector syncs events from the Push API, and you have paused the connector for more than 30 days.