Snapchat Ads Library avatar

Snapchat Ads Library

Pricing

Pay per event

Go to Apify Store
Snapchat Ads Library

Snapchat Ads Library

Search Snapchat's political ad library and get rows with exact spend, impressions and a computed CPM, the paying advertiser and the organisation, start and end dates, the creative URL, and the full targeting spec down to electoral districts. Any year from 2019.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

6 hours ago

Last modified

Share

Search Snapchat's political ad library: who paid, how much they actually spent, how many impressions they bought, and exactly who they targeted, down to electoral districts.

What you get

  • Exact spend per ad, not a range. Meta's library gives you "$1.000 - $4.999". Snap publishes the number. That single difference is what makes this dataset usable for real spend analysis
  • Impressions per ad, and cpm computed from the two, which is the comparison a media buyer or researcher actually wants and which the raw file leaves you to work out
  • The full targeting spec: gender, age bracket, countries, included and excluded regions, metros, postal codes, interests, languages and electoral districts. This is the part that shows who a campaign was really speaking to
  • Both sides of the disclosure: organization is who ran the ad, paying_advertiser is who paid, and they are frequently different entities
  • Any year from 2019, merged into one result and sorted by spend
  • Creative URLs, so the actual image or video is one fetch away

Where the data comes from

Snap publishes this itself, as a yearly ZIP on Google Cloud Storage with no key and no login. This actor downloads it, unzips it, normalises twenty-odd inconsistently named CSV columns into stable field names, merges the years you asked for, filters, computes CPM and sorts by spend.

That is worth saying plainly: you are not paying for access here, you are paying for the parsing. The file is public. What it is not is convenient: the column names carry spaces and parentheses and have shifted between years, the dates are in a non-standard format, multi-value targeting is comma-packed into single cells, and nothing is sorted.

Input

FieldTypeRequiredDefaultWhat it does
yearsarrayno["2026"]Which yearly datasets to search. 2019 onward
searchstringnoMatches organization, paying advertiser, committee and ballot information
countrystringnoCountry code or name; keeps only ads that targeted it
min_spendintegernoKeep only ads at or above this spend
limitintegerno500Ads to return, highest spend first

Output

{
"position": 1,
"ad_id": "71366643e9b37bcd2bc42e52ecce06ba8987836b2e5c7a110327ac9c67d7a5d6",
"year": 2024,
"paying_advertiser": "Harris for President",
"organization": "Harris for President",
"spend": 290000.0,
"currency": "USD",
"impressions": 7544365.0,
"cpm": 38.44,
"start_date": "2024-09-10",
"end_date": "2024-09-24",
"still_running": false,
"target_countries": [
"US"
],
"target_age_bracket": "18+",
"target_districts_included": [
"PA-07",
"PA-08"
],
"creative_url": "https://www.snap.com/political-ads/asset/..."
}

Use cases

Campaign spend analysis that does not need estimating. Filter to a year and an advertiser and you have the actual money, ad by ad, with impressions beside it. Most political ad research starts by guessing at spend from a range; here you do not have to.

Finding who is really behind a campaign. organization and paying_advertiser differ more often than you would expect, and committee_id ties an ad to a filed committee. That chain is the story in a lot of political ad reporting.

Targeting analysis at district level. target_districts_included shows which electoral districts a campaign bought. Comparing that against results, or against a rival's districts, is a question no other major ad library lets you ask.

Efficiency benchmarking. cpm across advertisers, geographies and years shows who bought attention cheaply and who overpaid. In testing, CPMs on the same platform ranged from about $5 to nearly $40.

Compliance and monitoring. Filter by country and min_spend on a schedule and you have a watch list for large political spend in a market.

How it compares

this actorreading the raw file yourself
Per 1.000 ads$1,00free
Column names stable across yearsyesno, they shift
Dates as ISOyesno, 2026/02/18 11:43:43Z
Multi-value targeting split into arraysyesno, comma-packed cells
CPM computedyesno
Multiple years merged and sorted by spendyesno

Being honest about it: the data is public and free. If you want one year and are happy in a spreadsheet, download the ZIP. This exists for when you want it as clean rows in a pipeline, across years, filtered and ranked.

Pricing

Two events. run_start costs $0,0010 per run. ad costs $0,0010 per ad written to the dataset, which is $1,00 per 1.000.

Limits and gotchas

  • Political ads only. Snap publishes no commercial ad library, so there is nothing here about brand advertising. The run says so rather than returning an empty result that looks like a failure.
  • totalSpend sums across currencies. A single result can carry USD, GBP, EUR, SEK, NOK and CAD at once, so that total is only meaningful when the summary's currencies shows one code. It is reported with that warning attached rather than presented as a figure.
  • Spend is what the advertiser had spent when the file was published, not necessarily the final campaign total, and Snap regenerates the files over time.
  • Each year is a separate download of 1 to 5 MB. Asking for eight years means eight downloads before any filtering, so a wide run takes a minute or two regardless of how few rows come back.
  • Snap's CountryCode column holds country names, not codes. It contains united states, not US. This actor accepts either form and maps it to what the file uses, because filtering US against it directly matches nothing and looks like "no ads targeted the US" rather than a broken comparison.
  • end_date is empty on ads still running, which is surfaced as still_running rather than left as a blank you have to interpret.
  • Targeting fields are only as complete as the advertiser's disclosure. Many ads set none, and those come back without the field rather than with an empty one.

FAQ

Does this cover normal Snapchat ads? No. Snap only publishes political advertising, so a commercial ad library does not exist to scrape.

Is the spend exact or a range? Exact, in the ad's own currency. This is the main advantage over Meta's library.

How far back does it go? 2019. Every year through the current one is available.

Why is total spend across mixed currencies? Because Snap reports each ad in the currency its account used. The summary lists which currencies are present so you can split before summing.

Can I get the creative? creative_url links straight to the image or video Snap hosts.