At a glance: Enable attribution recording and postback sending to partners by connecting AppsFlyer to your integrated partners.
Setting up a non-SRN integrated partner
AppsFlyer integrates with your partners by API. This article contains the generic instructions to enable partner integrations and to generate attribution links of non-SRN partners.
- This guide is not applicable to SRNs. Use the links that follow to access SRN articles.
- Some partners (including non-SRNs) have dedicated articles. To search for these articles:
- In the breadcrumbs, in the header of this article, click Campaign management, to see the list of articles per partner.
- In AppsFlyer, go to Configuration > Integrated partners. Search for a partner, then click Learn how to integrate this partner
|Google Marketing Platform||Apple Search Ads||Google Ads||Snapchat||Tencent Social Ads||Yahoo! Search Ads||Verizon Media|
To begin working with a partner:
- Set up an account with the partner
- Configure the partner in AppsFlyer according to this guide
- Begin to attribute ad network installs and record post-install events
Partner types in the 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 not part of the AppsFlyer Protect360 anti-fraud solution.|
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.
Partner list by capability
To search and view 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:
E. Data richness
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.
Select a partner, the individual partner setup page displays. The page consists of the following parts:
- 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 erroneous
- 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|
Partner settings tabs
To set up attribution with a partner:
- In AppsFlyer, go to Configuration > Integrated Partners.
- Select an Integrated partner.
- Go to the Integration tab.
- Complete the required sections as necessary.
- For non-SRN ad networks, attribution link parameters are mandatory. See Attribution link tab.
- Complete the remaining settings tabs 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 us to connect 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
To configure in-app events postback:
Related reading: In-app event postbacks configuration.
|Click Save integration after making changes.|
Generate attribution links for the use of click (non-SRN) ad networks. Note! SRNs don't implement advertiser-generated attribution links so this tab is not relevant to SRN campaigns.
Generate attribution links, to share with the partner. Send the attribution link to the partner to attribute specific campaigns, ad sets, or single ads.
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.
Select which parameters you want to add to the attribution link.
|Name||Description||Attribution link parameter|
|Campaign||Compare different campaigns running with the media source.||c|
|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. If there are many publishers, we advise on 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.
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
For retargeting attribution complete the following:
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
Learn more about deep linking solutions.
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
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.
As AppsFlyer doesn't save partner 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
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
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). 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
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 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 displays, try again later
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 menu.
- 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
This tab is relevant to networks that provide cost data via API
The cost tab shows the status of your cost integration and the last time AppsFlyer pulled matching cost data.
Last successful data pull
The cost tab displays the last time cost data was pulled. If cost data has never been pulled, the sync message displays Cost Data was never successfully pulled.
Scenario 1: Stopped campaigns
AppsFlyer pulls cost for several campaigns that you run with ad network A. In the Cost tab, the message Last successful sync 2 hours ago is displayed on the same day you stop running campaigns with ad network A. Two weeks later, the Cost tab displays 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. The Cost tab displays 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, and so on) 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.
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.
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. 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.|
- 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 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.
- 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 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
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
Configure in-app event postbacks
Permit the agency to setup in-app event postbacks mapping to itself on the integration tab.
- 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.
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.
- 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.
- 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.
Testing with raw data
Raw data is where you can find the hidden gems of your marketing efforts. If your subscription plan 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 (IDFA or Advertising ID), agency name (called "Partner" in the report), and so on.