At a glance: Integrate your Twitter Ads account with AppsFlyer to display attribution data of Twitter campaigns.
Mobile app promotion on Twitter
Twitter Mobile App Promotion is a method to promote apps on Twitter. It enables advertisers to promote their mobile apps with great App card design driving installs, app engagement, and deep linking. App users can easily install and engage with apps directly from the Twitter timeline.
Twitter user privacy
Starting November 20, 2019, Twitter users can control how they share information with advertisers:
- If user settings are set to prevent sharing of their engagement information with advertisers, their Twitter-driven installs and in-app events are omitted from raw data but are still attributed to Twitter.
- Aggregate attribution data reflect correctly in AppsFlyer and is not impacted by the Twitter policy.
- As a result, Twitter aggregate and raw data reports don't correlate.
Connecting your Twitter & AppsFlyer accounts

-
Login to your Twitter Ad Account on ads.twitter.com
- Clicking on the Ads button, at the top left corner of the page, redirects you to the Ads page.
- Click the App Installs or App re-engagements option under Select the objective for your campaign.
-
Choose your app and fill in the details in the form. Click on Set up conversion recording under Choose an app to promote
-
In the next screen, click on Manage mobile measurement partner.
- Click Manage AppsFlyer on the Manage mobile measurement partners page
- A notification appears to inform you that you are about to leave Twitter Ads to go to the AppsFlyer website, click Go to AppsFlyer and login to your Dashboard:
-
Go to the dashboard of your app and click Integrated Partners on the left bar.
-
Enter "Twitter" in the search field and click its logo to open Twitter's configuration window. The following screen appears:
- Accept the Twitter Terms and Conditions for Mobile App Conversion Recording (MACT) and click Save Integration.
- Toggle Activate Partner and click on Login with Twitter.
- Authorize AppsFlyer in the following window:
- Activate the partner to enable attribution and reveal the integration tab.
- Activate the required Twitter Ad account or accounts by clicking on the relevant check box and then Save & Close.
You have now connected your Twitter account with AppsFlyer!
Continue to Twitter's Attribution setup.
Twitter attribution setup
Active configuration tabs:
For a detailed description of the Partner Configuration Window Header, click here.
Integration tab
The Integration Tab is divided into different sections as described below. Partner must be activated on first visit, to enable its setup.
Ad account connected
Select the accounts to enable attribution.
Click-through attribution
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 Twitter.
You can customize this value to 1-23 hours or 1-30 days. We recommend setting the Click-through lookback window to 14 days, to align with Twitter.
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 Twitter, providing there was no other relevant ad click.
You can customize this value to 1-23 hours or 1-7 days. We recommend setting the View-through lookback window to 1 day, to align with Twitter.
Re-engagement settings
Twitter retargeting attribution includes only re-engagement conversions.
Activate the Re-engagement attribution toggle to start attributing re-engagements for Twitter.
Re-engagement click-through lookback window
Set the duration of the Re-engagement click-through lookback window (the maximum period of time after an ad is clicked, within which a retargeted user can be attributed to the ad). You can set the value in hours (up to 23) or days (1-30):
Re-engagement view-through lookback window
To start attributing impressions of retargeting ads, activate Re-engagement view-through attribution.
Then, set the duration of the Re-engagement view-through lookback window (the maximum period of time after an ad is viewed, within which a retargeted user can be attributed to the ad). You can set the value in hours (up to 23) or days (1-7):
Re-engagement window
Set the duration of the Re-engagement window (the period when 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:
In-app events postback
In this section you can map your AppsFlyer events with Twitter via postbacks.
- Toggle In-App Event Postbacks to ON
- Select the Sending Option for all SDK defined events.
- 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 - Click Add Event to add an SDK Event to the list
- Complete the following parameters:
Parameter Name | Description |
---|---|
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 - If you don't see the event you want in the list, make sure to activate the event on a device with a non-organic installation and recheck. |
Partner Event Identifier | The unique name or ID of each event as defined on Twitter's side. Obtain the corresponding Event ID from Twitter and set in the text field. |
Send Revenue | When unchecked - AppsFlyer sends all the parameters of the rich in-app event to the partner, except for the revenue parameter, which is contained in the af_revenue parameter. When checked - AppsFlyer sends all the parameters including the revenue value (if it exists in the event). |
Attribution link tab
Note
For all SRNs, such as Facebook, Apple Search Ads, Adwords, Twitter etc. this tab is not functional, as they do not use external attribution links.
Cost tab
- AppsFlyer gets cost details by API. Note: Cost data requires an Xpend subscription. Without Xpend, only click and impression data are received.
- Retroactive data: When the cost API is enabled, we pull active campaign retroactive data for up to seven days.
Geo | Media source | Campaign | Adset | Ad | Other |
---|---|---|---|---|---|
- | Yes | Yes | Yes | Yes | - |
Before you begin:
- In your Twitter dashboard get your credentials. You need:
- Twitter username/email
- Twitter password
To enable Twitter cost API:
- In the integrated partner Cost tab, enable Get cost, clicks, and impression data.
The Twitter cost button appears. - Click Twitter cost.
Popup to log in to Twitter appears. - Enter your Twitter username/email and password.
- Click Authorize app.
- Click Save cost.
Ad revenue tab
Ad revenue integration is not available for Twitter. To receive ad revenue data, integrate MoPub.
Permissions tab
In this tab, you can select the permissions to grant Twitter, whether the partner acts as an ad network, agency or even both. Note that even if attribution is disabled for Twitter, the permissions tab is active and you can grant control to Twitter.
Use these toggles to give the ad network permissions to handle its own configuration for your app:
Ad network permissions
- Allow to configure integration - permit the partner to setup the integration tab (except in-app event postbacks)
- Allow to configure in-app event postbacks - permit the partner to setup in-app event postbacks mapping 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 access to your Protect360 dashboard - only to the partner's own Protect360 data, and providing the feature is enabled for the advertiser
Learn more about granting ad network permissions.
Advanced Twitter setup video

FAQ and discrepancies
Who can perform the Twitter setup on AppsFlyer?
The user who is authorizing the integration between AppsFlyer and Twitter must have Twitter Account Administrator access.
What happens if no Twitter accounts are selected for attributing on AppsFlyer?
All attributions are for campaigns on the selected account. If no accounts are selected, no in-app events or attributions are sent to Twitter, even if the in-app event mapping is still visible on the Twitter Configuration window.
Do the account owner and the team members see the same Twitter data?
No. The account owner sees all of the connected Twitter accounts. Team members only see their connected Twitter accounts.
How do I disconnect Twitter from AppsFlyer?
You can disconnect AppsFlyer from your Twitter account. The following instructions assume that you are logged into your Twitter account using a desktop or laptop browser:
- Sign in to Twitter.
- On the left-hand side menu, click More > Settings and Privacy.
- On the right-hand side, under Data and Permissions, click Apps and sessions.
- Click AppsFlyer.
- Click Revoke Access.
You can now go back to your AppsFlyer account and connect a different Twitter account if you want.
Is it possible to attribute installs to multiple Twitter accounts?
Yes, but it requires some actions on Twitter's end. But first some background is required:
You can connect only one handle (also known as a twitter user) to your AppsFlyer account. When you connect this handle, your Twitter Ads Account appears in the Twitter configuration in AppsFlyer dashboard.
If one of your team members also has a Twitter Ads Account, this means that they have a different handle than yours and cannot connect their handle to AppsFlyer. This is because your handle is the one that is already connected with the AppsFlyer account. In order for their Twitter Ad Account to also appear in AppsFlyer, they need to give your handle access as account administrator to their Twitter Ads Account.
Say your team member is Jenny and her handle is @jenny. Your handle is @nivi and is the handle that is connected to AppsFlyer. In order for her Twitter Ads Account to appear in the AppsFlyer account, she needs to give your handle access as account administrator to her Twitter Ads Account. Jenny needs to give access to Nivi to her Twitter Ads Account and not that other way around. When she does so, AppsFlyer looks at Nivi's handle, and sees all the ad accounts that it is associated with, Jenny's included.
- Jenny signs into ads.twitter.com
- She clicks on Account and then chooses Edit access to account
- Jenny then gives @nivi access to her Twitter Ads Account as or Account administrator
- Jenny logs into the AppsFlyer account and goes to Integrated Partners >> Twitter option
- At this stage, she can see her Twitter Ads Account also listed.
- She can now see her Twitter Ads account and configure the integration. The account admin can see all connected Twitter Ads accounts.
Jenny's view:
Account admin view:
Any special instructions for agencies?
Yes.
When an agency creates a new Twitter campaign, the campaign name must start with the agency name and an underscore (Example: "AgencyName_Campaign1").
Note
To establish the connection between AppsFlyer and Twitter, the advertiser MUST configure Twitter to allow agencies to run Twitter traffic.
For more details go here.
Do you make Twitter's raw data available to agencies?
We don't provide Twitter raw data to agencies because in the Twitter terms of service regards agencies as third-parties.
I'm clicking save & close but Twitter's configuration is not saved! help!
If your app was subscribed to another attribution provider in the past, which was used to attribute Twitter installs, the following errors below when configuring Twitter on AppsFlyer's dashboard:
Error: The app is associated with a different attribution provider. Please associate it with AppsFlyer.
Alternatively, the following error may also appear:
Error: Error has occured while saving Twitter configuration. Some accounts failed to updated: XX Multiple provider ids to same (appid, conversionType) for event appid2872.
If the account selection does not save, this may be because the Twitter account in question was previously associated with a different provider at Twitter's end. To resolve this:
- Contact Twitter to remove the other provider from your end
- Select the Active Account name
- Click Save and Close.
- If this still doesn't solve the problem you will have to contact your previous measurement provider and ask to remove the past Twitter tags associated with your account.
How can I set up retargeting campaigns with Twitter?
For details of how to configure a Twitter Retargeting Campaign, click here.
Does retargeting affect in-app events sending to Twitter?
Yes. If retargeting is turned on, AppsFlyer doesn't send the af_app_opened event postbacks to Twitter, as per Twitter's request.
Note that even if the Twitter setup window allows this selection, the af_app_opened postbacks are not sent with retargeting.
How can I stop measuring Twitter attributions?
To deactivate the integration with twitter, uncheck all accounts and click Save & Close.
Can an agency measure Twitter attributions for advertisers?
Yes!
To establish the connection between AppsFlyer and Twitter, the advertiser MUST select an active account in Twitter's partner page in AppsFlyer's dashboard, so at least one Twitter account is checked.
Afterwards, the agency needs to connect its Twitter account directly from its own agency dashboard.
Can an agency configure in-app events for Twitter?
Agencies cannot configure in-app events for Twitter. Similar to Facebook, these must be configured by the Advertiser.
For how long do you keep Twitter’s user-level data?
Twitter requires attribution providers to delete its user-level data 3 months after the install. This means that the events performed by these users 3 months after they install the app are counted as organic.
Past aggregate data remains the same.
Why do I see duplicated cost data?
When you set up a campaign in Twitter, you can add multiple apps to the campaign. When Twitter reports the cost, the total campaign cost data displays under each app in AppsFlyer, and is not divided per app.
For example, if you run one campaign that costs $1,000 for both an Android and iOS app, then a cost of $1,000 displays in the AppsFlyer dashboard under both the Android and iOS apps. The cost is not split, for example, to $500 each.
I'm trying to link my Twitter account with AppsFlyer, but I get an error message
Your Twitter account needs to be an active Ad Account to receive attribution data from AppsFlyer.
To solve this issue:
- Log out of Twitter.
- Go to Integrated Partners.
- in the Search Field, type "Twitter"
- Click on the Twitter icon,
the partner setup window opens. - In the Integration tab, click on Activate partner.
- Click on Login with Twitter,
a Twitter login window opens. - Sign in with your Twitter Ad Account.
Discrepancies between Twitter and AppsFlyer
Although we work closely with Twitter, discrepancies might appear between the Twitter dashboard and the AppsFlyer dashboard/reports.
These are the common reasons for such discrepancies that advertisers should be aware of:
Cause | AppsFlyer | |
---|---|---|
Attribution window |
Twitter allows its users to configure the attribution window and supports both click-through and view-through attributions. By default - 14 days click-through and 1 day view-through. |
If you have not configured the AppsFlyer attribution lookback window for Twitter with the same values as in Twitter, discrepancies may occur. |
Multi-channel source attribution |
Twitter's attribution works as specified above regardless of other sources. |
AppsFlyer uses last click attribution (more information about AppsFlyer attribution available here). |
Timezone differences |
Twitter's timezone is defined by the advertiser's app configured timezone. |
AppsFlyer's default timezone is UTC±00:00, but can be set to any timezone by the advertiser. |
Install time differences |
Twitter shows installs based on the click time (referred to as "engagement time"). |
AppsFlyer displays the time of the first app open. |
Attribution touch type |
Twitter's attribution is based on their own clicks and impressions. |
AppsFlyer gives priority to click-through attribution over view-through attribution. If Twitter counts an impression and AppsFlyer is aware of an additional click within the click-through attribution window, the click from another source is attributed on AppsFlyer's dashboard. On Twitter, the impression is attributed and is presented on their dashboard. |
Twitter data sharing settings |
Twitter allows its users to NOT share their personal data with third parties. This data includes ads they interact with. The stats on Twitter dashboard reflect all engagements, including the users who have opted out from sharing the data. |
AppsFlyer shows the aggregate data of these Twitter users, but does not report their user-level raw data (more details). |
Twitter re-engagement logic |
Twitter counts unique users. If a user re-engages more than once as a result of the same campaign, Twitter shows these engagements as one conversion. |
AppsFlyer counts each re-engagement instance, and therefore, in a similar case, shows these engagements as multiple conversions. |
Notes
- While Twitter shows all installs of a retargeting campaign in the same place, on the AppsFlyer dashboard, installs are divided between the Overview page (new installs) and the Retargeting page (re-attribution and re-engagements).
- As a result of AppsFlyer's Validation Rules, results may differ in the dashboards as some installs are shown in Twitter and are not shown in the AppsFlyer dashboard.