Facebook Ads Analyzer: hooks, offers, CTAs + synthesis brief avatar

Facebook Ads Analyzer: hooks, offers, CTAs + synthesis brief

Pricing

Pay per event

Go to Apify Store
Facebook Ads Analyzer: hooks, offers, CTAs + synthesis brief

Facebook Ads Analyzer: hooks, offers, CTAs + synthesis brief

Paste an advertiser's page: AI tears down their real Meta ads (hook, offer, CTA, pacing, on-screen text) and writes a brief of what works plus 3 angles to test, on your key. Free preview fetches the actual ads, no key needed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

FrameProbe

FrameProbe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Paste an advertiser's Facebook page and get their Meta ads torn down, ad by ad, plus one cross-ad brief of what is working and 3 concrete angles to test. AI watches the actual creatives: for video ads it reads scene pacing, hook timing in the opening seconds, and the on-screen text; for image ads it reads the hook, the offer and the CTA off the pixels. The text-only ad tools cannot see any of that.

Try it free first: run with no API key and the Actor still fetches the advertiser's real, currently-running ads and returns their measured structure (format, dimensions, duration, scene count, cut cadence) for the first 3, so you see actual competitor ads pulled before you pay any model provider anything. Add your own Anthropic key to unlock the full AI teardown and the synthesis brief.

What one run gets you

For each creative, one structured record:

  • hookStyle + hookNotes: how the ad grabs attention (7 closed classes, so you can count them across an account)
  • offerFraming + offerNotes: how the offer is framed (discount, social proof, urgency, risk reversal, and so on)
  • ctaPlacement and the CTA button label
  • onScreenText: the overlay text, in order, transcribed off the creative
  • productionStyle: ugc-style, studio-polished, motion-graphics, product-shot, meme-style
  • measured video pacing: sceneCount, cutCadenceSeconds, durationSeconds (measured by ffmpeg, never guessed by the model)
  • adScore 0 to 10 (a harsh "worth copying" grade) and whyItWorks in plain language
  • the ad's own metadata passed through: advertiser, body text, landing URL, running-since date, placements

Then one synthesis brief per run: recurringHooks, repeatedOffers, ctaPatterns, winningPattern, and exactly 3 anglesToTest. The brief is what you read first; the per-ad records are the evidence.

Real output, unedited: SoFi's currently-running Meta ads torn down into hook, offer, CTA and score, one row per creative.

Teardown records for SoFi's real Meta ads: hook style, offer framing, CTA placement, ad score and why each works

The 60-second start

  1. Open this Actor, paste https://www.facebook.com/<advertiser> into startUrls (or just type the brand into advertiserName).
  2. Click Start with no key: the free preview fetches their real ads and shows the structure.
  3. Paste your Anthropic key (console.anthropic.com/settings/keys) and run again: full teardowns plus the brief.

The whole input is one field: the advertiser's page URL.

The input form with an advertiser page URL pasted into the one-step field

The one-step fetch runs apify/facebook-ads-scraper for you and is billed to your Apify account at that scraper's price for your tier (roughly $0.006 per fetched ad on the free tier, as of August 2026). The run log states the estimate before fetching and the run summary reports the exact fetched count.

Chaining and direct input

Already ran the ads scraper? Paste its datasetId (or the run ID; the Actor resolves it). Chain immediately: Meta's media URLs expire within hours, and an expired link fails with a reason telling you to re-fetch. Power users can pass direct media file URLs in mediaUrls.

Meta ads datasets get full support (nested cards, videos, images, DPA catalog ads, carousels: the first card is analyzed and cardCount says how many the ad carries). Other datasets are best-effort: a recognizable media URL field is picked up, an unknown extension is tried as video then image.

Pricing (this Actor's events)

EventPriceCharged when
Actor start$0.01once per run, after validation passes
Video ad analyzed$0.04a video creative produced a full teardown record
Image ad analyzed$0.02an image creative produced a full teardown record
Synthesis brief$0.15the brief was actually produced (needs at least 5 analyzed creatives)

Never charged: failed downloads, expired URLs, duplicates (the same creative across placement rows is analyzed once; repeats get a reference row), rejected images, model-reply parse failures, skipped briefs, and everything in a keyless preview. Your Anthropic account bills separately for the model calls, at your rates: with the default model, expect a few tenths of a cent per image and a cent or two per video, plus roughly a cent for the brief.

When something fails

Every failed row carries a reason that names the fix: expired media URLs point you at re-fetching, an out-of-credit Anthropic key points at your billing page and says re-running will not re-charge analyzed creatives, a page pasted into the wrong field names the right one. The run summary row (always the last record) totals what was analyzed, skipped, failed and charged.

Privacy and security posture

Your API key is used for the run's model calls and is never stored, logged, or written to any output. Media is downloaded through an SSRF-guarded, size-capped, timeout-bounded pipeline; scraped ad text and pixels are treated as untrusted data end to end, and every model-derived field is sanitized and pinned to closed lists before it reaches your dataset.