Contents (9 sections)
The Meta Ad Library shows a competitor's active public ads to anyone with a browser. AutoAdy reads measured performance from your own authorized Meta account.
What you can actually see and what you can't
What this workflow produces
Browse a competitor's public ads with a browser-capable agent, organize what you observe into hypotheses, then check those hypotheses against your own measured performance in AutoAdy. End with a written brief and one generated test batch. The two halves use different tools for different reasons: the browser observes public ad records, AutoAdy reads your selected authorized account.
Meta's public Ad Library (facebook.com/ads/library) displays active ads running across Meta platforms. For a typical US commercial competitor, you'll see their active creatives, start dates, and platforms.
You will not see their cost per acquisition, their audience targeting parameters, or whether any given ad is profitable. Start dates tell you when an ad began running, which gives you a date to investigate rather than proof of a win. Advertisers sometimes leave underperforming ads running for reasons unrelated to returns.
So the honest version: you can collect public creative. You can note start dates. You can read the copy, see the format, and observe the hook. Anything beyond what's on the public page is your hypothesis, not their data.
What each signal establishes
| Signal | Source | Useful for | Does not establish |
|---|---|---|---|
| Public creative | Public Ad Library | Hook, offer, format and the start date shown | Profitability |
| Own-account pattern | get_creative_analytics | Measured angle, hook and format patterns, and where coverage is thin | Causality or competitor results |
| Ad teardown | analyze_winning_ad | Available copy, targeting, budget and objective fields | Why an ad worked |
Public creative
- Source
- Public Ad Library
- Useful for
- Hook, offer, format and the start date shown
- Does not establish
- Profitability
Own-account pattern
- Source
- get_creative_analytics
- Useful for
- Measured angle, hook and format patterns, and where coverage is thin
- Does not establish
- Causality or competitor results
Ad teardown
- Source
- analyze_winning_ad
- Useful for
- Available copy, targeting, budget and objective fields
- Does not establish
- Why an ad worked
Reviewed from the public Ad Library interface and the AutoAdy tool schemas inspected 2026-10-07. Each row states the limit of the signal, not a result.
Know which source can answer your question
- Creative
- Hook text, copy and visible format
- Timing
- Start date shown on the listing
- Distribution
- Platforms listed on the public page
- Patterns
- Messaging angle, hook style and format
- Results
- Your top ads and their measured metrics
- Coverage
- Sample counts, missing fields and thin evidence
Connect AutoAdy and a browser-capable agent
You need two things connected before this workflow does anything useful.
AutoAdy connector. Follow the setup guide at /claude to connect AutoAdy as an MCP tool in your Claude environment. Once connected, confirm your selected account is live:
Confirm the connected accountPaste into AutoAdy MCP
Runs against your selected ad account through the AutoAdy connector.
Which Meta account am I connected to, and what's its delivery status?What comes back: The account name, currency and delivery status reported by get_connected_account.
This calls get_connected_account. You're checking for the account name, currency, and that the account is actively delivering. If the account is disabled or paused, historical stats from it aren't current delivery evidence.
Browser-capable agent. The competitor-observation half requires an agent that can open a browser, scroll, and read page content. Claude's computer-use capability handles this. This is a Claude feature, not an AutoAdy feature. Enable it according to your Claude plan's documentation and verify it works by asking Claude to open any public webpage and describe what it sees.
The four stages of one session
- Start with
- A competitor’s public Ad Library page
- Leave with
- An observed sample, with its collection limits
- Start with
- The ads you collected
- Leave with
- Two columns: what you saw and what you infer
- Start with
- Your selected authorized account
- Leave with
- Your evidence, including the places it is thin
- Start with
- The observations, hypotheses and your own evidence
- Leave with
- A brief with one test variable and explicit unknowns
Collect a bounded public ad sample
Open the Meta Ad Library through your browser agent and pull a specific competitor's active ads. Be precise about the filters, or you'll get noise.
Collect the public ad samplePaste into Browser agent
Runs in Claude's computer-use browser. No AutoAdy account needed.
Open https://www.facebook.com/ads/library, search for [COMPETITOR NAME],
filter to [COUNTRY] and active ads only. For each visible ad, record:
- Hook (first line of primary text)
- Body angle (what problem or desire it speaks to)
- Offer or CTA
- Format: static image, video, carousel, or UGC-style
- Start date shown in the library
- Direct link to the ad if available
Sort by longest-running first. Stop after 15 ads or when you've
scrolled through all active results, whichever comes first.What comes back: A list of public creative: hook, body angle, offer or CTA, format and the start date shown in the library.
The 15-ad cap is a suggested bounded review size for a single session.
What you're collecting: public creative visible to anyone visiting the Ad Library on the date you run this. The start dates are real. The creative is real. Everything else; why they're running it, whether it's profitable, what audience sees it; is inference. Label it that way from the start.
The Ad Library page loads dynamically and may not surface every ad in a single scroll session. Country and category filters affect what's shown. Your sample is bounded by these constraints.
Separate observations from hypotheses
With your collected competitor ads, you now have raw material that's tempting to over-interpret. Resist that.
Split observations from hypothesesPaste into Browser agent
Runs in Claude's computer-use browser. No AutoAdy account needed.
From the ads you just collected, organize them into two columns.
Column 1, Observations: what you can verify from the public listing
(format, hook text, start date, visual style).
Column 2, Hypotheses: what you're inferring but can't confirm
(which psychological trigger it targets, whether longevity suggests
performance, what audience segment likely sees it).
Group the hypotheses by type of trigger: curiosity, fear of loss,
authority, social proof, urgency, aspiration, status.
Name which triggers appear repeatedly and which are absent.What comes back: Two columns — what the public listing verifies, and what you are inferring — with the inferences grouped by trigger.
Three competitors running discount-focused hooks doesn't mean the category is saturated with discounting. It means three competitors you sampled on one date are running discount hooks. The distinction matters when you're about to spend money based on it.
An absent trigger is interesting, not automatically valuable. If no competitor in your sample uses authority-based hooks, that might mean the angle is available. It might also mean someone tried it, it failed, and they pulled the ads before you looked. You don't know. Write down what you don't know.
Observation, hypothesis, check
An observation is what the public listing shows: hook text, format and the start date. A hypothesis is the inference drawn from it: which trigger it targets, whether longevity implies performance, who likely sees it. A check is what your own selected authorized account can measure: angle patterns, format patterns and where coverage is thin. A check can support or weaken a hypothesis; it cannot establish the competitor's results.
- ObservationVisible on the public listing
- Hook text
- Format
- Start date shown
- HypothesisYour inference, not their data
- Which trigger it targets
- Whether longevity implies performance
- Who likely sees it
- CheckYour selected authorized account
- Measured angle patterns
- Measured format patterns
- Where coverage is thin
A check can support or weaken your hypothesis. It cannot establish what the competitor measured.
Check hypotheses against your own measured patterns
Now bring in the data you actually own. AutoAdy's get_creative_analytics reports measured patterns by messaging angle, hook style, visual format, and angle-style combinations within your selected authorized account. It also surfaces 28-day cost trends and flags where evidence is thin. The tool accepts an optional account_id parameter; it does not accept date-range parameters.
For top-performer details over a specific window, use get_top_performing_ads separately with date_preset=last_30d.
Check against selected-account analyticsPaste into AutoAdy MCP
Runs against your selected ad account through the AutoAdy connector.
Run get_creative_analytics for my connected account.
Show angle cost trends, format breakdowns, and flag where
coverage is thin or sample counts are low.
Also run get_top_performing_ads with date_preset=last_30d.
Return my best ads with their measured metrics.
Then compare: does any competitor angle I hypothesized overlap
with patterns visible in my own data?What comes back: Measured angle, hook and format patterns from your selected authorized account, plus the places the tool flags evidence as thin.
Scope. get_creative_analytics reports on your selected authorized account only. It doesn't establish cross-account patterns or category-wide truths. The tool will report where evidence is unavailable or coverage is limited. Note sample counts and coverage where provided, and flag unknowns.
Match the result type to your campaign objective: purchases and ROAS for sales campaigns, cost per lead for lead generation.
Tear down one of your own top-performing ads
Before writing a brief, pull the anatomy of one of your top performers so the new creative inherits structure that's already working for your pixel.
Tear down one of your own adsPaste into AutoAdy MCP
Runs against your selected ad account through the AutoAdy connector.
Give me the teardown of ad [YOUR AD ID]: primary text,
headline, description, CTA button, destination link, creative URL,
targeting, adset budget, optimization goal, and campaign objective.What comes back: The available creative, targeting, budget and objective fields for that ad. Not an explanation of why it won.
This calls analyze_winning_ad with a specific ad ID from your account. The tool returns available creative, targeting, budget, and objective fields. Some fields may have missing evidence depending on your account configuration.
You're pulling this for a specific reason: your next test ad should deviate from this performer on exactly one variable, not seven. If your top ad uses a short hook, direct CTA, and broad targeting in a purchase-optimized campaign, your competitor-inspired test should change the hook angle while keeping the rest of that scaffolding. Changing the hook, the format, the targeting, and the CTA simultaneously tells you nothing about which change mattered.
analyze_winning_ad does not explain why the ad worked. It shows you what the ad is. The "why" is your job, informed by the patterns from creative analytics and the competitor observations you organized.
Inspect the structure before changing it
Ad anatomy · Template
Write a reviewable creative brief
A brief that skips the evidence trail is just a mood board with opinions.
CREATIVE BRIEF WORKSHEET (copy and complete)
Creative brief worksheet - TEMPLATEBlank template with fill-in placeholders.
Date: [today's date]
Competitor sampled: [name, Ad Library URL, country filter, date collected]
Ads reviewed: [observed count]/[total visible], e.g. "12 active ads as of 2026-10-07"
Collection method: Browser agent reading Meta Ad Library public page
Collection limits: [e.g. "single scroll session, US filter only, may not
include all active ads"]
OBSERVATIONS (verified from public listing):
- Dominant formats: [e.g. "[observed count]/[sample count] are short video"]
- Common hooks: [e.g. "[observed count]/[sample count] lead with discount"]
- Longest-running ad start date: [date from Ad Library]
HYPOTHESES (inferred, not confirmed):
- Underused trigger: [e.g. "authority/expertise; 0 of [sample count] use it"]
- Possible gap: [describe in one sentence]
- Why this might be wrong: [e.g. "authority ads may have been tested
and pulled before this sample"]
OWN-ACCOUNT EVIDENCE (from get_creative_analytics / get_top_performing_ads):
- Observed pattern: [your measured messaging angle and result]
- Format pattern: [your measured format performance]
- Thin evidence: [angles or formats with insufficient data]
- Coverage notes: [sample counts, missing evidence flagged by tool]
BRIEF:
- Hook: [one sentence, adapted from competitor gap + own observed style]
- Format: [specific format, e.g. "15-sec video, text overlay, no voiceover"]
- Audience: [from your own targeting data, not competitor's]
- Test variable: [exactly one thing that differs from your current top ad]
- Success metric: [e.g. "cost per lead under $X within 7 days at $Y spend"
; consistent with campaign objective]
- What this test will NOT tell you: [e.g. "whether the angle works in
carousel format; that's a separate test"]
UNKNOWNS:
- Whether competitor tested and rejected this angle: not visible
- Whether your audience responds to this trigger: untestedEvery bracket is a placeholder you fill in from your own session. This is a blank template, not a worked example — no competitor research was run for this article.
The unknowns section prevents over-committing budget to a hypothesis you built from a handful of public ads and one observation session.
Turn your brief into a single-variable test
Copy-ready test plan
CREATIVE TEST PLAN — TEMPLATE Hypothesis: [what you want to check] Baseline ad: [your own ad ID or description] One test variable: Hook angle Proposed change: [the change you will test] Keep fixed: [format, targeting, offer or CTA that stays the same] Success metric: [your metric and review window, matched to the campaign objective] Unknowns: [missing evidence and what this test cannot tell you] Review before publishing. This template does not create or publish ads.
Generate the creative, then decide separately whether to publish
If you have access to url_to_ads (see /pricing for current plan availability), you can generate creative variants from your own landing page. The tool accepts a URL, a count of variants, predefined angles, and aspect ratio. Use your brief to choose from the supported generation options, then review the output against your brief.
Generate variants from your own pagePaste into AutoAdy MCP
Runs against your selected ad account through the AutoAdy connector.
Generate [count] ad variants from [YOUR LANDING PAGE URL]
using the [angle] angle in [aspect ratio] format.What comes back: Task IDs. Generation runs asynchronously, and the output is generated images, not live ads.
The tool returns task IDs. These are not finished images yet; generation runs asynchronously. Once complete, the output is generated images based on your page content and brand elements, built around the angles and options you selected. They are not live ads. Publishing Meta ads requires separate approval and action on your part.
Sources, method notes, and what this workflow doesn't do
Sources used in this article:
- Meta Ad Library public interface: facebook.com/ads/library
- Meta Ad Library help documentation: facebook.com/business/help/2405092116183307
- Meta Ad Library transparency FAQ: facebook.com/help/259468828226154
- Meta Ad Library API documentation: facebook.com/ads/library/api
- AutoAdy MCP tool schemas, inspected 2026-10-07
Method for this article: No competitor research was conducted, no campaign was tested, and no results were measured for this piece. The workflow described is a documented process using verified tool capabilities. The brief worksheet is a template with fill-in placeholders, not a completed analysis.
Sources checked
- Product capability claims reflect tool schemas as of the inspection date.
- The brief worksheet is a blank template with fill-in placeholders. The figures are schematics of the method and report no counts, spend or performance.
creativeYour
account
Check what works in your own ads.
Compare your ideas with real account results, then prepare your next creative.
Launch agents$1 setup · 7-day trial.
Card required. View pricing
FAQ
Common questions
What's the difference between get_creative_analytics and get_top_performing_ads?
Both report on your selected authorized account. get_creative_analytics returns measured patterns by angle, hook, format, and combinations, plus 28-day cost trends and coverage gaps. It accepts an optional account_id but not date parameters. get_top_performing_ads accepts a date_preset (e.g. last_30d) and returns your actual top ads with metrics. For this workflow, use both: get_creative_analytics for pattern comparison, get_top_performing_ads for specific top-performer details.
Do I need a paid AutoAdy plan for this workflow?
The observation, analysis, and brief-writing steps use browser and analytics tools. Generating creative variants with url_to_ads requires a paid plan. Check /pricing for current plan details. The brief worksheet itself is the core deliverable and doesn't depend on image generation.
Can I use this workflow for multiple competitors in one session?
You can, but each competitor adds another sample to organize and cross-reference. If you want to survey a category, consider running separate sessions and comparing the brief worksheets afterward.
What if my AutoAdy account shows limited data or thin evidence?
get_creative_analytics flags where evidence is insufficient and surfaces coverage gaps. If your account has few active ads or minimal spend history, the comparison step will be sparse. You can still complete the competitor observation and brief, but note in the unknowns field that your own baseline evidence is thin. Running the test is how you build that evidence.
