
In 2019 everyone worried about microtargeting: the idea that parties were whispering a different, tailored message into every voter’s Facebook feed. I spent that campaign watching the ads come in, doing research with Who Targets Me. Around 2020 I also sat down and hand-coded hundreds of ads from the 2017 and 2019 elections for tone, topic and who they featured.
That coding has now become a paper: Same Message, Thousands of Times: Targeted Facebook Advertising by British Parties at the 2017 and 2019 General Elections, free on Zenodo. The short version is in the title. The big parties did not write thousands of messages. They wrote a few and ran them thousands of times.
The preprint
Open access, free to read, share and cite. 12 pages, 8 figures. Not peer reviewed.
Cite as: Hotham, T. (2026). Same Message, Thousands of Times: Targeted Facebook Advertising by British Parties at the 2017 and 2019 General Elections. Zenodo. https://doi.org/10.5281/zenodo.23264729
What I used
Three things. First, 550 ads I coded by hand with one scheme for both elections: 157 from 2017, collected by Who Targets Me volunteers, and 393 from the Facebook Ad Library in the first half of the 2019 campaign. Second, all 20,135 ads that the Conservative, Boris Johnson, Labour, Jeremy Corbyn, Liberal Democrat, Brexit Party and Green pages started between the dissolution of Parliament and 9 December 2019. Third, the daily spending in Facebook’s Ad Library Report, plus Snapchat and Google for comparison.
Labour spent the most, and everyone spent late

Labour’s party, leader and candidate pages spent between £1.0 million and £1.3 million on Facebook and Instagram, depending on how you fill five days that Facebook’s report simply does not have. The Liberal Democrats and Conservatives each spent up to about £0.9 million, and the Brexit Party up to about £0.5 million. Spending ramped up hard at the end: on the last two days Labour and the Conservatives were each spending well over £100,000 a day.
The money also sat on very few ads. Of Labour’s 1,165 ads with spending ranges, 71% were in the lowest band (under £100), and the top tenth took about four-fifths of the estimated spend.

Lots of ads, not many messages
This is the bit I find most striking. The Conservatives started 9,137 ads and the Liberal Democrats 7,930. Labour started 853. But count distinct texts and the gap collapses: 452 for the Conservatives, 174 for the Liberal Democrats, 156 for Labour.

The Conservatives put 63% of all their ads behind just five texts. One of them, “Let’s end the chaos and uncertainty and make Parliament work for you again”, appeared in 2,479 ads, almost all launched between 1 and 4 December. Next came an NHS investment message (1,161 ads) and “We need to get Brexit done so we can focus on your priorities” (953). Measured as an effective number of messages, the Conservatives ran the equivalent of nine. The Brexit Party, at the other extreme, never used one text more than 36 times.


Identical text does not mean identical ads. Images, headlines and audiences can differ, and the archive did not show the targeting criteria. Smaller families with varied images look like the A/B testing I wrote about during the campaign. A burst of two thousand copies of one line in four days looks more like the same message being pushed in front of as many audiences and places as the budget allowed.
I also looked at how the parties used (and avoided) Brexit and the campaign across every platform back then. The paper puts those threads together properly.
Did 2019 get nastier?
Across my coded ads, attack ads (negative, and featuring a rival leader) rose from 35% in 2017 to 52% in 2019. That sounds like a campaign turning sour. But most of the rise is one new party.
94% of the Brexit Party’s coded ads were attacks, nearly all aimed at Jeremy Corbyn, and the party did not exist in 2017. Compare the parties that ran in both elections and attacks did not rise. On a stricter definition (predominantly negative ads featuring a rival leader) they fell by 13 points. The Conservatives under Johnson were less negative in their coded ads than under May. Labour became more willing to attack, from 8% to 28% of coded ads, but ran those attacks in very few copies.

What the ads were about

Brexit dominated the Brexit Party and was a quarter or less of every other party’s coded ads in 2019. Labour’s ads were mostly about campaigning, the NHS and, a little, Brexit. Counting every ad rather than every distinct ad, 42% of Conservative ads mentioned Brexit and 31% the NHS. The Liberal Democrats named Johnson in a fifth of their ads and asked for tactical votes in 13%. The Brexit Party asked for money or volunteers in 86%.

So what?
The fear in 2019 was a thousand secret messages. What I found was closer to a handful of slogans run as widely as the money allowed. That fits work from other countries showing parties vary their messages less than the word microtargeting suggests. The real gap is transparency: the archive showed texts and counts but not who each ad was aimed at, and spending came in ranges and with missing days. If regulators want to know whether repeated texts were aimed at different groups, they need the targeting criteria.
The usual caveats apply, and they are in the paper. I coded every ad myself with no second coder. The 2017 ads are those volunteers happened to see, and my 2019 coding stopped on 23 November, before the big Conservative December push. Year-on-year comparisons are descriptive, not causal, and nothing here measures what the ads did to voters.
Read it
Hotham, T. (2026). Same Message, Thousands of Times: Targeted Facebook Advertising by British Parties at the 2017 and 2019 General Elections. Preprint, Zenodo. https://doi.org/10.5281/zenodo.23264729
It builds on my PhD at the University of Bath on how parties use Facebook and sits alongside my recent preprints on leaders, party pages and the polls and on the 2016 Facebook referendum. It is a preprint and has not been peer reviewed, so comments are welcome.
The views in this post and the paper are my own.
