At a glance: Connect AppsFlyer to your integrated partners enabling attribution recording and postbacks.
When you begin to work with an AppsFlyer partner, first set up an account with the partner, then configure the partner in AppsFlyer. Doing so enables you to attribute ad network installs and to record post-install events.
See AppsFlyer Performance Index ranking the best mobile media sources by category and region.
Integrated partners list
To view the list of AppsFlyer integrated partners, in AppsFlyer, go to Configuration > Integrated Partners.
In the integrated partners list you can search for an integrated partner by:
- Free text search
- Partner activity
- Partner capability
- Data richness
- Partner type
Active partners filter
You can focus on your active configurations in the Integrated Partners list by selecting Active integrations. An active integration is an integrated partner, which is either enabled for attribution, cost, ad revenue, or that had at least a single attribution link click in the last 7 days.
You can filter the list of partners by the following capabilities:
- Cost: the partner has cost integration or sends cost data on the attribution link.
- Ad revenue: the partner has ad revenue integration.
- Retargeting: partner integration supports retargeting attribution.
- View-through: the partner integration supports view-through attribution of installs or retargeting.
- Audiences: the partner has Audiences connection.
While AppsFlyer allows advertisers to collect a vast variety of data, not every network provides all of it. This may result in partial information in reports and reduce advertisers’ ability to analyze and optimize their campaign efforts.
To help both advertisers to choose wisely, and ad networks to grow and improve their product, AppsFlyer developed a unique algorithm that analyses the data provided by the ad networks and calculates their data richness score.
The algorithm takes into account data coverage, accuracy, and granularity.
To filter by data richness score:
- select High, Medium, or Low.
To see the detailed score for each data category:
- Hover over the data richness badge. The score components are as follows:
- Campaign data (the partner provides Campaign ID, Campaign name, and other campaign-related parameters)
- Ad data (the partner provides Adset ID, Adset name, Ad ID, Ad name, Ad type, and other ad-related parameters)
- Publisher data (the partner provides Site ID, Subsite ID, Channel, and other publisher-related parameters)
Note, that the analysis is continuous and therefore, the score is dynamic. When ad networks extend or reduce their capabilities and quality of provided data, their data richness score changes accordingly.
When the amount of conversions attributed to the network in the last 7 days is too low, the data richness indicator appears as Disabled.
Integrated partner types
Most of AppsFlyer integrated partners aim at getting quality users for mobile marketers. Integrated partners types considered as media sources are Ad networks, affiliate networks, direct publishers, programmatic advertising, and China domestic ad networks
- Use their expertise to get high quality users from other ad networks
- Marketing Partners
- Similar to agencies, marketing partners excel in working with specific ad networks, and include Facebook marketing partners, Apple Search Ads marketing partners and Twitter official ads partners
- Retargeting Networks
- Ad networks specializing in running retargeting campaigns
- Third Party Platforms
- Integrated platforms, which are used for BI related purposes, including Analytics or Marketing automation platforms
- TV Attribution
- Partners enabling more accurate attribution of new installs to aired TV ads
- Fraud Detection
- External third-party anti-fraud systems, which are external to AppsFlyer Protect360 anti-fraud solution
- Select integrated partner types to filter the results of specific types.
- Click Clear All to clear all previous selections and see all types of integrated partners in the list.
Available tabs per partner type
When you select and click an integrated partner box, its setup window opens on the first tab that is available for the partner. There are up to 5 available setup tabs per partner, according to the partner type:
|Partner Type||Integration Tab||Attribution Link Tab||Cost Tab||Ad Revenue Tab||Permissions Tab||Notes|
|Media sources||Y||Y||Y||Y||Y||Including Ad networks, affiliate networks, direct publishers, programmatic advertising, China domestic ad networks, and Retargeting Networks.
For SRNs the attribution link tab is empty
|Agencies||N||N||N||N||Y||Stand-alone agencies that don't function as ad networks|
|Third party||Y||N||N||N||N||Analytics or Marketing automation platforms|
The first thing you need, to start working with an integrated partner, is to activate it.
In the Integration tab, enable Activate Partner:
- Enable setup of the integration tab parameters
- Allow for installs and events to be attributed to the partner
- Permit the partner to receive postbacks
Don't use the Activate Partner control to pause or turn off campaign attribution!
Disabling partner integration can cause irreversible damage to active campaigns.
For more details, FAQs and use cases about partner activation please click here.
Partner setup tabs
Follow the general steps below to setup attribution with the partner.
Regardless of the partner setup tab you are in, the Partner header is always present at the top of the page. It enables you to:
- Verify you're at the correct partner setup page
- Request AppsFlyer to help you connect with the partner's representatives
- Learn about the specific partner setup instructions, if there are any
Partner tab footer
The Partner tab footer is always at the bottom of the partner setup window. It enables you to:
- Back to list - Return to the Integrated Partners list with your previous active filtering
- Status message - current status of the tab's data (e.g., saving, saved , error, there are unsaved changes)
- Discard Changes - Undo the last changes without saving
- Save - save the last setup changes of the current tab only
The Integration Tab is divided into different sections. Partner integrations differ in their requirements and usually contain a sub-set of all possible sections described in the following sections.
This section is used for connecting the partner with AppsFlyer.
See Partner Activation paragraph above for details.
Some partners require connecting with AppsFlyer via a unique ID given to the advertiser by the partner. The ID is often referred to as app ID, account ID, user ID, or network ID.
Enable View-Through attribution
- When enabled, view-through installs sent by this parter are attributed.
- For SRNs this displays the view-through lookback window setting.
For non-SRNs, the setting is available in the attribution link tab, even if its not enabled. In this case, AppsFlyer disregards any set value set.
If attribution/integration is enabled for the partner, AppsFlyer is able to send postbacks relating to user actions like installs, launches, re-engagements, and rejected events.
Rejected events are in-app events blocked by Protect360 or events found to be non-compliant by target validation. In the case of rejected events, confirm with the partner that they have enabled reject event integration with AppsFlyer.
Define the source of the users that postbacks are sent for.
Select the event source "Only events attributed to this partner" for partner attributed users only. Select "Events attributed to any partner or organic" to have your entire user base available to be reported to the partner.
Permitted agencies can only select the Only events attributed to this partner option for default postbacks.
In-app event settings
In this section, you map AppsFlyer events with the partner via postbacks. If postback sending is enabled, this includes rejected in-app events (events blocked by Protect360 or events found to be non-compliant by target validation rules)
- Set the Partner ID again here, if required.
- Enable In-App Event Postbacks.
- Set the In-app event postback window, if required (read more about in-app event postback window configuration).
- Click Add Event to add an SDK Event to the list.
- Complete the following parameters:
|SDK event name||The name of the event, as received by AppsFlyer either from the SDK integrated in your app, or from server to server events.
Tip: Don't see the event you are looking for? Type in its SDK Event Name, click Create custom, and map normally. Read more about custom event mapping.
|Partner event identifier||
The unique name or ID of each event as defined on the partner's side. Possible mapping configurations are:
|Sending option||Select the sending option for the event:
Only events attributed to this partner for events coming only from users attributed to this partner
Events attributed to any partner or organic to have your entire user base available to be reported to the partner
|Send event data||
The SDK event name can either be selected or typed in.
Typed values are permitted to have white spaces before or after the name of the event, in which case they are underlined. Type in spaces ONLY if the event name is being sent from the SDK with the same spaces.
- Important: Event names are case-sensitive. To avoid discrepancies, make sure you use the correct event name for all media sources and app versions.
If the In-App Events Postback section doesn't exist in the Integration tab, it means that the partner has not yet set up in-app event recording with AppsFlyer in its preliminary configuration. The partner can contact the AppsFlyer partners team to finish the integration.
- To prevent advertisers from sharing too much information with third party Analytics platforms unintentionally, we have removed the Send all events option for Analytics platforms, as of March 2019. Analytic platforms configured prior to this still retain this setup option.
Attribution link tab
Note that AppsFlyer doesn't save your generated partner's attribution links.
For all SRNs, such as Facebook, Apple search ads, Google Ads, Snapchat etc. this tab is not functional, as they are not using external attribution links.
Attribution link parameters
This tab is divided into different sections:
In this section, select which parameters you want to add to the attribution link.
Adding parameters to the attribution link here enables you to later perform thorough drill-down analyses. Parameters that are already defined on the attribution link can be edited by adding them and their new values here.
- Campaign - add it to compare different campaigns running with the media source.
Attribution link parameter: c
- Adset - set ad set names to compare different ad sets within specific campaigns of the media source.
Attribution link parameter: af_adset
- Ad Name - set ad names to compare different creatives within specific ad sets within specific campaigns of the media source.
Attribution link parameter: af_ad
- Site ID and Sub Site ID - set Site ID parameter to attribute installs to specific publishers. If there are many publishers, we advise on limiting the number of used site IDs and using the sub site ID parameter, to avoid exceeding the site ID limitations.
Attribution link parameters: af_siteid and af_sub_siteid
- Subscriber Parameters - use any of the 5 subscriber parameters to insert useful values. Note that these parameters get parsed and appear in the raw data report, which makes them very handy for performing data aggregation or filtering.
Attribution link parameters: af_sub1, af_sub2, af_sub3, af_sub4, af_sub5
You can add any other parameter to the attribution link simply by typing it in a new parameter box. You can find all AppsFlyer available URL parameters here: AppsFlyer attribution link structure and parameters
When enabled, AppsFlyer recognizes a link as a retargeting attribution link, rather than a user acquisition link, by adding the
&is_retargeting=true to the click recording link.
Attribution link parameter: is_retargeting
The following setup below is displayed when retargeting is enabled.
Standard Link vs. OneLink
Select standard attribution link option if:
- You don't need to deep link with the URL or
- Plan to use only URI schemes for deep linking
Select Use OneLink for:
- Using a single link for both Android and iOS apps or
- Deep linking using Universal or app links
Note that selecting OneLink changes the click recording link from app specific to a OneLink URL.
Deep Link URL
Use this field if the link is meant to deep link users to any specific activity within your app.
Attribution link parameter: af_dp
You can find more information about deep linking solution in this guide.
Set the time period following the re-engagement, where the user's in-app events are attributed to the retargeting media source. You can set the value in days (1-90), hours (up to 23), or even lifetime.
Attribution link parameter: af_reengagement_window
This slider allows you to set the maximum time from click to install. Only installs (first launches) that take place within the lookback window may be attributed to the partner.
Attribution link parameter: af_click_lookback
More details about the click lookback window here.
Click attribution link
This is the attribution link that contains all the setup information you have set for it.
As AppsFlyer doesn't save partner's attribution links, copy the generated link and send it to the partner to be activated when your leads click on a corresponding ad.
View-through attribution lookback window
This slider allows you to set the maximum time from impression to install. Only installs (first launches) that take place within this lookback window, following an ad impression, are attributed to the partner, providing there was no other relevant ad click.
You can customize this value to 1-23 hours or 1-7 days.
Attribution link parameter: af_viewthrough_lookback
More details about the view-through attribution here.
Impressions attribution link
The impression attribution link contains similar attribution data to the click recording link (besides the different lookback window). Send it to the partner to be activated when a corresponding ad is watched, usually for 1 second or more.
- Cost data is reported by integrated partners on the click or by Cost API
- The best practice is to implement Cost API
- Cost API includes clicks and impressions reports
Enabling cost data by API
To enable the cost API:
- In the integrated partner Cost tab, enable Get Cost Data.
The credentials required to connect to the partner display.
- Get the required credentials from the partner dashboard or as directed in the AppsFlyer user interface.
- Complete the credential fields.
- If the partner cost configuration has Site ID mapping, select the desired site ID configuration from the dropdown.
- Click Save Cost.
- Click Test Connection.
- If the message:
- API connection verified displays:
- You have successfully completed the procedure. API is active. AppsFlyer collects data from the partner 6 times a day, on average once every four hours.
- Invalid Credentials displays, check the credentials and repeat the procedure.
- Something went wrong, try again later.
- API connection verified displays:
Site ID mapping
When reporting cost data, some partner integrations allow you to select how the site ID field populates. This means you can configure the site ID so that it matches the AppsFlyer site ID macros as they are in the attribution link.
- By default, site ID mapping is aligned with the AppsFlyer macros in the attribution link.
- If the attribution link you use has different macros than the site ID mapping options, site ID data will not populate correctly.
To select a site ID configuration method:
- In the integrated partner Cost tab, go to Site ID mapping, and select a configuration from the dropdown.
- Click Save Cost.
The change will take effect from the next day UTC. For example, if site ID mapping occurs on Monday, it will be reflected in data from Tuesday UTC.
Cost data sync status
The cost tab shows the status of your cost integration and the last time AppsFlyer managed to pull matching cost data. This is relevant for networks that support getting cost data via API.
Last successful data pull
The cost tab shows the last time cost data has been pulled yet. If cost data has never been pulled, the sync message shows Cost Data was never successfully pulled.
Scenario 1: Stopped campaigns
AppsFlyer pulls cost for several campaigns that you run with ad network A. You look in the cost tab and you see the message Last successful sync 2 hours ago. The same day you stop running campaigns with ad network A. Two weeks later, you look in the cost tab of ad network A. You then see the message Last successful sync 14 days ago.
Scenario 2: Ad network API issues
AppsFlyer pulls cost for several campaigns that you run with ad network B. You look in the cost tab and you see the message Last successful sync 2 hours ago. Ad network B then experiences issues with their API. It takes them a few hours to fix it. When you look in the cost tab you see the message Last successful sync 8 hours ago.
OAuth networks (Google, Facebook) allow you to sync several accounts for pulling cost data. For each synced account, AppsFlyer shows the status of cost integration and the last time AppsFlyer managed to pull matching cost data.
Ad revenue tab
If you act as a publisher displaying ads in your app, the ad revenue function enables you to attributes ad revenue to the media source that brought the user. About ad revenue attribution.
Enabling ad revenue attribution
There are a number of options available in attributing ad revenue.
- Check to see which method, aggregate or user-level attribution the partner supports.
- Follow the appropriate method in the ad revenue integration guide.
Ad revenue API status messages
|Active||The connection is live and pulling data.|
|No data found to pull.||The connection was successful. The partner did not have any data related to this app.|
|Partner API not responding. Contact AppsFlyer support.||The partner's server is not responding to AppsFlyer.|
|Invalid credentials. Enter updated credentials.|
|Something went wrong. Contact AppsFlyer support.||There is a technical problem. Contact AppsFlyer support.|
|Partner data not yet ready. If the problem persists, contact AppsFlyer support.|
|Data is being processed and will be available soon.||We are currently processing the data received from the partner. The data will be available in the dashboards and reports.|
|Data was never successfully pulled||If this status persists for a further hour contact AppsFlyer support.|
In the permissions tab you can enable various permissions. You can grant permissions even in cases where attribution is not enabled. Permissions are granted irrespective of partner type, meaning ad network, agency, or both.
When Ad Network Permissions is enabled partners see your app in their dashboard and are able to view data related to the app, You can grant additional permissions as described here.
When the ad network set up is performed by an agency then the ad network is not able to see either that they have been activated nor what permissions they have been granted.
In case you're working with the partner as an agency only, disregard the Ad Network Permissions section and go straight to the Agency Permissions section.
Ad network permissions
- Enable Ad Network Permissions.
- The app appears on the ad network's dashboard
- Permissions are granted only to this ad network
- The ad network admin can see basic data about the app
- Grant permissions to ad network team members:
The ad network admin has access to your app by default, but you can give specific ad network team members permissions to manage your app. Before you start, get the email addresses of the ad network team members and verify with the ad network that they are correct. To add team members:
- Click Add team member.
- Enter the email of the ad network team member.
- Click Add.
- Repeat as needed.
- Select addtional permissions to grant to the ad network:
- Allow to configure integration: permit the partner to set up the integration tab (except in-app event postbacks.)
- Allow to configure in-app event postbacks: permit the partner to map in-app event postbacks to itself on the integration tab.
- Allow access to your retention report: only to the partner's own retention data.
- Allow access to your aggregate loyal user data: only to the partner's own loyal user data.
- Allow access to your aggregate in-app events data: only to the partner's own in-app events data.
- Allow access to your aggregate revenue data: only to the revenue data attributed to the partner.
- Allow spend ingestion: is at the app level.
- Allow access to your Protect360 dashboard & raw data via API: only to the partner's own Protect360 data, and providing the feature is enabled for the advertiser.
Learn more about granting ad network permissions.
Use the following options to grant agency partners permission to manage their own configuration for your app:
- Reveal the agency permissions options.
- Enable the agency to get attributed with installs for the app.
- Enable the agency to see Facebook and Twitter promoted data.
Caution: Agency installs occurring while the control is disabled are not attributed to the agency and don't show up on the agency's dashboard and data (more details).
- Allow access to your Protect360 dashboard
- Allow access to your retention and cohort reports: retention/cohort data created by the users brought by the agency only.
- Allow access to aggregate organic data.
Allow access to raw-data reports.
- Allow to configure in-app event postbacks: permit the agency to setup in-app event postbacks mapping to itself on the integration tab.
- Events Sharing Permissions: select your preferred option here:
- Only events attributed to this partner: send only events from the agency's own brought traffic to the app,
- Events attributed to any partner or organic: send events from all sources of your traffic, including other media sources, agencies, and organic users.
- Allow to send event revenue: permit the agency to send events including their monetary value,
- Make sure to select specific events you want to grant the agency permission to. Click Add event and pick the event from the drop-down list. Do this for each event you want to add.
- Events Sharing Permissions: select your preferred option here:
Once you grant permissions to agencies, consider the following:
- When you grant permission to agencies, they can grant permission to manage your apps to the ad networks they work with. It’s the same as granting permissions to ad networks.
- If you work with an ad network, and your agency also works with this ad network, both of you can edit the ad network team members permission to view the app’s dashboard.
- If you see new ad network team members or missing team members that you didn’t add or remove, it’s possible that your agency added or removed them.
Learn more about working with agencies.
Why test integrated partners?
The AppsFlyer dashboard enables you to attribute campaigns with thousands of partners, who are integrated with AppsFlyer.
Prior to running campaigns with a newly added partner, test the integration.
Mistakes are most likely to occur during setup. Testing in advance avoids the risk of spending considerable resources, only to discover your attribution data is missing or erroneous.
Make sure to first test the app for basic SDK integration for organic and non-organic installs.
Testing attribution links
Regular ad networks, which consist of 99.5% of all integrated ad networks, use AppsFlyer attribution links. Similarly for owned media attribution, which is performed byusing AppsFlyer custom attribution links.
Since correct attribution depends on the parameters on their attribution links, it is a good idea to perform tests before you start any new campaign with a regular ad network or a custom attribution link.
After you finish creating an attribution Link for a new partner or campaign:
- Send the new attribution link to your registered test device (via email or QR code).
- Click on the link, make sure you are redirected to the app store.
- Install the app.
- Launch the app.
- Check if the install appears on the dashboard under the partner's media source name.
- Drill down to the campaign level (by selecting the partner in the Media source filter on the top of the overview page) to check the install appears under the correct campaign name.
- If necessary, continue to drill down and check the ad set and single ad levels too.
Testing self-reporting networks
SRNs, Facebook, Apple Search Ads, Google Ads, Snapchat, etc., do not rely on external attribution links for attribution purposes. Instead, SRNs receive queries from AppsFlyer, attribute themselves, and return the answer. Therefore, it is not feasible to test the integration separately from the network's system as with regular ad networks. You must test integration with every additional SRN you start working with.
To test SRN integration:
- Perform the full SRN setup on AppsFlyer
- If necessary, consult the specific partner's setup guide, Facebook, Google Ads, Twitter, Apple Search Ads, Snapchat.
- Run a new low-budget campaign with the SRN partner.
- When the partner's dashboard shows new installs check if they appear on AppsFlyer's dashboard under the partner's media source name.
- Drill down to the campaign level (by selecting the partner in the Media Source Filter at the top of the Overview page) to check the install appears under the correct campaign name.
- If necessary, continue to drill down and check the adset and single ad levels too.
If all is well you can start running new high-budget campaigns with the partner. Also, there's no need to repeat this test with new campaigns.
Advanced testing with raw data
Raw data is where you may find the hidden gems of your marketing efforts. Therefore, if your AppsFlyer account includes access to raw data, it should also take a part in your partner tests:
- After performing the test mentioned above go to the Export Data page
- Make sure the tested media source is selected
- Allow up to 15 minutes from the install and then download the Raw Data Installation Report
- Check the install records from the partner exist and include parameters such as the media source, campaign name, touch time and type, device ID (IDFA or Advertising ID), agency name (called "Partner" in the report) etc.