Snapchat Ads Scraper: Creative Analysis avatar

Snapchat Ads Scraper: Creative Analysis

Pricing

Pay per usage

Go to Apify Store
Snapchat Ads Scraper: Creative Analysis

Snapchat Ads Scraper: Creative Analysis

Snapchat Ads Scraper: Extract ad creatives, copy, advertisers, formats, landing pages, and campaign details. Analyze creative patterns, messaging, offers, and ad strategies to compare competitors, identify trends, and improve Snapchat advertising performance.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

API Empire

API Empire

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

๐Ÿ‘ป Snapchat Ads Creative Analyzer

Scrape the Snapchat Ads Library by advertiser / brand name and get a full creative-analysis breakdown for every ad โ€” headline length, call-to-action detection, media presence, creative format, and brand-in-headline โ€” plus impression / media / CTA filters and automatic de-duplication of identical creatives.

Built on the Snapchat Ads Library scraper engine (pure HTTP, no browser, no login), this variant adds a creative-intelligence layer on top of every row.

What's New vs. the Base Scraper

  • ๐ŸŽจ Per-ad creative analysis โ€” each row is enriched with creativeFormat, headlineWordCount, headlineCharCount, headlineHasCta, detectedCtaKeywords, hasMedia, and brandInHeadline. Every value is computed from the real ad data (headline text, ad type, media type, brand).
  • ๐Ÿงน Row-reducing filters โ€” minImpressions, requireMedia, and ctaOnly drop non-matching creatives before they are saved, and the run log reports exactly how many rows each filter removed.
  • โ™ป๏ธ Creative de-duplication โ€” ads with the same headline + adType + brandName are collapsed to a single row (dropped-duplicate count logged).

Core Features (from the base engine)

  • ๐Ÿ”Ž Bulk search by advertiser / brand name (paying_advertiser_name)
  • ๐ŸŽฌ Ad ID, name, ad type, brand, headline, impressions, media download URL, media type, status, and start date
  • โฌ‡๏ธ Direct download links to top-Snap media (image or video)
  • ๐ŸŸข Filter by ACTIVE / PAUSED
  • ๐ŸŒ Filter by EU country code
  • ๐Ÿ“… Filter by date range
  • ๐Ÿ›ก๏ธ Built-in rate-limit handling with proxy escalation (direct โ†’ datacenter โ†’ residential, 3 retries)
  • ๐Ÿ’พ Live saving โ€” every qualifying ad is pushed the moment it is analyzed
  • ๐Ÿ“Š Per-search-query tagging in every output row

Input

{
"searchQueries": ["McDonald's", "Nike"],
"maxItems": 20,
"country": "FR",
"status": "ACTIVE",
"startDate": "2025-01-01",
"endDate": "2026-05-16",
"minImpressions": 1000,
"requireMedia": false,
"ctaOnly": false,
"proxyConfiguration": { "useApifyProxy": false }
}
FieldTypeRequiredDescription
searchQueriesarray of stringsโœ…Advertiser / brand names. Bulk supported. Use "" to fetch all ads.
maxItemsintegerโŒMax ads retrieved per query. Filters/dedup are applied afterward, so saved rows may be fewer. Default 10.
countrystringโŒEU ISO-2 country code (e.g. FR, DE). Empty = all countries.
statusstringโŒACTIVE, PAUSED, or empty for both.
startDatestringโŒYYYY-MM-DD โ€” only ads whose start_date is โ‰ฅ this.
endDatestringโŒYYYY-MM-DD โ€” only ads whose start_date is โ‰ค this.
minImpressionsintegerโŒOnly save ads with totalImpressions โ‰ฅ this. Missing = 0. Default 0.
requireMediabooleanโŒOnly save ads that have a downloadable media link. Default false.
ctaOnlybooleanโŒOnly save ads whose headline contains a CTA keyword. Default false.
proxyConfigurationobjectโŒStandard Apify proxy editor. Defaults to no proxy.

Output

Each row preserves every base field and adds the creative-analysis fields:

