Competitor offer and messaging matrix from live ad libraries
Pulls competitors' live ads from the Google Ads Transparency Center and the Meta Ad Library, then builds a side-by-side matrix of promises, offers, CTAs and proof, plus table-stakes messages and open angles for your client.
When to use it
When you want to see what competitors are promising and offering in their live ads before you write or change your own messaging.
What you get
A side-by-side competitor matrix of promises, offers, CTAs and proof, plus the table-stakes messages, open angles rated for fit and long-running ads to learn from.
Does it change anything in my account?
No. The assistant only reads your data and reports back.
Works with
Google Ads, Meta Ads
Fill in before sending
[client name][competitor 1: domain / brand name][competitor 2: domain / brand name][up to 5 competitors][country code, e.g. TR][one-line positioning statement]
For my client [client name], pull the live ads of these competitors from the public ad libraries. For each competitor I give both the website domain and the brand or Facebook Page name, because Google's library searches best by domain and Meta's by brand name:
[competitor 1: domain / brand name]
[competitor 2: domain / brand name]
[up to 5 competitors]
Market: [country code, e.g. TR]
For each competitor:
- Run competitor_ads with platform=google, query = the domain, region = the market above.
- Run competitor_ads with platform=meta, query = the brand name, region = the market above. If Meta returns nothing or returns ads from a different advertiser with a similar name, try the domain or an alternative spelling once, and tell me which query matched. If the Meta library is unavailable because no Meta account is connected, say so and continue with Google only.
- Keep only ads that clearly belong to that competitor. If you are unsure an advertiser is the right one, list it separately instead of mixing it in.
Build one table with one row per competitor and these columns:
- number of live ads found, split by library (Google / Meta)
- formats (text, image, video, carousel), only if the library returns format information; otherwise write "not returned"
- main promise or value proposition, quoted from the ad copy
- offer type (discount %, free trial, free shipping, guarantee, none)
- price or price anchor if shown in the copy
- call to action wording
- proof elements used (reviews, numbers, awards, client logos)
- the oldest ad still running, with its start date only if the library returns one
Under the table:
1. List the 3 messages that appear in at least half of the competitors. These are table stakes. Our ads must match them or explain why we don't.
2. List up to 5 angles that no competitor or only one competitor uses. Rate each angle for fit with [client name]'s positioning ([one-line positioning statement]): high, medium or low.
3. If start dates are returned, flag every competitor ad running for 60+ days. Long-running ads are likely profitable, so describe exactly what they do: hook, offer, format and CTA. If no start dates come back for a competitor, say that ad age could not be measured for them instead of guessing.
Use only what the ad libraries return. Note that these libraries show live creatives, not spend, targeting or results. Mark anything you infer as an inference. This is research only; do not create or change anything in my accounts.
A one-page brief mapping who advertises in the client's market, where, with what message, and where the client stands today.
When to use itWhen you are about to start with a new client and need to understand who they compete against in paid and organic search before the kickoff call.