What campaigns are trying to do with each ad.
| candidate | ads | creatives | ads / creative |
|---|---|---|---|
| OR — Jeff Merkley | 6,904 | 164 | 42.1× |
| SC — Annie Andrews | 3,249 | 148 | 22.0× |
| IA — Josh Turek | 4,008 | 201 | 19.9× |
| NM — Ben Ray Luján | 1,178 | 65 | 18.1× |
| TX — John Cornyn | 6,061 | 337 | 18.0× |
| WY — Cynthia Lummis | 859 | 51 | 16.8× |
| MI — Abdul El-Sayed | 6,355 | 394 | 16.1× |
| ID — Jim Risch | 476 | 31 | 15.4× |
Creative traits ranked by how much longer their ads stay live than the 12-day field average — a revealed-preference signal (campaigns keep what performs).
| trait | axis | lift |
|---|---|---|
| survey poll | cta visible | +116% |
| list building survey | message type | +92% |
| sign petition | cta visible | +75% |
| social security medicare | issue | +73% |
| housing | issue | +67% |
| jobs labor | issue | +51% |
| immigration | issue | +40% |
| ominous threatening | visual mood | +30% |
| trait | axis | lift |
|---|---|---|
| image heavy | text density | -48% |
| gotv mobilization | message type | -45% |
| unknown | candidate portrayal | -40% |
| vote | cta visible | -37% |
| no text | text density | -33% |
| unknown | visual format | -33% |
| education | issue | -32% |
| volunteer | cta visible | -30% |
Which issues the field is advertising on, and how salience shifts month to month.
| 07 | 08 | 09 | 10 | 11 | 12 | 01 | 02 | 03 | 04 | 05 | 06 | |
| democracy elections | 45 | 42 | 44 | 51 | 48 | 56 | 45 | 42 | 50 | 50 | 45 | 51 |
| candidate character bio | 17 | 19 | 11 | 18 | 17 | 5 | 12 | 16 | 16 | 17 | 18 | 19 |
| other | 5 | 8 | 13 | 9 | 10 | 11 | 15 | 12 | 11 | 10 | 12 | 9 |
| economy taxes | 11 | 6 | 9 | 7 | 7 | 8 | 5 | 11 | 10 | 9 | 8 | 7 |
| healthcare | 7 | 11 | 10 | 6 | 5 | 7 | 4 | 2 | 3 | 5 | 4 | 5 |
| immigration | 2 | 1 | 0 | 1 | 1 | 1 | 8 | 6 | 1 | 1 | 1 | 1 |
The look of the field — formats, production values, and emotional register.
Negativity over time, and which campaigns go negative most.
| candidate | attack | share |
|---|---|---|
| FL — Ashley Moody | 12 | 100% |
| AR — Tom Cotton | 122 | 51% |
| KY — Nate Morris | 5 | 50% |
| SC — Mark Lynch | 22 | 44% |
| NH — Chuck Morse | 33 | 43% |
| MN — Adam Schwarze | 3 | 43% |
| TX — Jasmine Crockett | 16 | 42% |
| IL — S Krishnamoorthi | 97 | 41% |
| IA — Thomas Laehn | 2 | 40% |
| TN — Robert Jones | 4 | 36% |
The longest-running ads in the field — median lifespan is 5 days; these are the outliers worth studying.
| advertiser | days live | reach (lower–upper) |
|---|---|---|
| Colin Allred | 300d | 20,000 – 24,999 |
| Colin Allred | 299d | 8,000 – 8,999 |
| Bluejay Rising | 296d | 250,000 – 299,999 |
| Colin Allred | 294d | 7,000 – 7,999 |
| Colin Allred | 294d | 7,000 – 7,999 |
| Colin Allred | 294d | 15,000 – 19,999 |
| Colin Allred | 294d | 9,000 – 9,999 |
| Logan for Kentucky | 285d | 8,000 – 8,999 |
| Logan for Kentucky | 285d | 5,000 – 5,999 |
| Logan for Kentucky | 285d | 8,000 – 8,999 |
| Logan for Kentucky | 285d | 4,000 – 4,999 |
| Logan for Kentucky | 285d | 4,000 – 4,999 |
This report is the summary. The full asset — every creative with all 22 axes, ad-level spend & reach, per-candidate reports, and the images — is licensable for your own analysis.
See access & licensing →
Source. Ads are pulled from Meta's public Ad Library API for U.S. Senate 2026 advertisers
(234 candidates, 287 advertiser pages), covering 2018-11-06–2026-06-30.
Spend and reach are Ad-Library range midpoints.
Analysis. Every ad is reduced to a unique creative by hashing its normalized copy, so
near-identical variants are counted once (122,038 ads → 17,999 creatives).
Each creative is classified once by a Claude Sonnet multimodal pass on 22 visual and message axes, then joined back to every ad that shares it.
Caveats. Effectiveness figures are observational, not causal — ad longevity is a
revealed-preference proxy (campaigns pause ads that underperform) and is not adjusted for budget, candidate, or
launch timing. Ad-Library ranges are wide. Read directional, not precise.
The Swipe File · generated 2026-08-27 · figures refresh as new ads are ingested.