Twitter Ads Transparency Center Assessment

Update (December 2020): Twiter no longer allows political or issue-based political advertising on its platform since Novembre 2019. Ads previously published can still be accessed from Twitter’s Ads Transparency Center.

Twitter pledges to provide public access to political ads in its “Ads Transparency Center”:

We believe that transparency is a core part of who we are. As part of our commitment to be more transparent, we’ve created a place where you can search for advertisers and see the details behind ads.

This document presents the difficulties and limitations of Twitter’s transparency effort concerning political ads.

Introduction

Policies for restricted content

Twitter defines categories of prohibited and restricted content. Political content is one such category of restricted content. Twitter distinguishes two kinds of political content: “political campaigning” and “issue advertising”.

Twitter permits political advertising which includes political campaigning and issue advertising (Source).

These two categories are subject to different policies.

A political campaigning policy has been enforced from summer 2018 in the USA and policy enforcement for Australia, India, and EU Parliamentary elections began March 11th 2019. Political campaigning advertising is permitted worldwide except in the following countries: Brazil, Cyprus, France, Hungary, Latvia, Lithuania, Malaysia, Morocco, Pakistan, Portugal, South Korea, Vietnam.

Policy enforcement for issue advertising began October 2018. Issue advocacy advertising is permitted worldwide except in France where only get-out-to-vote ads are permitted.

Twitter Ads Transparency Center

October 24th, 2017, Twitter announced the launch of the Ads Transparency Center “in the coming weeks”. The Ads Transparency Center was effectively launched June 28th, 2018. Initially, it displayed only US federal election campaigning ads and it was extended to EU, India and Australia in February 2019.

Certification process

As part of its political content policies, Twitter requires some advertisers to pass a certification process.

Limitations

Policies and documentation are scattered

Documentation relevant to Twitter’s effort for political ads transparency in Europe, is scattered across numerous pages (1, 2, 3, 4, 5, 6, 7, 8, 9).

Statements are often duplicated in several places in exact or similar terms. All the pages do not seems to have been updated to reflect the March 2019 extension to the European Union. In particular, it is often unclear if a given statement applies to the US or worldwide and for which level of political campaigning (federal or state level; national or European) and in which cases the certification process is mandatory.

For instance, the issue ads FAQs applies worldwide, yet makes recurring references to the USA (bold ours):

Twitter’s Political Content Policy includes Issue Advocacy which applies to ads that refer to an election or a clearly identified candidate or ads that advocate for legislative issues of national importance. Note that this policy applies to promoted content related to federal, state, and local elections.

Will the issue ads policy cover other issues in the future? We are continually looking into these issues based on the U.S. political climate.

Does the policy apply to non-federal elections? Yes, all promoted political content will be considered an issue ad with a carveout for federal political content that is subject to a more stringent certification process.

The entire information regarding the list of topics that Twitter considers “legislative issues of national importance” subject to the issue advertising policy is:

Examples of legislative issues of national importance include but are not limited to: climate change, healthcare, immigration, national security, taxes. (Source).

Certification constraints are not clear outside the USA

Certification requirements are unclear outside the USA. In the help page for the certification process, we read:

As part of Twitter’s Political Content Policy and our overall commitment to transparency, we require that advertisers promoting political campaigning content go through a certification process. Note that this process only applies to advertising related to: US federal elections, US issue advocacy.

and immediately after, this contradictory reference to other countries:

Note: the certification process for Australia, India, and EU Parliamentary elections is closed.

The same ambiguity is found in the political content policy help page:

This policy applies to political content which consists of political campaigning and issue advocacy advertising.

Country-specific policies that require certification:

  • United States

Advertisers can start the certification process here.

Note: the certification process for Australia, India, and EU Parliamentary elections is closed.

The Ads Transparency Center FAQs and the Issue Ads Policy FAQs make it clear that certification is mandatory to publish any political ad:

Political Promoted Tweets

What information is shown for political advertisers?

Once an advertiser agrees to the updated Terms of Service from their certified political ads account, the Twitter account will appear in the Ads Transparency Center under the corresponding country’s advertiser list. (Source)

If you are an advertiser that promotes issue ads you need to get certified. (Source)

Which is consistent with an announcement made February 19th, 2019:

Enforcement of this policy will begin the week commencing March 11th in these countries, after which only certified advertisers will be allowed to run political campaigning ads on our service.

However, these pages state that the obligation only holds for ads related to the European elections and not to national elections and issue advertising:

