AppsFlyer integration summary

Stitch’s AppsFlyer integration replicates data using the AppsFlyer Raw Data Reports V5 API . Refer to the Schema section for a list of objects available for replication.

AppsFlyer feature snapshot

A high-level look at Stitch's AppsFlyer (v1) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on December 11, 2017

Supported by

Singer Community

Stitch plan

Standard

API availability

Available

Singer GitHub repository

Not applicable

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Unsupported

Column selection

Unsupported

Select all

Unsupported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting AppsFlyer

AppsFlyer setup requirements

To set up AppsFlyer in Stitch, you need:

  • To be the AppsFlyer Account Owner. Only Account Owners have access to API credentials in AppsFlyer, which is required to set up the integration.

  • Access to raw data exports in AppsFlyer. Stitch’s AppsFlyer integration uses the Raw Data Report API to replicate installation and in-app event data. Access to raw data is an AppsFlyer premium feature, which may only be available on their higher tiers.

    To determine if you have access to raw data pulling, follow these instructions in AppsFlyer’s documentation.


Step 1: Retrieve the app ID

Sign into your AppsFlyer account.

Depending on the app’s type (iOS, Android, or Windows), the app ID format will vary:

  • iOS - This will be the iTunes ID of your app. Example: id987654321.
  • Android - This will be the package name registered on AppsFlyer. For example: If the package is registered as com.stitchdata.test, the ID would be com.stitchdata.test.
  • Windows - This will be the Windows app ID. For example: f1e2d3c4b5a6

The location of each type of app ID is highlighted in the image below:

AppsFlyer app ID locations

Step 2: Retrieve the account's API key

  1. In the list of apps, click the app you want to replicate data from. This will open the app’s dashboard page.
  2. Under the Integration section, click API Access.
  3. Copy the key from the Your API Key field.

Step 3: Add AppsFlyer as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the AppsFlyer icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch AppsFlyer” would create a schema called stitch_appsflyer in the destination. Note: Schema names cannot be changed after you save the integration.

  5. In the App ID field, enter the ID of the app you want to replicate data from.
  6. In the API Token field, paste the API key from Step 2.

Step 4: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your AppsFlyer integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond AppsFlyer’s default setting of 60 days. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Note: AppsFlyer imposes limits on date ranges for replicating historical data. If the Start Date is more than 90 days from the current date, replication will be unsuccessful. Refer to the Historical AppsFlyer data limitations section for more info.

Step 5: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

AppsFlyer integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Initial and historical replication jobs

After you finish setting up AppsFlyer, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


AppsFlyer replication

Historical AppsFlyer data limitations

Due to limits imposed by AppsFlyer on date ranges while querying, only the past 90 days’ of historical data is available for any given app.

If the integration’s Start Date setting in Stitch is set to a date older than 90 days ago, extraction errors will occur and be surfaced in the integration’s Extraction Logs.

AppsFlyer API call limits and Replication Frequency

In addition to historical limitations, AppsFlyer also imposes a limit on the number of raw data API calls that can be made per day. Currently, the maximum is 10 API calls per day, per app and increases when upgrading to a higher AppsFlyer tier.

Each time Stitch requests data for an app - or a single AppsFlyer integration - two API calls will be used: One to replicate in_app_events, and one for installations.

If your Stitch AppsFlyer integration is set to replicate frequently (ex: every 30 minutes), you may quickly consume your AppsFlyer API quota. When this occurs, Stitch will pause replication and resume where it left off when more quota is available.

To avoid disruptions in replication, we recommend selecting a lower Replication Frequency, such as 12 or 24 hours.


AppsFlyer table reference

in_app_events

The in_app_events table contains information about in-app events for iOS and Android apps.

Replication Method

Key-based Incremental

Primary Keys

appsflyer_id

event_name

event_time

Replication Key

event_time

Useful links

AppsFlyer documentation

in_app_events schema on GitHub

AppsFlyer API method

advertising_id

STRING

af_ad

STRING

af_ad_id

STRING

af_ad_type

STRING

af_adset

STRING

af_adset_id

STRING

af_attribution_lookback

STRING

af_c_id

STRING

af_channel

STRING

af_cost_currency

STRING

af_cost_model

STRING

af_cost_value

STRING

af_keywords

STRING

af_prt

STRING

af_reengagement_window

STRING

af_siteid

STRING

af_sub1

STRING

af_sub2

STRING

af_sub3

STRING

af_sub4

STRING

af_sub5

STRING

af_sub_siteid

STRING

android_id

STRING

app_id

STRING

app_name

STRING

app_version

STRING

appsflyer_id

STRING

attributed_touch_time

DATE-TIME

attributed_touch_type

STRING

bundle_id

STRING

campaign

STRING

carrier

STRING

city

STRING

contributor1_af_prt

STRING

contributor1_campaign

STRING

contributor1_media_source

STRING

contributor1_touch_time

STRING

contributor1_touch_type

STRING

contributor2_af_prt

STRING

contributor2_campaign

STRING

contributor2_media_source

STRING

contributor2_touch_time

STRING

contributor2_touch_type

STRING

contributor3_af_prt

STRING

contributor3_campaign

STRING

contributor3_media_source

STRING

contributor3_touch_time

STRING

contributor3_touch_type

STRING

country_code

STRING

customer_user_id

INTEGER, STRING

device_type

STRING

dma

STRING

event_name

STRING

event_revenue

STRING

event_revenue_currency

STRING

event_revenue_usd

STRING

event_source

