01
This is not a presidential election
Every other country we cover has a paid campaign dominated by its national contest. Brazil inverts that. Federal and state deputy candidates account for 47% of domestic spend; the 15 presidential tickets that advertised at all account for 1.6%. Lula’s campaign, the largest, spent about R$6.5M on Meta; Flávio Bolsonaro’s official page about R$349.2K. A single governor race in São Paulo cost more than the whole presidential field.
Spend by who paid, bracket midpoints. Candidates are matched to the TSE register of 20,984 registrations; pages the register cannot place are classified by type.
The long tail
Half the candidates who advertised spent under R$6.6K, and 2,163 spent under R$1,000 in total. The top 1% of advertising candidates hold 25% of candidate spend; the top 10% hold 68%. Coverage of the register varies by office: 67% of senate candidates bought ads, against 45% of state deputy candidates.
The presidential field
| Ticket | Party | Ads | Spend | Impressions | First ad |
|---|---|---|---|---|---|
| Lula | PT | 2,783 | R$6.5M | ~381.8M | 4 Jul 2026 |
| Ronaldo Caiado | PSD | 1,115 | R$1.1M | ~189.1M | 6 Aug 2025 |
| Renan Santos | MISSÃO | 2,024 | R$846.8K | ~76.2M | 26 Feb 2026 |
| Clariana Barao | DC | 1,636 | R$429.5K | ~74.4M | 28 Jul 2026 |
| Flavio Bolsonaro | PL | 130 | R$349.2K | ~30.1M | 5 Apr 2026 |
| Veterinário Wilson Grassi | DEMOCRATA | 267 | R$248.5K | ~33.2M | 24 Jul 2025 |
| Escritor Augusto Cury | AVANTE | 354 | R$111.7K | ~27M | 13 Jun 2026 |
| Eduardo Girão | NOVO | 119 | R$77.1K | ~19.8M | 13 Jan 2025 |
| Zema | NOVO | 26 | R$30.1K | ~1.1M | 16 Mar 2025 |
| Pablo Marçal | PRTB | 27 | R$14.6K | ~2.9M | 21 Jan 2025 |
| Geraldo Alckmin | PSB | 6 | R$10.5K | ~1.1M | 24 Sep 2026 |
Tickets with at least R$10,000 of reported spend. Where a candidate runs several pages, all are summed.
Where the money went
Every advertising candidate is listed on the candidates page, with a page per candidate and per state race. Candidate spend by state follows population: São Paulo candidates spent R$93.8M, more than the next three states together. By party, PL candidates spent R$75.5M and PT candidates R$45.4M.
02
The incumbent’s megaphone
The largest advertiser in the entire archive is not a campaign. The page Governo do Brasil reported about R$74.5M of spend, 11 times Lula’s campaign. Brazilian electoral law bans institutional government advertising from three months before the vote, 4 July 2026. Between 1 January and the ban, government bodies spent R$48.2M on Meta, more than all 9,928 candidates combined (R$42.7M) over the same months.
R$81.6M
federal government pages, whole archive
R$33.9M
federal spend from 1 January up to the 4 Jul ban
R$9.3M
federal spend in the 30 days before the ban
R$2.8M
the same 30 days one year earlier
Government spend by month, all levels (federal in rust)
Months where federal pages carried more than half the government spend are in rust; months after the ban began are greyed. The final pre-ban month was 3.4 times the same month a year earlier.
The last days before the ban
Federal pages, spend per day
Who kept advertising after 4 Jul
Federal and state pages stopped almost to the day. Municipal governments did not: 334 city pages reported R$2.4M of spend during the ban period. The law exempts urgent public-utility messages; the ads we read are mostly ordinary promotion of a city administration’s record.
| Page | Ads | Spend | Impressions | Last ad |
|---|---|---|---|---|
| Prefeitura do Rio de Janeiro | 376 | R$596.8K | ~77.1M | 22 Sep |
| Prefeitura de Fortaleza | 115 | R$337.1K | ~38.5M | 26 Sep |
| Cidade de São Paulo | 265 | R$257.7K | ~102.4M | 27 Sep |
| Governo do Brasil | 17 | R$206.6K | ~9.7M | 7 Aug |
| Prefeitura De Ribeirão Preto | 69 | R$95.7K | ~17M | 16 Sep |
| Prefeitura de Curitiba | 342 | R$94.5K | ~18.6M | 25 Sep |
| Prefeitura do Recife | 394 | R$88.8K | ~30.9M | 26 Sep |
| Câmara Municipal de São Paulo | 69 | R$71.2K | ~18.1M | 24 Sep |
| Prefeitura Municipal de Maricá | 51 | R$53.6K | ~12.1M | 27 Sep |
| Prefeitura de Itajaí | 51 | R$50K | ~14.7M | 25 Sep |
Government pages are identified by the actor-attribution layer and grouped by name. The impersonation network described in section 5 was removed from these figures.
03
Campaigns obey the calendar
Explicit vote appeals are illegal before the official campaign opens on 16 August 2026. In the archive, the switch is visible to the day: vote appeals were under 2% of text ads in every month of the pre-campaign, 21% in August and 38% in September. Only 279 candidates asked for votes before the date, in 1,906 ads worth about R$356.3K, the largest share of that money (26%) in one state, RR.
The other switch runs the opposite way. Through the pre-campaign, 13% of text ads attacked an opponent; once the campaign opened, the share halved to 5.9%. Negative campaigning in Brazil is a pre-campaign phenomenon. The paid campaign proper is overwhelmingly promotional.
Attack ads, share of text ads by month
Vote appeals, share of text ads by month
The ramp
Domestic ads launched per day since 1 August
September alone accounts for 36% of every domestic ad in the archive and R$265M of spend. The Instagram-only share of ads fell from around 37% in June to 23% in September as campaigns bought both platforms at once.
Who gets attacked
Targets as named by the message classifier, lower-cased and grouped exactly; “Lula”, “governo Lula” and “PT” are counted separately.
04
The micro-ad machine
71% of domestic ads sit in Meta’s lowest spend bracket, under R$100, and 25% were live for a day or less. The typical advertising candidate ran 36 ads; 318 candidates ran more than a thousand. Campaigns are not buying reach, they are buying variants: one message, dozens of towns or audiences, a few reais each.
Left: ads by Meta spend bracket (upper bound). Right: ads by delivery duration; “still running” means no stop date at the newest snapshot.
Volume buyers
| Candidate | Office | Ads | Under R$100 | Spend |
|---|---|---|---|---|
| Eduardo Riedel | Governor, MS (PP) | 15,006 | 92% | R$1.3M |
| Alex Manente | Federal deputy, SP (CIDADANIA) | 11,164 | 79% | R$1.6M |
| Clau Camargo | State deputy, SP (PSD) | 7,246 | 93% | R$473.7K |
| Delegado Bruno Lima | Federal deputy, SP (PODE) | 6,268 | 87% | R$623.8K |
| DR. Fernando Máximo | Senator, RO (PL) | 6,153 | 94% | R$731.2K |
| Lucas Ribeiro | Governor, PB (PP) | 5,777 | 82% | R$766.3K |
| Natália Boulos | Federal deputy, SP (PSOL) | 5,762 | 96% | R$430.2K |
| Tome Abduch | Federal deputy, SP (REPUBLICANOS) | 5,569 | 79% | R$799.4K |
| Wilder Morais | Governor, GO (PL) | 5,383 | 80% | R$1.1M |
| Joao Azevêdo | Senator, PB (PSB) | 5,158 | 85% | R$441K |
One candidate, many pages
181 candidates advertised from three or more pages. One federal-deputy candidate in Rio Grande do Norte runs a page per municipality: 30 pages named “Kelps …” followed by a town, 482 ads. A family of candidates sharing the surname Ganem runs 43 pages for 10 candidates across 5 states and 5 parties, several of them split by issue: pages named for autism, fibromyalgia, oncology and public security carry the same candidate to different audiences.
Candidate pages whose name ends in an issue suffix. The same texts recur across the family’s pages; the coordination detector lists them as cross-page clusters.
05
Impersonating the state inside the political archive
Meta labels an ad political when the advertiser says so and attaches a disclaimer naming who paid. 59 pages declared the national postal service or a state traffic department as their payer, ran 11,287 ads that reached roughly 320.1M impressions for about R$5.3M, and sold fake job vacancies and exam registrations. Meta accepted the declarations and filed the ads as political. About half of the ads ran on pages whose names spell Portuguese words with Cyrillic and Greek look-alike letters, so that “Portal Nacional” is not the string a filter would match.
59
pages declaring Correios or a DETRAN as payer
11,287
ads filed in the political archive
~320.1M
impressions delivered
64%
of the ads on mixed-script page names
| Page name as shown | Declared payer | Ads | Spend | Active |
|---|---|---|---|---|
| Portal do Departamento | Departamento Estadual de Transito | 1,487 | R$821.9K | 4 Apr–7 Aug 2026 |
| Portal Nасiоnаl | DEPARTAMENTO ESTADUAL DE TRANSITO | 1,511 | R$631.3K | 19 Jan–22 Jul 2026 |
| Portal Еstаduаl | DEPARTAMENTO ESTADUAL DE TRANSITO | 259 | R$276.4K | 30 Jan–10 Feb 2026 |
| Роrtаl dа Uniао | Departamento Estadual de Transito | 260 | R$266K | 10 Jan–19 Jan 2026 |
| Ιnsсriсãо Gоν | EMPRESA BRASILEIRA DE CORREIOS E TELEGRAFOS | 729 | R$260K | 24 Sep–10 Oct 2025 |
| Vagas de Emprego | Empresa Brasileira de Correios e Telégrafos | 118 | R$245.2K | 29 Aug–30 Aug 2025 |
| Ιnsсriсãо Меc | Empresa Brasileira de Correios e Telégrafos | 320 | R$227K | 24 Aug–19 Sep 2025 |
| Ιnsсriсãо Мес | EMPRESA BRASILEIRA DE CORREIOS E TELEGRAFOS | 205 | R$215.2K | 25 Sep–30 Sep 2025 |
| Саnаl Nасiоnаl | Departamento Estadual de Transito | 350 | R$211.3K | 12 Feb–25 Jun 2026 |
| Ιnsсriсãо Νасiоnаl | EMPRESA BRASILEIRA DE CORREIOS E TELEGRAFOS | 326 | R$210.7K | 19 Sep–26 Sep 2025 |
Page names are reproduced character for character. Several contain Cyrillic а, е, о or Greek Ι and ν in place of their Latin twins.
What the ads said
- “Não precisa ter experiência! Os Correios estão com vagas abertas para os setores administrativo, operacional e de atendimento. As oportunidades estão distribuídas por mun”1,609 ads on 10 pages
- “Oportunidade real: cargos administrativos e operacionais nos Correios com jornada de 6h a partir de R$ 3.200/mês.”146 ads on 5 pages
- “Verifique se há pendências registradas em seu CPF antes do prazo final”81 ads on 2 pages
- “Ultimo dia para fazer sua Inscrição”73 ads on 1 page
What happened to them
Meta acted on 59% of the network’s ads after they ran, disabling the page or removing the content. The genuine bodies are in the archive too, under their own names: Detran/RS, Detran.SP, Detran Goiás. Their combined spend is a fraction of what the impersonators reported. The network was first classified as government advertising by our own pipeline, on the strength of the declared payer, and reclassified on 28 September 2026 once the pattern was found; the government figures above exclude it.
Impersonation network, ads launched by month
06
Enforcement after the fact
Meta’s archive records three kinds of after-the-fact action, each by replacing the creative with a notice. 155,864 domestic ads ran without a required disclaimer, 61,796 ran on pages Meta later disabled, and 6,864 were removed for breaking advertising standards. Together they delivered roughly 1.5B impressions before the action was taken, 1.6% of the archive’s upper-bound reach.
Impressions delivered by ads Meta later acted on, bracket midpoints. 9.4% of domestic ads carry one of the three notices.
Missing disclaimers, including the government’s
The disclaimer notice is the most common and the least consequential: the ad ran, the payer was not shown, and Meta’s notice now stands where the text was. The pages with the most such spend are public bodies, not fringe advertisers.
| Page | Ads without disclaimer | Spend | Impressions |
|---|---|---|---|
| Ministério da Saúde | 52 | R$529.3K | ~22.4M |
| Prefeitura do Rio de Janeiro | 200 | R$170K | ~18.6M |
| Governo do Estado de Minas Gerais | 83 | R$154.5K | ~23.7M |
| Nayra Del Duca | 560 | R$102.3K | ~1.9M |
| Governo do Brasil | 14 | R$98K | ~3M |
| Governo do Estado de São Paulo | 79 | R$79.4K | ~21.4M |
| UNICEF Brasil | 84 | R$72.6K | ~2.9M |
| Inst. Conhecimento Liberta | 291 | R$54.6K | ~2M |
Ads that ran without a disclaimer, by month
Removed for breaking the rules
Removals are rarer and more telling. 3,706 removed ads came from 598 candidate pages. The federal government page had 12 ads removed, worth about R$364.1K.
| Page | Type | Ads removed | Spend | Impressions |
|---|---|---|---|---|
| Governo do Brasil | Government bodies | 12 | R$364.1K | ~10.5M |
| Raquel Lyra | Candidates | 4 | R$154.5K | ~4M |
| Revista Oeste | Media | 44 | R$123.1K | ~5.3M |
| Elmano de Freitas | Candidates | 2 | R$117.5K | ~2M |
| Bolsonaristas SC | Civil society | 59 | R$107.3K | ~7.8M |
| João Campos | Candidates | 11 | R$93.8K | ~4.6M |
| JHC | Candidates | 3 | R$88.5K | ~1.1M |
| Voz do Congresso | Unattributed | 46 | R$77.4K | ~1.4M |
Spend that bought nothing
Across the 4,106 pages with at least 100 ads, the median page paid about R$6.76 per thousand impressions. A handful paid tens of times that, spending on ads almost nobody saw. It can be extreme geographic targeting; it can also be spend that exists to be reported.
Read this with care
Brackets, not amounts. Meta reports spend and impressions per ad as ranges (R$0–99, R$100–199, and so on up to R$1M+). Every figure here sums the midpoints of those brackets; the headline gives the summed lower and upper bounds. Only ads priced in BRL are summed (1,277 domestic ads on 59 pages in other currencies are excluded).
Text-based figures cover text ads. Tone, vote appeals and attack targets come from a message classifier that reads creatives of at least 40 characters. 79% of domestic ads have one; the rest are image-only, under the floor, or a Meta notice. Shares in section 3 are of classified text ads.
Running ads are under-counted. An ad’s spend bracket grows while it runs, and 373,285 ads that were still running were observed in one pull only (about R$65.1M at that reading). Among ads we observed twice, the reported lower bound grew several-fold between sightings. Treat spend for still-running ads as a floor.
Classification accuracy is measured. Triage (domestic, foreign or commercial): 98.6% on a 97-case labelled set at three iterations. Candidate attribution against the TSE register: 98.5% of ids correct. Message analysis: 96.3%. The impersonation network in section 5 is the case that failed: its declared public-body payer led the classifier to file it as government advertising until a rule was added on 28 September 2026 and the corpus re-classified. Details on the methodology page.
Our copy may be the only one. Every dated snapshot is kept. Ads and whole pages vanish from Meta’s archive between pulls; the ads that ran on later-disabled pages are visible here because we saw them first.
The report updates daily until the vote
Figures on this page are recomputed from each morning’s pull. Leave an address to receive the post-election edition.
Every election gets the same treatment: repeated archive collection before the vote, classification with published accuracy, and a public report. The elections covered and coming up are on the home page. Working on one of them? Get in touch.