Answers below apply to Australia, EU Parliamentary elections, India, and the United States. (Source)

Political campaigning ads for EU Parliamentary Elections ONLY must meet additional eligibility requirements and apply for certification. (Source)

The old title of the help page for the certification process prior to the extension to the European Union still appears: “How to get certified as a political campaigning advertiser in the U.S.”.

No comprehensive access to political ads

As of June 17th, 2019, the Ads Transparency Center consists of:

  • a search engine on Twitter’s ads;
  • the list of certified advertisers for political campaigning, for the USA, the European Union, Australia and India;
  • the list of certified issue advertisers for US issue advertising.

According to the Ads Transparency Center FAQs, “only ads from certified accounts per the Political Content Ads Policy are displayed in the ATC”. However, the Ads Transparency Center search bar gives access to advertiser timelines with no links to politics, such as a windshield dealer or pizzerias. The search bar does not give a mean to access the entire list of advertisers: this would require to search for all possible strings of characters.

Furthermore, from the content of the ads, it seems that the list of advertisers for political campaigning accessible through the Ads Transparency Center relates only to the European parliament elections. The Ads Transparency Center currently provides no way for researchers to access all political ads concerning national politics or issues.

Only a subset of political ads is shown

Twitter offers a wide range of advertising formats: “Promoted tweets” and “Promoted-only tweets”, “Promoted Accounts”, “Promoted Trends”, “Twitter Promote Mode”, “In-stream Videos”, “Conversational Ads”, “First View”, “Spotlight”, custom emojis… While political campaigning ads may only be promoted via the use of Promoted Tweets and In-Stream Video Ads, the issue advertising policy does not impose such a restriction. Yet currently, only Promoted Tweets appear in the Ads Transparency Center.

“In-Stream Video” political campaigning ads are thus not referenced in the Transparency Center, as well as all issue advocacy ads except Promoted Tweets. We have not been able to assess what proportion of all political ads this represents, in terms of numbers or spending.

Data cannot be downloaded

All the information provided by the Ads Transparency Center is tied to the interactive user interface. It cannot be downloaded as a file to be reused.

This means that researchers who want to conduct quantitative studies on Twitter ads first have to reverse engineer the user interface of the Ads Transparency Center. This is time consuming, requires advanced programming skills and entails potential violations of Twitter’s Developer Agreement on reverse engineering.

API is not documented

The Ads Transparency Center relies on an API to access data from Twitter. We have identified the following endpoints:

GET https://ads.twitter.com/transparency/political_advertisers.json
GET https://ads.twitter.com/transparency/user_metadata.json
GET https://ads.twitter.com/transparency/tweets_timeline.json
GET https://ads.twitter.com/transparency/line_item_metadata.json
GET https://ads.twitter.com/transparency/tweet_performance.json
GET https://ads.twitter.com/transparency/data/line_item_delivered_targeting_criteria.json
GET https://ads.twitter.com/transparency/data/line_item_targeted_audience.json

Unfortunately, this API is not publicly documented. This means that these endpoints can be affected by future breaking changes without notice to its external users, making any research based on it brittle.

Authorization tokens expire frequently

Having a Twitter account is not a requirement to access the Ads Transprency Center. Yet, access to the API endpoints is subject to a complex and undocumented process of temporary authorization.

The JavaScript bundle of the Ads Transparency Center comes with a “bearer token” that is used with the endpoint POST https://api.twitter.com/1.1/guest/activate.json to request temporary “guest tokens”. Even though we could not find official documentation about these guest tokens, we observed that they need renewal after a few dozen requests before they become invalid. This makes it cumbersome to do large-scale analysis.

API returns frequent errors

We observed availability issues on the Ads Transparency Center API. An error with HTTP code 500 (Internal Server Error) is returned with body {"errors":[{"message":"Internal error","code":131}]}.

These errors are transient (go away on retry) most of the case. However, on June 7th, for several hours we could not access the data about the targeted audience (endpoint line_item_targeted_audience.json) of the second campaign (id f2ajd) promoting a tweet about the EU parliamentary elections.

This could entirely be avoided if the data could be downloaded.

Poor data integrity

Twitter expresses a strong commitment to ensure public access to its promoted political content, with no time limitation, whether for political campaigning:

If you are a candidate running for a general election in supported countries you must always use your dedicated political campaigning ads account and all your Promoted Tweets will display a ‘Promoted (political) badge, disclaimer information, and show in the Ads Transparency Center indefinitely. […] All political campaigning ads targeting the US, EU, India, and Australia from non-certified accounts will be halted. (Source)

