๐Ÿ“Œ The Swipe File

political ad inspiration ยท sourced from Meta Ad Library ๐Ÿ“Š Analytics โš– Compare ๐Ÿ“„ Playbook ๐Ÿ”‘ Access
โ† library ยท Methodology

How this dataset is built

Every figure on this site is reproducible from public data and a documented pipeline. Here's exactly how the 17,999 creatives and their analysis are produced.

122,038
ads collected
17,999
unique creatives
234
candidates
2018-11-06 โ€“ 2026-06-30
coverage window
1
Source โ€” Meta Ad Library API
Ads are pulled from Meta's public Ad Library API for U.S. Senate 2026 advertisers (234 candidates across 287 advertiser pages). We store spend and reach as the Ad-Library reported range midpoints, plus delivery dates, platforms, demographics, and regions.
2
Deduplication โ€” classify the creative, not the ad
Campaigns run the same creative as dozens of near-identical ad variants. We reduce each ad to a creative by hashing its normalized copy, collapsing 122,038 ads into 17,999 unique creatives (a 6.8ร— ratio). Analysis is done once per creative and shared back across its duplicate ads.
3
22-axis multimodal analysis
Each unique creative is classified once by a Claude Sonnet multimodal pass that reads both the image and the copy, tagging 22 visual and message axes โ€” issue, message type, framing, emotional appeal, production tier, format, symbols, and more. Structured JSON output enforces a fixed schema.
4
Performance proxies
We don't have click or conversion data (nobody does, from the public API). Instead we use two observable proxies: longevity (days an ad stayed live โ€” campaigns pause what underperforms) and reach (impression midpoints). The "what works" analysis correlates creative traits against these.
5
Refresh
The collection is re-captured on a cadence; because analysis is keyed to the creative hash, each refresh only needs to tag genuinely new creatives. Figures update as new ads are ingested. Last captured: 2026-07-02.

Caveats worth stating plainly

Questions about the data or licensing? See access & licensing.