I’m investigating an ongoing issue with our Twitter Ads API integration by which Tailored Audiences are found to be significantly smaller than the originally uploaded list.
- The lists we upload generally contain at least 97% real, non-suspended users (verified using the users/lookup API endpoint).
- The Tailored Audience File generator we built is correctly producing a CSV list of SHA-256 hashes of integer Twitter Account Ids (verified by comparing the output to that produced by Twitter’s own script here: https://github.com/twitterdev/ads-platform-tools/blob/master/python/hash_tailored_audience_file.py and the payloads generated by the in-browser uploader here: https://ads.twitter.com/accounts/18ce54k6258/audience_manager/create_list_audience)
As an example, a recently-uploaded list of 1,450,721 Twitter Profile ids resulted in a Tailored Audience of 843,938 which is a hit rate of 58.17%. We typically see rates as low as 40% to 60%.
Our current hypothesis relates to the idea that Twitter Ads only matches authors who are “active in the last 30 days” mentioned several times in this forum (though I’m struggling to find an obvious reference to this in the main documentation):
In order to test this, we require a clear definition of what is meant by an “active user”. This could mean several things:
- Someone who has tweeted as least once in the last 30 days
- Someone who has interacted with Twitter in any way in the last 30 days, i.e. a logged-in user that has sent requests to Twitter via a browser or app
- Someone whose user token has been used by an approved app to make requests to Twitter on their behalf in the last 30 days
I would therefore like to ask anyone from Twitter who is reading this:
What definition of an “active user” does the Twitter Audience file processor use to determine whether or not it should match on a specified user?
Are there any reasons besides inactivity (or account suspension etc) why a user would not be targetable in a Tailored Audience? For example, do users still have the ability to opt-out of targeting?
Assuming an “active user” is someone that has interacted with Twitter in any way in the last 30 days, is it possible to determine if a user is targetable ahead of time using the API? (If an “active user” is someone that has tweeted then clearly we can do this).
Do Tailored Audiences ever “refresh” by taking the original list of uploaded users and re-scanning for active users in the past 30 days? If so can this cause the list size to increase as well as decrease over time? And how often is the refresh?
Is it possible to investigate the specific Tailored Audience list on my Twitter Ads account that I mentioned above? I would like to know if inactive users is indeed the cause of the low match rate or what the issue is if not. The list in question is:
Tailored Audience Id: 2hqfa
Ads Account Id: 18ce54k6258
Uploaded size: 1,450,721 users (2.3% probably non-existent)
Actual size: 843,938
If someone at Twitter is able to answer these questions it would be greatly appreciated. We’re keen to understand this problem so we can either exclude non-targetable users or inform our app users on what to expect from the upload.
Thank you in advance