or issue advertising:

Promoted Tweets created from the dedicated issue ads account will show in the ATC indefinitely. Promoted Tweets from non-political advertisers will be available for seven days. (Source)

However, we have not seen this pledge honoured upon analysis.

Data can be removed at will by the advertiser or by Twitter

From the Ads Transparency Center FAQs, it becomes clear that data integrity is not guaranteed in any way since both the advertiser and Twitter may decide to halt the exposure in the Ads Transparency Center:

Country withheld ads will only appear in countries where the content is allowed.

If an advertiser deletes a Promoted Tweet or their Twitter @username, their tweets will no longer show in the ATC.

If an ad is reported and taken down from Twitter, it will be tombstoned in ATC within approximately 24 hours. If the account was suspended, tweets will not be shown in the ATC. The same applies to deleted users and tweets.

If the @username no longer exists, all associated ads will no longer appear in the ATC.

In case of suspended content, Twitter states that the reason for suspension is made public:

When you search for an advertiser, you’ll be able to see all Promoted Tweets that are currently running on Twitter, including Promoted-only Tweets, or if a Promoted Tweet was suspended and why.

Unexplained data removal

We are monitoring the content displayed in the Ads Transparency Center about European certified political advertisers, since June 7th, 2019.

We observed that among the 505 tweets classified as political advertising about the EU parliamentary election available on the Ads Transparency Center on June 11th 2019, 92 were removed by June 12th 2019. However, most of these tweets were still shown on Twitter as of June 19th, indicating that these removals were not justified by the content policies.

Here are some of the tweets that were removed:

Die #Bundeskanzlerin: “Danke dem BDI und Ihnen allen, dass Sie für Europawahl geworben haben. Damit haben Sie dazu beigetragen, dass Millionen Menschen zur Wahl gegangen sind.” Wir meinen: Nichts lieber als das! 🇪🇺 #TDI19 #WhichEurope https://t.co/kZRdCJedXT (original tweet, translation: “The #German Chancellor: “Thank you to the BDI and all of you for campaigning for the European elections. You have helped millions of people to vote.” We think: Nothing better than that! 🇪🇺 #TDI19 #WhichEurope https://t.co/kZRdCJedXT”)

“In Bezug auf die wirtschaftliche Stärke der USA und Chinas, ist Stillhalten keine Option für Deutschland, Frankreich oder die EU! Wir müssen Handel treiben können, mit wem wir möchten!” - @BrunoLeMaire spricht JETZT beim #TDI19! #WhichEurope https://t.co/7sNMJ9g6Kl (original tweet, translation: “With regard to the economic strength of the USA and China, standstill is not an option for Germany, France or the EU! We have to be able to trade with whomever we want”. - @BrunoLeMaire speaks NOW at #TDI19! #WhichEurope https://t.co/7sNMJ9g6Kl”)

“Wir müssen daran arbeiten, dass die Menschen Europa aus vollem Herzen als Ihre Heimat empfinden - egal en welchem Land sie leben.” - Dieter #Kempf beim #TDI19 #WhichEurope https://t.co/VekIuQkbJ9 (original tweet, translation: “We must work to ensure that people feel Europe is their home from the bottom of their hearts, no matter which country they live in. - Dieter #Kempf at #TDI19 #WhichEurope https://t.co/VekIuQkbJ9”)

“We will move forward on our legal sandbox model of permissive legislation on technology”- @KerstiKaljulaid at the #TDI19. #WhichEurope🇪🇪 https://t.co/MXxORuuCJ5 (original tweet)

#Bundeskanzlerin spricht über Fortschritte - “Deutschland ist durch die dreiprozentige Steigerung der Forschungsausgaben auch für internationale ForscherInnen attraktiver geworden!” #TDI19 #WhichEurope https://t.co/glM6XB8QJN (original tweet, translation: “Federal Chancellor talks about progress - “Germany has also become more attractive for international researchers thanks to the three-percent increase in research spending! #TDI19 #WhichEurope https://t.co/glM6XB8QJN”)

