Pulls the ads a Facebook or Meta page is running right now — headline, body copy and start date for up to 20 live ads, across all countries.
meta-ads-analysis calls the SyncGTM MCP meta_ads_analysis tool to return the ads a Facebook/Meta page is currently running — the headline, the body copy and the start date of each one, in a single sweep across all countries. It takes either a numeric Page ID or a full page URL, so you can run it straight from a link you copied out of the browser. It is built for competitor ad intelligence: what a rival is promoting today, and in what wording.
Takes page_id — a numeric Facebook Page ID or a full page URL. Both are accepted directly, so there is no lookup step to pay for.
Returns each active ad as three fields: headline, body and started_at. The sweep covers all countries in one call; there is no country filter and no per-market breakdown in the response.
max_results is capped at 20 (range 10–20, default 10). Most SyncGTM tools go to 100. This one does not, and asking for 50 is the most common error on it.
ad_type filters to one regulated category: "all ads" (default), "issues politics or elections", "properties", "employment", "financial products and services".
Returns no spend, impressions, reach, audience size, contacts, emails or phone numbers. It is creative and timing, not an ad platform report.
0.5 credits per call, billed per page and not per ad. An empty result means no active ads today, not that the page never advertises.
Download the skill file — it saves as meta-ads-analysis.zip.
In Claude, open Settings → Capabilities → Skills and upload the .zip (or unzip the meta-ads-analysis/ folder into .claude/skills/ for Claude Code).
Connect the SyncGTM MCP server — browser sign-in, no API key — then run check_credits (free) to confirm your balance.
Collect the Facebook page URLs for the accounts you want to watch. One page per call: the skill will not bundle two pages into a single call.
Trigger it by typing /meta-ads-analysis with the page URL and max_results 20. That one setting matters most — the default is 10 and the ceiling is 20.
See what a rival is promoting this week and the exact wording they lead with. Use it to refresh a battlecard before a competitive deal cycle.
Set ad_type to "employment" to see which roles a company is paying to advertise. Work the hiring manager sitting above those roles while the req is still open.
Pull a prospect's own Meta ads before discovery so you can open on their current promise instead of guessing at their priorities.
Re-run the same page weekly and log started_at dates to date the moment a competitor changed positioning or launched a campaign.
Outcome: A three-page competitor battlecard dated to this week, each page listing the live ad promise, the paid-versus-organic traffic split, and two pre-emption lines for reps — about 7.5 credits for the set.
Outcome: A 10-contact list at a company visibly paying to staff one team, with the exact advertised roles as the cold-email opener, for about 15.5 credits.
Outcome: A running changelog of competitor messaging with the date each new campaign went live, so positioning shifts are caught in week one instead of in the next lost deal.
Paste any of these into Claude once the skill is installed and the SyncGTM MCP is connected.
Pull the active Meta ads for https://www.facebook.com/hubspot with max_results 20, then summarise in one line each what promise the ads lead with.Run meta_ads_analysis on these three competitor Facebook page URLs, max_results 20, one call per page: https://www.facebook.com/salesforce, https://www.facebook.com/asana, https://www.facebook.com/slack. Give me a table of page, ad count and the message they lead with.Get the Meta ads for https://www.facebook.com/shopify with ad_type set to employment and max_results 20 — I want to know which roles they are paying to fill.Run meta_ads_analysis on https://www.facebook.com/semrush with max_results 20, then run b2b_ads_search on semrush.com and tell me where the Meta message and the B2B message disagree.Run check_credits first, then run meta_ads_analysis at max_results 20 on each of these five Facebook page URLs, one call per page: https://www.facebook.com/hubspot, https://www.facebook.com/salesforce, https://www.facebook.com/shopify, https://www.facebook.com/canva, https://www.facebook.com/mailchimp. Flag which pages returned zero active ads.Always set max_results to 20. The range is 10 to 20 and the default is 10 — requesting 50 is the most common error on this tool.
Pass the full Facebook page URL when you do not know the numeric Page ID. page_id accepts a URL directly, so there is nothing to look up first.
Run one page per call and ask for the positioning read — what they lead with, what they never mention. Bundling competitors into a single call muddles which ad belongs to whom and saves nothing: you are billed 0.5 credits per call either way.
Leave ad_type at "all ads" unless you specifically want one regulated category. Each of the other four filters to that category alone, so "employment" returns hiring ads and nothing else, and a wrong pick returns an empty list rather than a wider one.
Read an empty result as "no active ads today", never as "they do not advertise". Re-run in a week if you are tracking campaign cadence.
Use b2b_ads_search (0.5 credits) when you have a company domain rather than a Facebook page, and similarweb_insights (2 credits, domains is an array) when you want the traffic mix behind the spend. This tool covers Meta pages only.