{
"searchQuery": "McDonald's",
"id": "ded3fe4b-8326-4423-bdfb-8d956de682b5",
"adName": "Offre food 1 v2",
"adType": "STORY",
"payingAdName": "McDonald's France",
"accountName": "McDonald's Global",
"profileLogoUrl": "https://cf-st.sc-cdn.net/...",
"profileName": "McDonald's France",
"brandName": "McDonald's",
"headline": "Get the McSmart menu โ€” order now",
"totalImpressions": 999232,
"adStatus": "PAUSED",
"snapMediaDownloadLink": null,
"snapMediaType": null,
"startDate": "2025-07-16T12:00:57.000Z",
"creativeFormat": "story_ad",
"headlineWordCount": 6,
"headlineCharCount": 32,
"headlineHasCta": true,
"detectedCtaKeywords": ["get", "order"],
"hasMedia": false,
"brandInHeadline": false
}

Base fields

FieldDescription
searchQueryThe advertiser / brand keyword you searched for
idSnapchat ad UUID
adNameInternal ad name from the advertiser
adTypeSNAP_AD, STORY, REMOTE_WEBPAGE, DEEP_LINK, โ€ฆ
payingAdNamePaying advertiser entity
accountNameAd account name on Snapchat
profileLogoUrlLogo of the Snapchat profile that owns the ad
profileNameDisplay name of the profile
brandNameBrand string (falls back to first word of account name)
headlineAd headline shown to viewers
totalImpressionsLifetime impressions
adStatusACTIVE or PAUSED
snapMediaDownloadLinkDirect download link for the top-Snap media
snapMediaTypeIMAGE or VIDEO
startDateFirst-served timestamp (ISO 8601)

Creative-analysis fields (new)

FieldDescription
creativeFormatDerived format: story_ad, video_snap, image_snap, ar_lens, collection, commercial, or the lower-cased ad type
headlineWordCountNumber of words in the headline
headlineCharCountNumber of characters in the headline
headlineHasCtatrue if the headline contains a CTA keyword
detectedCtaKeywordsThe CTA keywords actually found (shop, buy, learn more, sign up, download, get, order, discover)
hasMediatrue if snapMediaDownloadLink is present
brandInHeadlinetrue if a brand-name token appears in the headline

๐Ÿš€ How to Use (Apify Console)

  1. Log in at https://console.apify.com โ†’ Actors.
  2. Open ๐Ÿ‘ป Snapchat Ads Creative Analyzer.
  3. Enter one or more advertiser names in Search Queries.
  4. (Optional) Pick a country, status, or date range, and set the creative filters (minImpressions, requireMedia, ctaOnly).
  5. Click Start.
  6. Watch the logs โ€” every ad is logged, and a filter summary reports how many rows each filter removed.
  7. Open the Output tab when the run completes and export to JSON/CSV/XLSX.

๐Ÿค– Use via API

curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["Nike"],
"maxItems": 50,
"minImpressions": 1000,
"ctaOnly": true
}'

Best Use Cases

  • ๐Ÿ•ต๏ธ Competitor creative intelligence on Snapchat
  • ๐ŸŽจ Studying which CTA phrasing and creative formats a brand actually runs
  • ๐Ÿ“ˆ Filtering to only high-impression creatives for benchmarking
  • ๐Ÿงช Building clean, de-duplicated ad-creative datasets for ML / analytics

Pricing

This actor uses Apify Pay-per-event. You pay per ad row pushed to the dataset plus the small actor-start event. No platform usage is passed on by default.

Frequently Asked Questions

Do I need to be logged in to Snapchat? No. The Snapchat Ads Library is public and the actor calls it without auth.

Why did I get fewer rows than maxItems? maxItems bounds how many ads are retrieved per query. The creative filters (minImpressions, requireMedia, ctaOnly) and de-duplication then reduce the rows that are actually saved. The run log shows the exact counts removed.

How is headlineHasCta computed? The headline text is scanned for the CTA keywords listed above. Single-word keywords require a whole-word match (so "getaway" does not trigger "get").

What happens if I get rate-limited? Snapchat returns error_code: E1009 when an IP is throttled. The actor detects this, falls back to a datacenter proxy, then to a residential proxy (retrying up to 3 times), and once residential is engaged it stays engaged.

Are EU-only results a hard limit? Yes โ€” the Snapchat Ads Library currently only exposes ads served in the EU.

  • Data is collected only from the publicly available Snapchat Ads Library.
  • The end user is responsible for legal compliance (GDPR, CCPA, target-site ToS, etc.).
  • Be a good citizen โ€” keep maxItems reasonable to avoid hammering Snap's infrastructure.