At a glance: Enable attribution measurement and postback sending to partners by connecting AppsFlyer to your integrated partners.
Set up an ad network partner (non-SRN)
AppsFlyer integrates with ad network partners by API. This article contains the generic instructions to set and turn on partner integrations and to generate attribution links for ad networks (AKA non-SRNs).
- This guide is not applicable to SRNs. Use the SRN explicit article.
- Some ad networks have dedicated articles.
Partner types in the ecosystem
The image that follows contains the different partner types that form the attribution ecosystem.
Related reading: AppsFlyer Performance Index ranks mobile media sources by category and region.
Run campaigns on your behalf.
|Agencies||Use their expertise to get high-quality users by running campaigns on your behalf. You can have a transparent or non-transparent relationship.|
|Marketing partners||Marketing partners specialize in working with specific ad networks. Examples: Facebook marketing partners, Apple Search Ads marketing partners, Twitter official ads partners.|
|Retargeting networks||Ad networks specializing in running retargeting campaigns|
|Third-party platforms||Provide BI-related services like analytics and 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 not part of the AppsFlyer Protect360 anti-fraud solution.|
AppsFlyer partner list
The list of AppsFlyer integrated partners is available in the dashboard. Filter the list by partner name or other attributes as described in the section that follows.
To search the integrated partner list:
In AppsFlyer, go to Configuration > Integrated Partners. Filter and view using the controls in the dashboard.
Partner list display
A. Text search
|Enter text to search for a partner|
D. Partner capability
The partner supports ...
In the case of iOS apps use the Apple Privacy filter to select:
The partner is indicated as "Active" if at least one of the following capabilities is turned on:
E. Data richness
Hover over the data richness badge to see the score components:
Related reading: Data richness score calculation for partners.
|B. Review and deactivate||
If you have active partner integrations that have had no conversions in the previous 30 days a warning displays. Deactivate these partners to prevent data privacy issues.
Invite new partners to AppsFlyer
If the partner you are working with is not yet integrated with AppsFlyer, you can send them an invitation link. Note that inviting partners can be done only through an Admin account.
To invite a new partner to integrate with AppsFlyer:
- In the partner list, click Invite new partner.
- Enter the partner's name and relevant email address.
The partner will receive an email with a registration link to start the signup process.
Ad network settings
To open the integrated partner setup page:
- [Prerequisite] Contact the ad network and open an account with them.
- In AppsFlyer, go to Configuration > Integrated Partners.
- Select the Integrated partner.
The integrated partner page, described in the section that follows displays.
The page is arranged in tabs.
Specific configuration details for each tab are detailed in this article.
About the integrated partner page
The page is structured as follows:
- Header containing:
- Integrated partner name.
- Link to request an introduction to the partner.
- Link to a dedicated partner article. If no dedicated article exists, this article displays.
- Partner capability badges.
- Settings tabs: The tabs available depend on the partner type and capabilities.
- Back to list: Return to the Integrated Partners list using the filtering options selected previously.
- Status message: Current status of the tab data (for example, saving, saved, error, there are unsaved changes).
- Discard Changes: Undo the last changes without saving.
- Save: Save the settings of the current tab only.
- Before 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 wrong.
- Make sure to first test the app for basic SDK integration for organic and non-organic installs
Partner setup page header
Applicable settings tabs per partner type
Additional tabs available: Cost, ad revenue, attribution link
Includes ad networks, affiliate networks, direct publishers, programmatic advertising, China domestic ad networks, and retargeting Networks.
|Agency||N||Y||Stand-alone agencies that don't function as ad networks|
|Third-party||Y||N||Analytics or marketing automation platforms|
To complete the settings tabs:
- Go to the Integration tab. Complete the sections as necessary.
- For non-SRN ad networks, you must complete the Attribution link tab.
- [Optional] Complete the remaining settings tabs (cost, ad revenue, web-campaign-to-app, and permissions as required.
Partner integrations differ in their requirements and can contain a subset of all possible options described in this section. There are some differences between iOS and Android settings.
Complete the sections as required.
To activate an integrated partner:
|Data sharing settings||
Data sharing settings control what data is shared with the partner via postbacks and reports.
For iOS apps, the following data sharing options apply:
Some partners require credentials for AppsFlyer to integrate with them. Partners refer to this ID as app ID, account ID, user ID, or network ID. If this field displays, get the ID from the partner dashboard and enter it in the field.
Enable view-through attribution
If enabled, view-through installs sent by this partner are attributed.
If the partner integration is on, AppsFlyer sends default 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.
To configure default postbacks for the partner, define the user source that postbacks are sent for:
Agencies, having permission, are limited to selecting Only events attributed to this partner for default postbacks.
In-app event postbacks
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).
To configure in-app events postback:
Related reading: In-app event postbacks configuration.
|Click Save integration after making changes.|
Generate and save attribution links for the use of click (non-SRN) ad networks, and send the attribution link to the partner to attribute specific campaigns, ad sets, or single ads. Note! SRNs don't implement advertiser-generated attribution links so this tab is not relevant to SRN campaigns.
To generate an attribution link:
Select either Use a single-platform link or Use OneLink.
Select Use a single-platform link if any of the following apply:
- You plan to use only URI schemes to open the app.
- You don't need to deep link with the URL.
Select Use OneLink if any of the following apply:
- You want a single link for both Android and iOS apps.
- You want to use Android App Links or iOS Universal Links to open the app.
- You want deep linking capabilities.
Note: Selecting OneLink changes the click recording link from app specific to a OneLink URL.
If you selected Use OneLink:
- Select which OneLink template you want to use to open the app (and potentially deep link).
- [Optional] Enter the Deep link value.
- [Optional] Enter the Additional deep link value.
- Add parameters for Android and iOS, as needed.
- [Optional] Select additional attribution parameters.
Attribution link parameters
Adding parameters to the attribution link enables you to 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. When saving the attribution link, all the parameters configured in this tab are saved.
Select which parameters you want to add to the attribution link.
|Name||Description||Attribution link parameter|
Compare different campaigns running with the media source.
|Adset||Compare different ad sets within specific campaigns of the media source.||af_adset|
|Ad Name||Compare different creatives within specific ad sets within specific campaigns of the media source.||af_ad|
|Site ID and Sub Site ID||
Set Site ID to attribute installs to specific publishers.
The site ID must be passed to AppsFlyer in the attribution link because it:
Note that a missing Site ID won't affect attribution. Learn more about Site ID parameter.
If there are many publishers, we advise limiting the number of used site IDs and using the subsite ID parameter, to avoid exceeding the site ID limitations.
|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.||af_sub1, af_sub2, af_sub3, af_sub4, af_sub5|
You can add other parameters to the attribution link by typing it in a new parameter box. You can use all AppsFlyer available URL parameters. Note that only URI scheme and OneLink parameters are encoded on the attribution link.
When retargeting is on: AppsFlyer recognizes a link as a retargeting attribution link, rather than a user acquisition link, by adding the
&is_retargeting=true to the attribution link.
Attribution link parameter: is_retargeting
To use your link for retargeting:
Turn on Retargeting settings.
- [Optional] Enter a URI scheme if you want a URI scheme to open the app.
- URI schemes are recommended as a fallback method to open the app if Universal Links or App Links fail.
- If you add a URI scheme here, it overrides any other URI schemes already in your OneLink template settings.
- URI scheme is added to the link in the af_dp parameter.
- [Optional] Turn on Ignore active users for retargeting.
- Set the inactive window to determine which users are considered active and inactive.
Set the re-engagement window to determine 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.
- The re-engagement window is added to the link in the af_reengagement_window parameter.
Use the setting to set the maximum time from click to install. Only installs (first launches) that take place within the lookback window are attributed.
Permitted range: 1-23 hours or 1-30 days.
Attribution link parameter: af_click_lookback
Learn more about click lookback window.
Click attribution link
This is the attribution link that contains all the setup information you have set for it. You can save the link for future reference by clicking Save attribution link.
To copy the click attribution link:
- Click Save attribution link.
- Copy the generated link.
Send the link to the partner to be activated when your leads click on a corresponding ad.
View-through attribution lookback window
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-24 hours.
Attribution link parameter: af_viewthrough_lookback
Learn more about view-through attribution.
Impressions attribution link
The impression attribution link contains similar attribution data to the click recording link (besides the different lookback window). You can save the link for future reference by clicking Save attribution link.
Click Save attribution link and then copy the generated link.
To copy the impressions attribution link:
- Click Save attribution link.
- Copy the generated link.
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. See the ad network cost integration table for full details on the supported dimensions, metrics, and features.
If an advertiser uses an agency to run their campaigns, the agency, and not the advertiser, should integrate with the relevant partners. Otherwise, if both the advertiser and agency integrate with a partner using the same credentials for the same app, cost data is duplicated.
Enabling cost data by API
To enable the cost API:
- Follow these integration instructions.
Cost data sync status
View your cost API status and the last time AppsFlyer managed to pull matching cost data in either the cost (and ad revenue) integration status dashboard, or in the individual ad network dashboard.
If you act as a publisher displaying ads in your app, the ad revenue function enables you to attribute ad revenue to the media source that brought the user. About ad revenue attribution.
Enable ad revenue attribution
- 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.|
|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.|
- Enable the partner to perform various actions and to access your data according to the available permissions.
- You don't have to have attribution integration enabled with a partner to grant them permissions.
- Ad network set up by an agency: When partner setup is performed by an agency, the advertiser can view neither the ad network activation status nor the permissions granted.
- If your relationship with the partner is as an agency only, disregard the Ad Network Permissions section and set the Agency Permissions section.
Ad network permissions
To grant permissions to an ad network:
- Enable Ad Network Permissions.
- The app appears on the ad network's dashboard.
- Permissions are granted only to the specified ad network.
- The ad network admin can see basic data about the app.
- Grant permissions to ad network team members:
- [Default] The ad network admin has access to your app by default.
- To grant specific team members permissions, you need to add them using their email addresses.
To add a team member:
- Click Add team member.
- Enter the email of the ad network team member.
- Click Add.
- Select additional permissions to grant to the ad network:
Allow the partner to ...
Capability granted. The partner can ...
Change integration parameters
Configure in-app event postbacks
- Create, define, and change postbacks settings.
- Caution! When this permission and Allow to configure integration are enabled simultaneously: the ad network has access to all attribution events. This includes organic traffic and non-organic traffic from all media sources.
Access retention report
Access the app retention report.
They will see only data that relates to their sessions.
Access aggregate loyal users data
Access their own loyal users metric.
Access aggregate conversions data
Access their aggregate conversion events metrics. This includes installs, re-engagements, re-installs, and re-attributions. Example: Aggregated campaign performance for ad networks report.
Access aggregate in-app events data
- Access to in-app event data (the partner has access to all in-app events data, including Protect360 in-app events data, not only to the events mapped in the postback configuration).
- Access ad monetization data which may include ad monetization events from other media sources.
Access aggregate revenue data
- Access in-app and ad revenue data attributed to users brought by the ad network. Note: This permission does not directly identify the ad revenue partner. However, if you have set the monetization event name to include the partner name, you may inadvertently disclose the identity of the monetization network.
Use ad spend ingestion
- Access the Ad Spend Ingestion window.
- The Ad Spend Ingestion window displays only the apps they have permission for.
- Send ad spend files for ingestion.
Access Protect360 dashboard & raw data
- Access their Protect360 dashboard (including ProtectLITE).
- Access raw data if you subscribe to one of the following: Protect 360, Validation rules, or raw data. ProtectLITE doesn't include access to raw data.
Access ad revenue raw data
Access their ad revenue data to use for UA optimization.
- 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.
- 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. Learn more about agency activation.
To grant permissions to an agency:
- Enable Agency permissions.
- Select the permissions to grant to the agency:
Allow the agency to... Capability granted. The agency can... Change Advanced Privacy configuration Allow the agency to change an ad network's Advanced Privacy data sharing setting. Access Protect360 dashboard & raw data
- The agency can access your Protect360 dashboard.
- Can access raw data if you subscribe to one of the following: Protect 360, Validation rules, or raw data.
For advertisers that work with ad networks through an agency, in order for both the ad network and agency to access data, the advertiser must integrate both the agency and ad network in AppsFlyer, and grant them both permission to access data.
If only the agency is integrated and granted permission, the ad network does not have access to the data.
Access retention and cohort reports Retention/cohort data created by the users brought by the agency only. Access aggregate organic data Access raw-data reports Get raw data reports relating to traffic attributed to the agency.
Configure in-app event postbacks
Permit the agency to set up in-app event postbacks mapping to itself on the integration tab. Add at least one event.
- Events Sharing Permissions:
- This partner only: send only events from the agency's own brought traffic to the app.
- All media sources, including organic: send events from all sources of your traffic, including other media sources, agencies, and organic users.
- Allow to send event revenue: Enable to permit the agency to send events including their monetary value.
- SDK Event Name: Click Add event and pick the event from the drop-down menu.
Make sure to select specific events you want to grant the agency permission to.
Learn more about working with agencies.
Test the integration
After integrating with an AppsFlyer partner, verify that the integration works properly according to the type of the partner.
Non-SRN ad network testing
Regular ad networks, which consist of 99.5% of integrated ad networks, use AppsFlyer attribution links. Similarly for owned media attribution, which is performed by using AppsFlyer custom attribution links.
Since correct attribution depends on the parameters on the attribution links, perform tests before you start to run a campaign with a non-SRN ad network or a custom attribution link.
To test attribution links:
- Create an attribution link.
- 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 in the AppsFlyer dashboard under the partner's media source name. Allow up to 30 minutes for the install to appear in the dashboard.
- 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.
SRNs such as Facebook, Apple Search Ads, and Google Ads don't 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 separately test the integration with each SRN you work with.
To test SRN integration:
- Perform the full SRN setup on AppsFlyer in accordance with 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 dashboard displays new installs check if they appear in the AppsFlyer dashboard under the partner's media source name.
- In the Overview dashboard, drill down to the campaign level, by selecting the partner in the Media Source Filter, to check that the install appears under the correct campaign name. Allow up to 30 minutes for the install to appear in the dashboard.
- If necessary, continue to drill down to check the adset and single ad levels.
If all is well you can start running new high-budget campaigns with the partner. It is sufficient to test integration once per SRN partner. Meaning, there's no need to test on a per campaign basis.
Raw data testing
If your subscription plan with AppsFlyer includes access to raw data, you should test raw data.
To test raw data:
- After performing the test mentioned previously, go to Reports > Export Data.
- Select the tested media source.
- Allow up to 15 minutes from the install and then download the Installs 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 (if applicable), agency name (called "Partner" in the report), and so on.
Some ad networks require special actions to enable the collection of raw user-level data.
If you see a new install on the dashboard but don't see it in the raw data, consult the specific Help Center guide for the ad network, for example - Twitter.