Nimbryxo Studio

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.

FieldTypeRequiredDescription
modestringoptionalSelect the scraping mode: adSearch to search ads by advertiser, sponsoredContent to browse all sponsored content, or creatorSearch to search by creator.
payingAdvertiserNamestringoptionalFor adSearch mode: advertiser name to search. Examples: nike, coca-cola, amazon
countriesarrayoptionalEU 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
FieldTypeRequiredDescription
modestringoptionalSelect the scraping mode: adSearch to search ads by advertiser, sponsoredContent to browse all sponsored content, or creatorSearch to search by creator.
payingAdvertiserNamestringoptionalFor adSearch mode: advertiser name to search. Examples: nike, coca-cola, amazon
countriesarrayoptionalEU 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.
startDatestringoptionalFilter ads active from this date (ISO 8601 or YYYY-MM-DD). Leave empty for no start-date filter.
endDatestringoptionalFilter ads active up to this date (ISO 8601 or YYYY-MM-DD). Leave empty for no end-date filter.
statusstringoptionalFilter ads by their current status.
creatorNamestringoptionalFor creatorSearch mode: creator username or name to search sponsored content
maxResultsintegeroptionalMaximum number of records to return. Note: adSearch mode returns up to 10 results per advertiser (API limit).
proxyConfigurationobjectoptionalOptional 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.

FieldTypeRequiredDescription
recordsstringoptionalDataset 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 it
  • adAccountName, payingAdvertiserName — advertiser account and the paying entity as disclosed in the library
  • profileName, profileLogoUrl — public profile name and logo shown in the ad
  • headline — ad headline text
  • adType, adRenderType, creativeType — ad format, render type, and creative type (e.g. VIDEO, IMAGE)
  • callToAction — CTA button label (e.g. SHOP_NOW, LEARN_MORE)
  • topSnapMediaType, topSnapCropPosition
  • mediaDownloadUrl — direct CDN link to the ad creative
  • webViewProperties — web view destination properties
  • languages — languages the ad targets
  • startDate, status, reviewStatus, rejectionReasons
  • impressionsTotal — total impression count across all regions
  • impressionsMap — per-country impression breakdown (country code → count)
  • targetingV2 — raw targeting parameters from the library
  • stickers, dpaPreview — sticker and dynamic-product-ad preview data, when present
  • recordType — always ad
  • scrapedAt — 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 post
  • thumbnailUrl — content thumbnail
  • creatorName, creatorUrl — creator who posted the content and their profile URL
  • sponsorName, sponsorUrl — sponsoring brand's name and profile URL
  • recordType — always sponsoredContent
  • scrapedAt — 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.

Open the step-by-step Python guide →

Source build YkKo2GyGasKt1PH5R. Documentation is regenerated from the default published build; private drafts are not included.