๐ป Snapchat Ads Scraper
Pricing
from $4.99 / 1,000 results
๐ป Snapchat Ads Scraper
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
12 days ago
Last modified
Share
Snapchat Ads Scraper โ Creatives, Impressions and Media Links
Snapchat Ads Scraper reads Snapchat's public ads library and returns one flat JSON row per ad: ad ID, ad name and ad type, the paying advertiser and ad account, brand and profile name, the headline text, total impressions, delivery status, start date, and a direct media download link for the top snap. Type one or more advertiser names, set how many ads you want per name, and rows are written to the dataset live as each page of results lands.
โ ๏ธ Two things to know before your first run. Your search terms are sent to Snapchat as the paying advertiser name, not as a free-text keyword search over headlines โ so "IKEA" matches on the advertiser entity, and a brand that pays under a different legal name may return nothing. And the country filter accepts only the 27 EU country codes listed in the input schema; any other value is dropped with a warning and the run continues unfiltered.
What is Snapchat Ads Scraper?
Snapchat Ads Scraper is an Apify Actor that queries Snapchat's public ads library search endpoint (adsapi.snapchat.com/v1/ads_library) and maps each returned ad preview into a clean, typed record with camelCase keys. Every row carries the same 15 keys, run after run.
No Snapchat account, login, cookie or session is required. The endpoint the Actor calls is open and unauthenticated โ the only credential involved is your Apify token.
It is built for competitive-intelligence and paid-social teams tracking rival creative, ad-creative researchers building swipe files, data journalists auditing advertiser activity, and developers piping ad-transparency records into their own dashboards or agents.
What Snapchat ad data is publicly available to scrape?
Snapchat publishes an ads library that any visitor can search without logging in: who paid for an ad, what the creative said, how many impressions it served, whether it is still running, and when it started. What is not in the library is the advertiser's own performance and money data.
| Data Category | Public ads library | Advertiser account / Marketing API |
|---|---|---|
| Ad ID, ad name, ad type | โ Public | โ |
| Paying advertiser, ad account name, brand name | โ Public | โ |
| Profile name and profile logo image | โ Public | โ |
| Headline creative text | โ Public | โ |
| Total impressions as published in the library | โ Public | Full delivery reporting |
Delivery status (ACTIVE / PAUSED) and start date | โ Public | Full campaign schedule |
| Top-snap media file download link | โ Public | Creative asset library |
| Ad spend, budget, CPM, bid | โ | Advertiser account only |
| Clicks, CTR, conversions, ROAS | โ | Advertiser account only |
| Audience segments and custom-audience data | โ | Advertiser account only |
Snapchat Ads Scraper only returns publicly visible data โ what any visitor to the ads library sees. Nothing behind a login wall.
One honest caveat on scope: the raw ad-preview object Snapchat returns carries more keys than this Actor maps. Other Snapchat ads Actors reading the same endpoint document extra fields such as call to action, destination URL, per-country impression breakdowns, review status and targeting objects (checked on the Apify Store on 25 July 2026). This Actor writes the 15 keys documented below and nothing else.
What data can I extract with Snapchat Ads Scraper?
Each ad is one dataset row with 15 keys: the query that found it, its identity and advertiser, and its creative, reach and status.
| Field Name | Description |
|---|---|
searchQuery | The search term this row came from, echoed back exactly as you supplied it (trimmed). Empty string when you searched all advertisers |
id | Snapchat's ad identifier โ the stable key to diff runs on |
adName | The advertiser's internal name for the ad, as published in the library |
adType | Ad format type as Snapchat labels it |
payingAdName | The paying advertiser name, mapped from Snapchat's paying_advertiser_name |
accountName | Ad account name behind the ad, from ad_account_name |
profileLogoUrl | URL of the advertiser's profile logo image |
profileName | Public profile name shown with the ad |
brandName | Brand name when Snapchat supplies one โ otherwise derived (see the note below) |
headline | The ad's headline creative text |
totalImpressions | Total impressions as published in the library, from impressions_total |
adStatus | Current delivery status, e.g. ACTIVE or PAUSED |
snapMediaDownloadLink | Direct URL to the top-snap media file, from top_snap_media_download_link |
snapMediaType | Media type of the top snap |
startDate | The ad's start date, returned exactly as Snapchat sends it โ the Actor does not reformat it |
โ ๏ธ
brandNameis the one derived field. When Snapchat sets a brand name, that value is used unchanged. When it does not, the Actor approximates the brand from the first whitespace-separated token ofaccountNameโ so an account calledIKEA Sweden RetailyieldsIKEA, but an account calledBE PV Brand SNAP 3P DefaultyieldsBE. TreatbrandNameas a convenience, and usepayingAdNameoraccountNamewhen you need the exact published identity.
Ad and advertiser identity
id is Snapchat's ad identifier and the field to key on when you re-run a search and want to diff. adName and adType describe the ad itself; payingAdName and accountName describe who paid and which ad account ran it. profileName, profileLogoUrl and brandName are the public-facing brand presentation.
payingAdName is named for the paying advertiser, not for an ad โ it maps Snapchat's paying_advertiser_name. It is also the field your search actually matches against, which is why exact advertiser naming matters so much for hit rates.
Creative, reach and status
headline is the ad copy. snapMediaDownloadLink and snapMediaType cover the creative asset. totalImpressions is Snapchat's published impression figure โ an integer, so it sorts and thresholds directly. adStatus tells you whether the ad is still delivering, and startDate when it began.
Every one of the 15 keys is always present on every row. When Snapchat omits a value it arrives as null rather than a missing key, so downstream code never needs a presence check. snapMediaDownloadLink and profileLogoUrl are the two most likely to be null โ one competing Actor's listing states that direct media URLs are exposed only for certain media types (checked on the Apify Store on 25 July 2026). The Actor stores whatever URL Snapchat returns; it does not download the file, re-host it, or verify how long the CDN link keeps working.
๐ค Add-on: Need additional Snapchat data?
Snapchat Profile Scraper covers the organic side of the same brands โ public profile metadata for the advertisers you find here. If you are benchmarking paid creative across platforms, TikTok Video Scraper and Facebook Posts Scraper give you the comparable creative and engagement records for the same campaign period.
How does Snapchat Ads Scraper differ from the official Snapchat API?
Snap publishes a Marketing API, but it is scoped to advertiser accounts you are authorised for โ it reports on your campaigns. Snapchat Ads Scraper reads the public ads library instead, which is where any advertiser's published ads live. That difference in scope is the whole point: the official API is the right tool for your own performance data and the wrong tool for competitor creative.
| Feature | Snapchat Marketing API | Snapchat Ads Scraper |
|---|---|---|
| Whose ads you can see | Ad accounts you are authorised for | Any advertiser published in the public ads library |
| Credentials required | Snap Business account and OAuth app credentials | None for the endpoint โ only your Apify token |
| Approval step before access | App registration and review, per Snap's docs | โ Not applicable |
| Spend, clicks, conversions, audience data | โ For your own accounts | โ Not published in the library |
| Competitor creative, headlines and media download links | โ Not in scope | โ Returned per ad |
| Output shape | Snap's documented API schema | One flat 15-key row per ad |
| Rate-limit and quota terms | Per Snap's published documentation | Actor-side backoff and proxy escalation |
Check Snap's current published Marketing API documentation for exact scopes, approval requirements and quota terms before choosing โ those terms change and are not reproduced here.
Use the Marketing API when you need spend, delivery and conversion data for campaigns you run. Use Snapchat Ads Scraper when you need what other advertisers are publishing, in bulk, without any advertiser relationship.
How to use Snapchat Ads Scraper
Snapchat Ads Scraper runs on Apify. Start it from the Apify Console or call it through the Apify API.
- Open Snapchat Ads Scraper on Apify and click Try for free
- Enter one or more advertiser or brand names in Advertiser Names / Search Keywords (
searchQueries) โ this is the only required input, and it is prefilled with["Ikea"] - Set Max Ads Per Search Query (
maxItems) โ this is per keyword, not a run total - Optionally narrow with Country Filter (
country), Ad Status (status), and the Start Date / End Date bounds - Click Start โ rows appear in the dataset while the run is still going
- Export as JSON, CSV, Excel, XML or HTML, or read the dataset through the Apify API
If you want to browse the library rather than target a brand, put a single empty string "" in searchQueries. That sends an empty advertiser name, so results are constrained only by your country, date and status filters.
How to scale to bulk ad extraction
searchQueries is a list, so bulk is the default mode: every entry is processed in turn, each result row is tagged with its searchQuery, and one run can cover a whole competitive set. Entries are trimmed and de-duplicated case-insensitively, so ["Nike", "nike ", "NIKE"] runs once โ the first spelling is the one kept and echoed into the output.
maxItems applies per keyword, so ten advertiser names at maxItems: 200 is a ceiling of 2,000 rows for the run. Internally the Actor requests up to 50 ads per page and follows Snapchat's pagination cursor until your limit is reached or the feed ends.
What can you do with Snapchat ad data?
- ๐ฏ A paid-social strategist planning a Q4 push pulls a competitive set into
searchQueries, then sorts bytotalImpressionsand filtersadStatustoACTIVEto see which rival creatives are still getting budget rather than which ones merely existed. - ๐ฌ A creative director building a swipe file collects
snapMediaDownloadLinkandsnapMediaTypealongsideheadline, giving them the actual asset next to the copy instead of a screenshot. - ๐
A brand-monitoring analyst re-runs the same advertiser list weekly and diffs on
idandadStatusto catch the exact week a competitor paused a campaign or launched a new one. - ๐๏ธ A data journalist auditing an advertiser's EU activity sets
countryand thestartDate/endDatebounds, then reportspayingAdNameandtotalImpressionsagainst the published creative inheadline. - ๐ค An AI engineer building a competitive-research agent indexes
headline,payingAdName,brandNameandadTypeinto a vector store so an agent can answer "which formats is this advertiser running in Germany right now, and what are they saying" against live library data rather than a stale export.
Every one of these is callable from an agent framework over the Apify API, since the Actor is a standard HTTP-triggered run.
How does Snapchat Ads Scraper handle rate limits and blocking?
The ads library endpoint is open, but it rate-limits by source IP. The Actor handles that with two mechanisms and no browser automation โ there is no headless browser, no CAPTCHA solving and no login flow anywhere in the code.
Per-request backoff. Each request gets up to three retries after the first attempt, with exponential backoff capped at 30 seconds, and a 30-second request timeout. A retry is triggered by Snapchat's rate-limit error code, an HTTP 429, any 5xx, or a network error or timeout.
Proxy escalation. Runs start on a direct connection with no proxy at all. Only when a request keeps failing does the Actor climb the ladder: direct โ Apify datacenter โ Apify residential, with up to three retries on the residential rung. Each switch is logged, and once a rung is engaged it stays engaged for the rest of the run โ the Actor does not drop back down. If you set proxyConfiguration yourself, that choice is honoured as the starting rung instead. Between pages the Actor waits about a second plus a small random jitter.
If every rung is exhausted for a keyword, the Actor logs the failure, stops on that keyword and moves to the next one. Any ads already pushed stay in the dataset โ rows are written live, so a keyword that fails halfway leaves a partial but valid result set rather than nothing.
โฌ๏ธ Input
All seven parameters, exactly as defined in the Actor's input schema. searchQueries is the only required one.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
searchQueries | Yes | array | Advertiser / brand names to search the ads library for. Bulk supported โ each entry is processed independently and tagged in the output. A single empty string fetches all advertisers, filtered only by country, date and status. Default ["Ikea"]. | ["Ikea", "Zalando", "McDonald's"] |
maxItems | No | integer | Maximum ads to fetch per search keyword, not per run. Minimum 1, maximum 10000. Default 10. | 200 |
country | No | string | Restrict results to ads served in a single EU country. Empty means all countries. Enum: "", AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE. Default "". | "DE" |
status | No | string | Filter by current delivery status. Enum: "" (any โ active plus paused), ACTIVE, PAUSED. Default "". | "ACTIVE" |
startDate | No | string | Lower bound for the ad's start date, format YYYY-MM-DD. No default โ leave empty for no lower bound. | "2026-01-01" |
endDate | No | string | Upper bound for the ad's start date, format YYYY-MM-DD. No default โ leave empty for no upper bound. | "2026-07-01" |
proxyConfiguration | No | object | Apify Proxy settings. Default {"useApifyProxy": false} โ the Actor starts direct and escalates on its own. Set this only to force a starting rung. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
What a run missing searchQueries does. The schema marks it required and prefills ["Ikea"], so the Console will not let you submit it empty. If you call the Actor through the API and send an empty list โ or omit the field entirely โ the Actor logs a warning and falls back to the default keyword Ikea rather than failing. It will not error out, so check the run log if your dataset comes back full of IKEA ads you did not ask for.
Filters that get silently dropped. Every optional filter is validated and discarded with a warning rather than rejected, so a typo costs you the filter, not the run:
countryis upper-cased and checked against the 27 EU codes above."US","GB"or"Germany"are ignored and the run proceeds across all countries.statusis upper-cased and must beACTIVEorPAUSED. Anything else is ignored.startDateandendDateare shape-checked only: exactly ten characters,YYYY-MM-DD, digits and dashes in the right places."2026-7-1"fails that check and is dropped. The check does not validate the calendar, so an impossible month passes through to Snapchat rather than being caught locally.maxItemsfalls back to10if it is missing, zero, negative or not parseable as an integer. The 10000 ceiling is enforced by the input schema, not re-clamped in code.
Where the date filters are applied. Both bounds are sent to Snapchat inside the search request โ the Actor performs no local date filtering after fetching, so no results are silently thrown away client-side. The trade-off is that the exact semantics are Snapchat's, not the Actor's: one competing Actor's listing states that these bounds behave as an activity window rather than a strict start-date range (checked on the Apify Store on 25 July 2026). Verify against startDate in your own output before relying on the boundary.
Example input
{"searchQueries": ["Ikea", "Zalando", "McDonald's"],"maxItems": 200,"country": "DE","status": "ACTIVE","startDate": "2026-01-01","endDate": "2026-07-01","proxyConfiguration": {"useApifyProxy": false}}
โฌ๏ธ Output
Every ad is one dataset row with the same 15 keys in the same order, run after run. The structure is flat โ no nested objects and no arrays โ and Snapchat's snake_case response keys are mapped to camelCase, with id kept as id. Missing values arrive as null, never as an absent key. Rows are pushed live as each page is parsed, so the dataset fills while the run is still going. Export as JSON, CSV, Excel, XML or HTML, or read the dataset through the Apify API.
Only successful ad records reach the dataset. Ad previews that Snapchat marks as unsuccessful, and any record without an id, are skipped during parsing โ which means a page can yield fewer rows than requested. The Actor writes no diagnostic, error or accounting rows at all, so there is nothing to filter out: every row is a real ad, and every row is charged as one row_result event. Failures live in the run log, not in your data.
Example output
{"searchQuery": "Ikea","id": "72b378ea-a99a-4cf0-9459-62763578988a","adName": "DE_IKEA_KITCHEN_Q2_STORY_01","adType": "REMOTE_WEBPAGE","payingAdName": "IKEA Marketing & Communication AB","accountName": "IKEA Deutschland Retail","profileLogoUrl": "https://cf-st.sc-cdn.net/aps/bolt/9f13c0a7-ikea-logo.png","profileName": "IKEA","brandName": "IKEA","headline": "Neue Kรผchen entdecken","totalImpressions": 4821340,"adStatus": "ACTIVE","snapMediaDownloadLink": "https://cf-st.sc-cdn.net/d/C3CFWTMYLi5tqA8XbQ2f.mp4","snapMediaType": "VIDEO","startDate": "2026-04-18T06:00:12.000Z"}
A second row from the same run, showing how null values arrive when Snapchat does not publish a field:
{"searchQuery": "Zalando","id": "1043c3dc-b78f-432e-8208-34ac81706787","adName": "ZAL_SS26_BRAND_COLLECTION_DE","adType": "COLLECTION","payingAdName": "Zalando SE","accountName": "Zalando SE DACH Performance","profileLogoUrl": null,"profileName": null,"brandName": "Zalando","headline": "Jetzt die neue Kollektion shoppen","totalImpressions": 1187602,"adStatus": "PAUSED","snapMediaDownloadLink": null,"snapMediaType": "IMAGE","startDate": "2026-02-03T09:41:55.000Z"}
How does it work?
Snapchat publishes its ads library through an open search endpoint that needs no authentication. Snapchat Ads Scraper posts your advertiser name to that endpoint together with your country, status and date filters, reads the JSON response, and maps each ad preview into a flat 15-key record.
Requests start on a direct connection. If Snapchat rate-limits or the connection fails, the Actor retries with exponential backoff and then climbs to an Apify datacenter proxy and on to residential, logging each switch. There is no headless browser involved and no CAPTCHA to solve โ it is a JSON request with browser-accurate headers, which is why runs are lightweight.
Pagination follows Snapchat's own cursor link, with the page size rewritten to match how many ads you still need, so the final page is never over-fetched.
Because the Actor reads that structured endpoint rather than scraping rendered markup, a redesign of the ads library front end does not affect it, and your field names stay put. Only publicly visible library data is collected โ no account, cookie or session is used.
Integrations
Snapchat Ads Scraper is an Apify Actor, so it works with anything that can call the Apify API or consume a dataset.
Calling Snapchat Ads Scraper from Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("<YOUR_USERNAME>/snapchat-ads-scraper").call(run_input={"searchQueries": ["Ikea", "Zalando"],"maxItems": 200,"country": "DE","status": "ACTIVE",})for ad in client.dataset(run["defaultDatasetId"]).iterate_items():print(ad["searchQuery"], ad["payingAdName"], ad["totalImpressions"], ad["snapMediaType"])
Works in Go, Ruby, Node.js, cURL โ any language that can make an HTTP request.
No-code tools (n8n, Make, Zapier)
In n8n, use the Apify node โ or an HTTP Request node pointed at the Apify run endpoint with your token โ and pass the same JSON input shown above; a Filter node on adStatus then splits live creative from paused. In Make, the Apify module supports run-and-wait, so a weekly competitive sweep can feed a Google Sheets or Airtable step directly. Both platforms handle scheduling, so a recurring advertiser watchlist needs no code at all.
Is it legal to scrape Snapchat ads?
Scraping an ad-transparency library is one of the stronger positions in public-data collection: the library exists specifically so that ads can be inspected by the public, and Snapchat Ads Scraper reads it without any account, cookie or session. Publishing an ad in a searchable public archive is publication for scrutiny, not incidental exposure.
The output is business and advertising data โ advertiser and ad-account names, brand names, creative copy, ad formats, impression figures. Those are commercial identities and commercial records, so the personal-data regimes that govern profile scraping do not attach to this output the way they would to a people scraper. What does apply is contractual and database-related: Snapchat's terms of service, and any local database or unfair-competition rules covering systematic reuse of a compiled dataset.
One narrow exception worth naming precisely: payingAdName, accountName, profileName and profileLogoUrl carry whatever identity the advertiser registered. Almost always that is a company, but a sole trader or individual advertiser can appear under a personal name and image. If your use case involves bulk storage of such records, treat those four fields as potentially personal and consult legal counsel โ the other eleven fields are ad metadata only.
โ Frequently asked questions
What Snapchat ad fields does Snapchat Ads Scraper return?
The five most used are payingAdName, headline, totalImpressions, snapMediaDownloadLink and adStatus. Fifteen fields are returned per ad in total, including id, adName, adType, accountName, brandName, profileName, profileLogoUrl, snapMediaType, startDate and the searchQuery that produced the row. See the data fields table above.
Does Snapchat Ads Scraper require a Snapchat account or login?
No. The ads library search endpoint it calls is open and unauthenticated โ there is no login flow, no cookie and no session anywhere in the Actor. The only credential you need is your Apify token.
How many ads can I extract in one run?
maxItems accepts up to 10000 and applies per keyword, so the ceiling for a run is maxItems multiplied by the number of unique keywords in searchQueries. Internally the Actor requests up to 50 ads per page and follows Snapchat's pagination cursor until your target is met or the feed ends. The actual count can come in lower โ the library only holds as many ads as the advertiser has published, and ad previews Snapchat marks unsuccessful are skipped.
What happens if an advertiser has no ads in the library?
You get zero rows for that keyword and the run keeps going. When Snapchat returns an empty result set the Actor logs that no ads were returned for that keyword, moves on to the next one, and finishes normally with whatever the other keywords produced. Because charging is per pushed row, a keyword that returns nothing writes nothing and costs nothing.
Three things cause an empty result more often than a genuinely absent advertiser. First, matching is on the paying advertiser name โ try the full legal entity ("Zalando SE", "adidas AG") rather than the consumer brand. Second, a country value outside the 27 EU codes is dropped with a warning, so check the log if you expected a regional slice and got everything. Third, a malformed date bound is discarded the same way. All three appear as warnings in the run log rather than as errors.
Can I scrape multiple Snapchat advertisers at once?
Yes. searchQueries is a list and bulk is the normal mode โ each entry runs independently and every row is tagged with its searchQuery, so one dataset can hold a whole competitive set already segmented. Entries are trimmed and de-duplicated case-insensitively. A single empty string entry searches all advertisers instead of one.
Does Snapchat Ads Scraper work with Claude, ChatGPT and other AI agent tools?
Yes. It is callable as a standard HTTP endpoint through the Apify API, so LangChain, CrewAI, n8n or a hand-written tool definition can invoke it and receive typed JSON with no parsing step. The flat 15-key shape fits a tool result without transformation.
How does Snapchat Ads Scraper compare to other Snapchat ads scrapers?
Checked on the Apify Store on 25 July 2026: lexis-solutions/snapchat-ads-scraper is the most established by run count and documents a wider field set on its listing, including destination URL, call to action, review status, per-country impressions and a targeting object โ its input takes a single search string. zadexinho/snapchat-ads-scraper documents a comparable ad-level field set with a single search parameter and a country that defaults to DE, and its listing states that its date filters behave as an activity window rather than a start-date range. crawlerbros/snapchat-ads-gallery-scraper documents three modes โ advertiser search, sponsored content and creator search โ and its listing states that its advertiser-search mode returns up to 10 ads per advertiser, described there as a platform limit.
Where this Actor differs, read from its own source: searchQueries is a list rather than a single string, so a competitive set runs in one job with each row tagged by searchQuery; maxItems applies per keyword and pagination follows Snapchat's cursor up to 10000 per keyword; and the proxy ladder starts on a direct connection and escalates only when Snapchat pushes back. The trade-off is field breadth โ 15 keys here, narrower than what the two larger listings document.
Does Snapchat Ads Scraper return data in a format LLMs can use directly?
Yes. Every record is typed, normalized JSON with the same 15 camelCase field names on every run, flat with no nesting. No HTML parsing, no selectors. Pass a row straight into an LLM context window, index it into a vector store, or hand it to an agent tool.
What happens when Snapchat changes its layout or anti-bot system?
The scraper is maintained, and because it reads Snapchat's structured ads-library endpoint rather than rendered markup, a front-end redesign of the library generally does not affect it at all. If Snapchat tightens IP-level rate limiting, the built-in backoff and the direct โ datacenter โ residential ladder absorb it without a config change on your side. Your field names and types stay the same.
Can I use Snapchat Ads Scraper without managing proxies?
Yes. Leave proxyConfiguration at its default and the Actor decides for you โ it starts with no proxy at all, and only reaches for a datacenter or residential rung if Snapchat actually rate-limits the run. You never create a proxy account or rotate an IP. Setting proxyConfiguration yourself simply overrides the starting rung.
Which Snapchat ad fields work best for AI training data and RAG indexing?
For RAG indexing: headline is the highest-information text per record, and pairing it with payingAdName, brandName and adType gives an embedding enough context to answer questions about who is saying what in which format. For training data: totalImpressions, adStatus, adType, snapMediaType and startDate are the most structurally consistent fields across records. All values return as typed primitives with no nesting, so no normalization pass is needed before indexing โ the one field to handle with care is brandName, which is derived from accountName when Snapchat does not publish a brand.
๐ Related scrapers
| Scraper Name | What it extracts |
|---|---|
| Snapchat Profile Scraper | Public Snapchat profile metadata for the brands behind the ads |
| TikTok Video Scraper | Video records and creator detail for cross-platform creative benchmarking |
| Facebook Posts Scraper | Public page post content and engagement for the same campaign period |
| Instagram Profile Scraper | Public profile metrics for the brands you track |
| Pinterest Pin Engagement Analytics Scraper | Pin-level engagement data for visual-creative research |
| Twitter/X Posts Scraper | Public post content for brand and campaign monitoring |
๐ฌ Your feedback
Found a bug, or need a field that is in Snapchat's ad-preview response but not in the 15 the Actor writes? Open an issue on the Actor's Issues tab. Reports that include the exact input JSON and the advertiser name you searched are the fastest to reproduce and fix.