🇫🇷🇪🇺 @BrunoLeMaire “Wir brauchen die Besteuerung digitaler Großkonzerne. Und wir brauchen eine Mindestbesteuerung. Das momentane Steuersystem kommt denen zugute, die am meisten Geld haben und am besten beraten sind.” #TDI19 #WhichEurope Your turn, @GoogleDE & @FacebookDE https://t.co/bDy7O6pNxf (original tweet, translation: “🇫🇷🇪🇺 @BrunoLeMaire “We need the taxation of digital corporations. And we need minimum taxation. The current tax system benefits those who have the most money and are best advised”. #TDI19 #WhichEurope Your turn, @GoogleDE & @FacebookDE https://t.co/bDy7O6pNxf”)

Klartext von @peteraltmaier: “Eine teilweise Abschaffung des Solis ist nicht durchsetzbar - die Mehrbelastung für die verbleibenden ZahlerInnen ist nur eine verdeckte Steuererhöhung!” #TDI19 #WhichEurope 🇪🇺 https://t.co/BTZ2CwkscO (original tweet, translation: “Plain text by @peteraltmaier: “A partial abolition of the Solis is not enforceable - the additional burden for the remaining payers is only a hidden tax increase! #TDI19 #WhichEurope 🇪🇺 https://t.co/BTZ2CwkscO”)

Zurück in die Zukunft? @peteraltmeier meint: “Die vom #EuGh geforderte Erfassung der Arbeitszeit passt eher in die 80er Jahre des vergangenen Jahrhunderts und bedeutet für Firmen und #Arbeitnehmer zusätzliche Bürokratie!” #TDI19#WhichEurope https://t.co/vv8t7ZIq4d (original tweet, translation: “Back to the future? @peteraltmeier means: “The collection of the working time demanded by the #EuGh fits rather into the 80’s of the past century and means for companies and employees additional bureaucracy! #TDI19#WhichEurope https://t.co/vv8t7ZIq4d”)

“We have to be careful with regulation. Here in Europe what was intended as progress, poses a hurdle to start-ups.” @SchambachSays diskutiert gerade auf dem ersten Themenpanel #Entrepreneurship beim #TDI19. #WhichEurope (original tweet, translation: “We have to be careful with regulation. Here in Europe what was intended as progress, poses a hurdle to start-ups.” @SchambachSays is currently discussing on the first #Entrepreneurship panel at #TDI19. #WhichEurope”)

Olaf #Scholz: “Es darf keinen unfairen Wettbewerb geben. Darum wollen wir jetzt erreichen, dass es Vereinbarungen zur Mindestbesteuerung gibt und dass sichergestellt ist, dass die großen digitalen Unternehmen sich auch an der Finanzierung des Gemeinwohls beteiligen” #TDI19 https://t.co/30QtXrgAVm (original tweet, translation: “Olaf #Scholz: “There must be no unfair competition. This is why we now want to ensure that there are agreements on minimum taxation and that the large digital companies also participate in financing the common good” #TDI19 https://t.co/30QtXrgAVm”)

Bundeswirtschaftsminister @peteraltmaier meint: Schluss mit Bürokratie! #TDI19 #WhichEurope https://t.co/AJOuVgqnOo (original tweet, translation: “Federal Minister of Economics @peteraltmaier says: “No more bureaucracy! #TDI19 #WhichEurope https://t.co/AJOuVgqnOo”)

“Wir müssen das System öffnen und mehr private Bildungsinstitutionen zulassen, ohne dass das Bildungssystem zu elitär wird.” - .@thomasbachem beim #TDI19 #WhichEurope https://t.co/4q4K0kDMNY (original tweet, translation: “”We must open up the system and allow more private educational institutions without the education system becoming too elitist.” - .@thomasbachem at #TDI19 #WhichEurope https://t.co/4q4K0kDMNY”)

We observed another removal of two tweets between June 14th and June 15th:

Egal ob #Digitalisierung, #Klima oder #KI - ohne eine starke Industrie werden wir die Herausforderungen der Zukunft in DE nicht mitgestalten. Wir freuen uns deshalb auf die Woche der Industrie vom 9. bis 24. September 2019 💪🔥Alle Infos unter https://t.co/U0ysAd31k5 https://t.co/FVEizccdyg (original tweet, translation: “No matter if #digitalization, #climate or #KI - without a strong industry we will not shape the challenges of the future in DE. We are therefore looking forward to the Industry Week from 9 to 24 September 2019 💪🔥Alle Information at https://t.co/U0ysAd31k5 https://t.co/FVEizccdyg”)

Wil jij beleidsmedewerker worden bij de grootste politieke partij van Nederland? Solliciteer nu 👇 (original tweet, translation: “Would you like to become a policy officer at the largest political party in the Netherlands? Apply now 👇”)