STRING

event_time

DATE-TIME

event_value

STRING

http_referrer

STRING

idfa

STRING

idfv

STRING

imei

STRING

install_time

DATE-TIME

ip

STRING

is_primary_attribution

BOOLEAN

is_receipt_validated

BOOLEAN

is_retargeting

BOOLEAN

language

STRING

media_source

STRING

operator

STRING

original_url

STRING

os_version

STRING

platform

STRING

postal_code

STRING

region

STRING

retargeting_conversion_type

STRING

sdk_version

STRING

state

STRING

user_agent

STRING

wifi

BOOLEAN

installations

The installations table contains information about iOS and Android app installations.

Replication Method

Key-based Incremental

Primary Keys

appsflyer_id

event_name

event_time

Replication Key

event_time

Useful links

AppsFlyer documentation

installations schema on GitHub

AppsFlyer API method

advertising_id

STRING

af_ad

STRING

af_ad_id

STRING

af_ad_type

STRING

af_adset

STRING

af_adset_id

STRING

af_attribution_lookback

STRING

af_c_id

STRING

af_channel

STRING

af_cost_currency

STRING

af_cost_model

STRING

af_cost_value

STRING

af_keywords

STRING

af_prt

STRING

af_reengagement_window

STRING

af_siteid

STRING

af_sub1

STRING

af_sub2

STRING

af_sub3

STRING

af_sub4

STRING

af_sub5

STRING

af_sub_siteid

STRING

android_id

STRING

app_id

STRING

app_name

STRING

app_version

STRING

appsflyer_id

STRING

attributed_touch_time

DATE-TIME

attributed_touch_type

STRING

bundle_id

STRING

campaign

STRING

carrier

STRING

city

STRING

contributor1_af_prt

STRING

contributor1_campaign

STRING

contributor1_media_source

STRING

contributor1_touch_time

STRING

contributor1_touch_type

STRING

contributor2_af_prt

STRING

contributor2_campaign

STRING

contributor2_media_source

STRING

contributor2_touch_time

STRING

contributor2_touch_type

STRING

contributor3_af_prt

STRING

contributor3_campaign

STRING

contributor3_media_source

STRING

contributor3_touch_time

STRING

contributor3_touch_type

STRING

country_code

STRING

customer_user_id

INTEGER, STRING

device_type

STRING

dma

STRING

event_name

STRING

event_revenue

STRING

event_revenue_currency

STRING

event_revenue_usd

STRING

event_source

STRING

event_time

DATE-TIME

event_value

STRING

http_referrer

STRING

idfa

STRING

idfv

STRING

imei

STRING

install_time

DATE-TIME

ip

STRING

is_primary_attribution

BOOLEAN

is_receipt_validated

BOOLEAN

is_retargeting

BOOLEAN

language

STRING

media_source

STRING

operator

STRING

original_url

STRING

os_version

STRING

platform

STRING

postal_code

STRING

region

STRING

retargeting_conversion_type

STRING

sdk_version

STRING

state

STRING

user_agent

STRING

wifi

BOOLEAN

organic_installs

The organic_installs table contains information about organic installs.

Replication Method

Key-based Incremental

Primary Keys

appsflyer_id

event_name

event_time

Replication Key

event_time

Useful links

AppsFlyer documentation

organic_installs schema on GitHub

AppsFlyer API method

advertising_id

STRING

af_ad

STRING

af_ad_id

STRING

af_ad_type

STRING

af_adset

STRING

af_adset_id

STRING

af_attribution_lookback

STRING

af_c_id

STRING

af_channel

STRING

af_cost_currency

STRING

af_cost_model

STRING

af_cost_value

STRING

af_keywords

STRING

af_prt

STRING

af_reengagement_window

STRING

af_siteid

STRING

af_sub1

STRING

af_sub2

STRING

af_sub3

STRING

af_sub4

STRING

af_sub5

STRING

af_sub_siteid

STRING

android_id

STRING

app_id

STRING

app_name

STRING

app_version

STRING

appsflyer_id

STRING

attributed_touch_time

DATE-TIME

attributed_touch_type

STRING

bundle_id

STRING

campaign

STRING

carrier

STRING

city

STRING

contributor1_af_prt

STRING

contributor1_campaign

STRING

contributor1_media_source

STRING

contributor1_touch_time

STRING

contributor1_touch_type

STRING

contributor2_af_prt

STRING

contributor2_campaign

STRING

contributor2_media_source

STRING

contributor2_touch_time

STRING

contributor2_touch_type

STRING

contributor3_af_prt

STRING

contributor3_campaign

STRING

contributor3_media_source

STRING

contributor3_touch_time

STRING

contributor3_touch_type

STRING

country_code

STRING

customer_user_id

INTEGER, STRING

device_type

STRING

dma

STRING

event_name

STRING

event_revenue

STRING

event_revenue_currency

STRING

event_revenue_usd

STRING

event_source

STRING

event_time

DATE-TIME

event_value

STRING

http_referrer

STRING

idfa

STRING

idfv

STRING

imei

STRING

install_time

DATE-TIME

ip

STRING

is_primary_attribution

BOOLEAN

is_receipt_validated

BOOLEAN

is_retargeting

BOOLEAN

language

STRING

media_source

STRING

operator

STRING

original_url

STRING

os_version

STRING

platform

STRING

postal_code

STRING

region

STRING

retargeting_conversion_type

STRING

sdk_version

STRING

state

STRING

user_agent

STRING

wifi

BOOLEAN


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.