Snapchat EU Ads Library Impressions & Targeting Extractor
Search Snapchat's EU ad transparency library by advertiser or creator, or browse all sponsored content, returning headline, creative, call to action, per-country impressions and targeting for each ad.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | Select the scraping mode: adSearch to search ads by advertiser, sponsoredContent to browse all sponsored content, or creatorSearch to search by creator. |
payingAdvertiserName | string | optional | For adSearch mode: advertiser name to search. Examples: nike, coca-cola, amazon |
countries | array | optional | EU country codes to filter ads by. Leave empty for all regions. Valid codes: de, fr, it, es, pl, nl, be, se, at, pt, cz, ro, hu, dk, fi, sk, bg, hr, lt, lv, lu, si, ee, el, mt, ie, cy. Note: UK (gb) is not supported by the API. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | Select the scraping mode: adSearch to search ads by advertiser, sponsoredContent to browse all sponsored content, or creatorSearch to search by creator. |
payingAdvertiserName | string | optional | For adSearch mode: advertiser name to search. Examples: nike, coca-cola, amazon |
countries | array | optional | EU country codes to filter ads by. Leave empty for all regions. Valid codes: de, fr, it, es, pl, nl, be, se, at, pt, cz, ro, hu, dk, fi, sk, bg, hr, lt, lv, lu, si, ee, el, mt, ie, cy. Note: UK (gb) is not supported by the API. |
startDate | string | optional | Filter ads active from this date (ISO 8601 or YYYY-MM-DD). Leave empty for no start-date filter. |
endDate | string | optional | Filter ads active up to this date (ISO 8601 or YYYY-MM-DD). Leave empty for no end-date filter. |
status | string | optional | Filter ads by their current status. |
creatorName | string | optional | For creatorSearch mode: creator username or name to search sponsored content |
maxResults | integer | optional | Maximum number of records to return. Note: adSearch mode returns up to 10 results per advertiser (API limit). |
proxyConfiguration | object | optional | Optional proxy configuration for requests. |
Download the published input schema
View complete JSON
{
"description": "Scrape Snapchat Ads Library / Ad Gallery for advertiser ads, sponsored content, and creator-sponsored posts.",
"properties": {
"countries": {
"description": "EU country codes to filter ads by. Leave empty for all regions. Valid codes: de, fr, it, es, pl, nl, be, se, at, pt, cz, ro, hu, dk, fi, sk, bg, hr, lt, lv, lu, si, ee, el, mt, ie, cy. Note: UK (gb) is not supported by the API.",
"editor": "stringList",
"prefill": [],
"title": "Countries",
"type": "array"
},
"creatorName": {
"description": "For creatorSearch mode: creator username or name to search sponsored content",
"editor": "textfield",
"prefill": "beauty",
"title": "Creator Name",
"type": "string"
},
"endDate": {
"description": "Filter ads active up to this date (ISO 8601 or YYYY-MM-DD). Leave empty for no end-date filter.",
"editor": "textfield",
"title": "End Date",
"type": "string"
},
"maxResults": {
"default": 200,
"description": "Maximum number of records to return. Note: adSearch mode returns up to 10 results per advertiser (API limit).",
"maximum": 10000,
"minimum": 1,
"title": "Max Results",
"type": "integer"
},
"mode": {
"default": "adSearch",
"description": "Select the scraping mode: adSearch to search ads by advertiser, sponsoredContent to browse all sponsored content, or creatorSearch to search by creator.",
"editor": "select",
"enum": [
"adSearch",
"sponsoredContent",
"creatorSearch"
],
"enumTitles": [
"Search Ads by Advertiser",
"Browse All Sponsored Content",
"Search Sponsored Content by Creator"
],
"prefill": "adSearch",
"title": "Scraping Mode",
"type": "string"
},
"payingAdvertiserName": {
"description": "For adSearch mode: advertiser name to search. Examples: nike, coca-cola, amazon",
"editor": "textfield",
"prefill": "nike",
"title": "Advertiser Name",
"type": "string"
},
"proxyConfiguration": {
"description": "Optional proxy configuration for requests.",
"editor": "proxy",
"nullable": true,
"title": "Proxy Configuration",
"type": "object"
},
"startDate": {
"description": "Filter ads active from this date (ISO 8601 or YYYY-MM-DD). Leave empty for no start-date filter.",
"editor": "textfield",
"title": "Start Date",
"type": "string"
},
"status": {
"default": "ALL",
"description": "Filter ads by their current status.",
"editor": "select",
"enum": [
"ACTIVE",
"PAUSED",
"ALL"
],
"enumTitles": [
"Active Only",
"Paused Only",
"All Statuses"
],
"prefill": "ALL",
"title": "Ad Status",
"type": "string"
}
},
"schemaVersion": 1,
"title": "Snapchat Ads Gallery Scraper",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
records | string | optional | Dataset containing all scraped Snapchat ad and sponsored-content records. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Snapchat ad and sponsored-content records with headline, creative, call to action, per-country impressions and targeting data.",
"properties": {
"records": {
"description": "Dataset containing all scraped Snapchat ad and sponsored-content records.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Snapchat ads and sponsored content",
"type": "string"
}
},
"title": "Snapchat EU Ads Library Impressions & Targeting Extractor Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
This definition is not present in the default published build. See the published README for available documentation.
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Snapchat EU Ads Library Impressions & Targeting Extractor
Under EU digital advertising transparency rules, Snapchat must publish every ad running in the bloc through a public Ads Library API. This actor reads that library directly — search by advertiser name, browse all publicly disclosed sponsored content, or search by creator — and returns each ad or sponsored post as a structured record with creative details, per-country impressions and targeting data, with no login required.
What this actor does
- Searches ads by advertiser name, with optional country, date-range and status filters
- Browses the full public library of all disclosed sponsored and branded content, with automatic pagination
- Searches sponsored content by a specific creator's username or display name
- Returns per-country impression breakdowns and raw targeting parameters for each ad
- Empty fields are omitted from records — a field only appears when Snapchat's library actually publishes that data
Output per ad (mode = adSearch)
adId,adName— unique ad identifier and the advertiser's internal name for itadAccountName,payingAdvertiserName— advertiser account and the paying entity as disclosed in the libraryprofileName,profileLogoUrl— public profile name and logo shown in the adheadline— ad headline textadType,adRenderType,creativeType— ad format, render type, and creative type (e.g.VIDEO,IMAGE)callToAction— CTA button label (e.g.SHOP_NOW,LEARN_MORE)topSnapMediaType,topSnapCropPositionmediaDownloadUrl— direct CDN link to the ad creativewebViewProperties— web view destination propertieslanguages— languages the ad targetsstartDate,status,reviewStatus,rejectionReasonsimpressionsTotal— total impression count across all regionsimpressionsMap— per-country impression breakdown (country code → count)targetingV2— raw targeting parameters from the librarystickers,dpaPreview— sticker and dynamic-product-ad preview data, when presentrecordType— alwaysadscrapedAt— ISO-8601 UTC scrape timestamp
Output per sponsored content item (mode = sponsoredContent / creatorSearch)
contentType— content type (e.g.SPOTLIGHT)contentUrl— direct URL to the sponsored content postthumbnailUrl— content thumbnailcreatorName,creatorUrl— creator who posted the content and their profile URLsponsorName,sponsorUrl— sponsoring brand's name and profile URLrecordType— alwayssponsoredContentscrapedAt— ISO-8601 UTC scrape timestamp
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | adSearch |
adSearch, sponsoredContent, or creatorSearch |
payingAdvertiserName |
string | – | Advertiser name to search, used in adSearch mode |
countries |
array | [] |
EU country codes to filter by (de, fr, it, es, pl, nl, be, se, at, pt, cz, ro, hu, dk, fi, sk, bg, hr, lt, lv, lu, si, ee, el, mt, ie, cy); leave empty for all regions. gb (UK) is not supported by the library |
startDate |
string | – | Filter ads active from this date (ISO 8601 or YYYY-MM-DD) |
endDate |
string | – | Filter ads active up to this date (ISO 8601 or YYYY-MM-DD) |
status |
string | ALL |
ACTIVE, PAUSED, or ALL |
creatorName |
string | – | Creator username or name to search, used in creatorSearch mode |
maxResults |
integer | 200 |
Maximum records to return (1–10,000); adSearch mode is capped at 10 per advertiser by the library itself |
proxyConfiguration |
object | – | Optional Apify proxy configuration |
Example: active Nike ads in France and Germany
{
"mode": "adSearch",
"payingAdvertiserName": "nike",
"countries": ["fr", "de"],
"status": "ACTIVE"
}
Example: browse all sponsored content
{
"mode": "sponsoredContent",
"maxResults": 500
}
Example: sponsored content by a creator
{
"mode": "creatorSearch",
"creatorName": "beauty",
"maxResults": 100
}
Use cases
- Competitive ad monitoring — track a competitor's active Snapchat ad creatives, CTAs and per-country reach
- Regulatory/transparency research — study ad spend patterns and targeting disclosed under EU ad transparency rules
- Creator partnership discovery — find which brands are sponsoring a given creator's content
- Creative benchmarking — compare call-to-action and creative-type choices across advertisers in a category
- Impressions analysis — break down an advertiser's reach by country using
impressionsMap
FAQ
Is this official Snapchat data? Yes. It reads Snapchat's own public Ads Library, which the platform must publish under EU digital advertising transparency rules; no private pages are accessed.
Why does adSearch return only up to 10 ads? The Ads Library itself caps advertiser search results at 10 and doesn't paginate that endpoint — this is a limit of the library, not of this actor. Use sponsoredContent or creatorSearch for larger volumes.
Which countries are supported? EU member states only, listed in the countries input. The UK (gb) is not supported by Snapchat's library; any unsupported code you include is dropped with a warning rather than filtering results.
Can I download the actual ad creative? Yes — mediaDownloadUrl on ad records is a direct CDN link to the video or image file.
What does impressionsMap contain? An object mapping each EU country code to its impression count for that ad, e.g. {"fr": 900000, "de": 600000}.
What's the difference between sponsoredContent and creatorSearch? sponsoredContent paginates through the entire public library of sponsored posts — useful for bulk collection. creatorSearch narrows that same library to posts matching one creator's name. Both return the same sponsored-content record shape.
How much data can sponsoredContent mode return? Up to maxResults (max 10,000); the actor follows the library's own pagination automatically to collect that many.
Is this affiliated with Snapchat? No. This is an independent, third-party actor that reads Snapchat's publicly mandated Ads Library; it is not operated by or affiliated with Snap Inc.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build YkKo2GyGasKt1PH5R. Documentation is regenerated from the default published build; private drafts are not included.