At a glance: Plan your migration to AppsFlyer from another attribution vendor. Understand how to avoid double charges, data duplication, and data loss during the migration period.
Migrating to AppsFlyer from another vendor includes the following main tasks:
You can work on these tasks simultaneously. However, we recommend that you:
- Complete all of the tasks before releasing your updated app with the AppsFlyer SDK.
- Pause existing marketing campaigns before performing the device ID migration.
The following table describes the scope of work required for each task. To see a precise breakdown of the general tasks in the order you must accomplish them, as well as to record your progress, download this spreadsheet
|Task||Action required||Who's involved||Estimated time||Remarks|
|Prerequisites||Marketer/AppsFlyer dashboard user||
|Device migration [optional]||Migrate device IDs to avoid double attribution of your existing users.||Data engineer||1-2 weeks||
||Marketer/UA manager||1-3 weeks|
|Data report setup||
||Data engineer||2-4 weeks|
The AppsFlyer SDK integrated into the app is the link between the app and the AppsFlyer platform. It reports app installs, app opens, in-app events, and so on.
To integrate the AppsFlyer SDK:
- Integrate the AppsFlyer SDK into the app.
See the guides for Android and iOS SDK integration.
- Map in-app events you want to be recorded, using the AppsFlyer schemes.
This can be done via SDK or S2S.
- Remove the competing attribution vendor's SDK.
You can do this immediately and switch exclusively to AppsFlyer, or run both SDKs simultaneously for a few weeks. View a breakdown of these options in the table below.
Option What happens after
updated app version release
Impact Remove competitor's SDK (recommended) Only AppsFlyer records new installs and updating users.
Competitor still shows events performed by users, until the users update their app too.
- Fast transition.
- No double attribution.
Keep competitor's SDK for a transition period AppsFlyer and competitor attribute new installs and report events. At a later date, remove the competitor's SDK.
- Data validation is possible. Meaning, you can compare data from AppsFlyer and the other vendor.
- Double attribution, which may cause double charges with ad networks. See example below.
- Higher workload.
- After all other tasks in the scope of work are completed, update the app version with AppsFlyer SDK to the market. New users are attributed by AppsFlyer.
- Make sure to update the app for iOS, Google Play, and any relevant Android out-of-store markets.
- Your Android app may exist in unofficial APK sites, even if you don't know it (search the web for your app's package name to find out). APK sites take some time to update to the latest version, so they may bring organic users, which install old versions without AppsFlyer SDK.
- App update rollouts in the app stores can take a couple of days to fully complete. Users installing during this phase may still get the previous version.
About device migration
Device migration is the process of uploading a list of your existing user device IDs (IDFA, IDFV, GAID, CUID) into AppsFlyer. You should perform this process before releasing the new app version, which will include the AppsFlyer SDK. There are two options when migrating devices, attributed or non-attributed migration.
Device migration solves data issues associated with existing app users who downloaded the app, and were attributed by your previous vendor. For example, SRN double charges, which occur when users originally attributed to an SRN under your prior vendor, and who are still within the lookback window, are claimed by the SRN again under AppsFlyer.
- A new user clicks on an ad in Facebook and installs your app on June 15.
- On June 24 the user updates the app to the version with the AppsFlyer SDK, and launches. For AppsFlyer, this is a new user, that needs to be attributed in real-time.
- AppsFlyer queries Facebook with the user device ID. Because the user is still within Facebook's 28-day lookback window, Facebook self-attributes the user. This causes a double charge to the app owner for the same user.
Once you migrate devices, data reflects in AppsFlyer as follows:
- Installs data: Similar to re-installs, migrated devices have no install data. Migrated device installs are not displayed in AppsFlyer.
- In-app events and sessions data: Recorded and displayed as organic for non-attributed device migration method, or attributed to the media source and campaign, if using the attributed method.
- Retargeting: Re-attributions and re-engagements are displayed normally.
- Activity data: Displayed normally.
- Retention and cohort data: Migrated devices have no install record. As such, they aren't associated with any cohort, and can't be shown in the Retention and Cohort reports.
How to migrate devices
To migrate devices:
- Decide which user population to migrate. You can migrate all existing users (which may prevent you from getting accurate re-attribution data from AppsFlyer), or users that only recently installed your app (which may lead to double charges of somewhat older users).
We recommend migrating users who are active during your current re-attribution window period. For example, if your app has a 90-day re-attribution window, migrate those users who have at least one session during the previous 90 days.
- [Optional] Tell the marketer/UA manager to pause existing marketing campaigns (from SRNs, non-SRN ad networks, owned media, etc.) until after the device migration.
If you decide not to pause campaigns, migrate any remaining device IDs from the other vendor as soon as the updated app version with the AppsFlyer SDK is released to app stores.
- Prepare a CSV file based on the user population selected, using either the attributed or non-attributed migration structure. See sample CSV
- Send your AppsFlyer CSM the CSV.
Your CSM will migrate the device IDs to AppsFlyer.
Devices migrated to AppsFlyer with this method have their in-app events, and sessions recorded and displayed according to the media source reported by the previous attribution vendor, and according to the ad networks' data retention policies.
App ID as it appears in AppsFlyer dashboard
Device platform: ios or android
The original app install time with the ISO 8601 UTC format:
For more granular attribution details, supply the original campaign name.
For more granular attribution details, supply the original campaign id.
Format: String no spaces permitted
CSV file rules:
- CSV file can contain user devices from multiple apps.
- Do not duplicate the same combination of device ID and app ID in multiple rows. If duplication occurs, the last occurrence in the file is used.
- All column headers must be included: app_id, platform, device_id, id_type, install_time, media_source, integrated_partner, campaign, campaign_id. Note: The order of the fields is important and must be maintained.
- You can add both IDFV and IDFA for the same device, but they must be in separate rows. All fields in the separate rows should be the same, except device_id.
- Each row must contain exactly 9 fields separated by commas.
- Leave non-mandatory fields empty (blank).
- Files can contain up to 20 million rows.
- If you have multiple files, give each file a unique name.
- Encode data using UTF-8.
- [Optional] Compress files using ZIP or GZIP.
Devices migrated to AppsFlyer with this method are recorded (but do not display) as organic users. Their in-app events and sessions are also recorded and displayed as organic.
CSV file rules:
- CSV file can contain user devices from multiple apps.
- Each row contains a single device ID per app.
- Files must include all column headers as follows:
- Option 1: File must include all column headers as follows: app_id,device_id
- Option 2: app_id,device_id,id_type
- App IDs in lowercase
- Android identifiers in lowercase
- IDFA/IDFV in uppercase
- Up to 25 million rows permitted
Switch existing marketing campaigns to AppsFlyer to enable AppsFlyer attribution, and avoid duplicate charges and the loss of attribution data.
Note: You can choose to only migrate a few marketing campaigns at a time. In this case, you can segment the ones you want to migrate by media source (for example, ad network or agency), geo, or campaign.
SRNs reply to Mobile Measurement Partners (MMPs) when queried about engagements of specific devices. If two MMPs, for example, AppsFlyer and a competing attribution vendor, query the same SRN about the same device install, you may incur double charges.
To migrate SRN campaigns:
- Activate and configure relevant SRNs in AppsFlyer.
- SRNs can run multiple MMPs (except Facebook and Twitter).
- Facebook cannot de-duplicate in-app events.
Non-SRN ad networks
Ad network attribution links record the engagements of users and are subsequently used to attribute the engagements that become actual installs.
To migrate non-SRN ad network campaigns:
Owned media refers to attribution links you use in:
- Content sharing
- Social media posts
- Internet communities (Quora, etc.)
- and more...
For these campaigns, AppsFlyer uses OneLink custom links. OneLink custom links redirect users based on their device to the correct app store, directly into the app, or to a web URL/landing page.
To change your links for other vendors into AppsFlyer OneLinks:
- Contact your CSM, who will assist you with the bulk migration of all your links.
For SKAdNetwork (SKAN) attribution, you can only have one SDK update the conversion value. Otherwise, SKAN data is rendered meaningless. Therefore, make sure that after migration, only the AppsFlyer SDK updates the SKAN conversion value.
Data report setup
Adapt and map report structures
Before migration, your systems store your attribution data from your current vendor according to the reporting structures, fields, and parameters you have set up with them. For AppsFlyer to correctly report data, you must adapt and map your current report structures to AppsFlyer report structure, fields, and parameters.
To adapt/map your report structures:
- Contact your AppsFlyer CSM for help in quickly adapting/migrating your report data structures from Adjust, Branch/Tune, or Kochava to AppsFlyer.
Prepare report methods
You can get raw and aggregate report data from AppsFlyer using a number of methods. Familiarize yourself with the methods and set up the ones that are relevant to you.
Reporting methods include:
- Export CSV
- Push API
- Pull API
- Data Locker