X Ads (formerly Twitter Ads) setup guide—FAQ and discrepancies

At a glance: Resolve X Ads FAQs and understand discrepancies.

X Ads FAQ and discrepancies

Who can perform the 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:

  1. Sign in to Twitter.
  2. On the left menu, click More > Settings and Privacy.
  3. Go to Security and account access > Apps and sessions > Connected apps.
  4. Click AppsFlyer.
  5. 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. 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 X Ads Account appears in the Twitter configuration in AppsFlyer dashboard.

If one of your team members also has an X 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 X Ads Account to also appear in AppsFlyer, they need to give your handle access as account administrator to their X 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 X Ads Account to appear in the AppsFlyer account, she needs to give your handle access as account administrator to her X Ads Account. Jenny needs to give access to Nivi to her X 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.

  1. Jenny signs into ads.twitter.com
  2. She clicks on Account and then chooses Edit access to account


  3. Jenny then gives @nivi access to her X Ads Account as or Account administrator

  4. Jenny logs into the AppsFlyer account and goes to Active Integrations >> Twitter option
  5. At this stage, she can see her X Ads Account also listed.
  6. She can now see her X Ads account and configure the integration. The account admin can see all connected X Ads accounts.

    Jenny's view:


    Account admin view:


Any special instructions for agencies?

When an agency creates a new Twitter campaign, the campaign name must start with the agency name and an underscore (Example: "AgencyName_Campaign1").


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.

Is Twitter raw data available to agencies?

We don't provide Twitter raw data to agencies because their terms of service regard agencies as third parties.

I'm clicking save & close but the Twitter 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 occurred while saving Twitter configuration. Some accounts failed to update: 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. 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 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?

To establish the connection between AppsFlyer and Twitter, the advertiser MUST select an active account in the Twitter partner page on 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 Meta ads, these must be configured by the Advertiser.

For how long do you keep Twitter 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.

To avoid cost duplication, it is recommended that you define only one app per line item/campaign.

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:

  1. Log out of Twitter.
  2. Go to Active Integrations.
  3. in the Search Field, type "Twitter"
  4. Click on the Twitter icon,
    the partner setup window opens.
  5. In the Integration tab, click on Activate partner.
  6. Click on Login with Twitter,
    a Twitter login window opens.
  7. Sign in with your X Ads 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 Twitter 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 attribution works as specified above regardless of other sources.

AppsFlyer uses last click attribution (more information about AppsFlyer attribution available here).

Timezone differences

Twitter 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 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.


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.