3 steps · 鹦鹉AI
Facebook Ads Library API: pull a competitor's live ads and what they bid on in Google
Give your agent a competitor's Facebook page and get back their live Meta ads with the format, call to action and opening line of each, plus the same advertiser's ads in the Google Ads Transparency Center. 3 steps through 鹦鹉AI, with the price printed before each.
One prepaid balance · no per-tool signup · no card
Try it
One prompt runs the whole thing
Set your agent up, once
set up data capabilities — https://parrot.amorist.cn/llms.txt
Then ask for it
Using 鹦鹉AI, count the active Meta ads for Notion (facebook.com/notionhq), then pull the 20 most recent. Show me the price first. Group them by format and call to action, and give me a CSV with ad_archive_id, started, format, cta, title and hook. Then list what the same company is running in the Google Ads Transparency Center.
Give a Page URL, not a keyword
A Page URL returns that advertiser's ads. A keyword returns everyone bidding on the phrase.
Count before you pull
The Meta route bills per ad returned. The count probe is one result; it tells you what an uncapped pull would cost.
Ask for format and CTA
The agent groups on two fields Meta renders for every ad. Grouped output is faster to review than raw creative.
Add the Google side
One cheap call returns the advertiser's Google ads by domain. Two libraries, one prompt.
The steps
What 鹦鹉 AI calls, and what each call costs
Prices come from the catalog's own rate book, read when this page loads, on one prepaid balance.
| # | Step | What the agent asks | Price |
|---|---|---|---|
| 1 | Count the ads firstonlyTotal:true returns the count as a single billed result. Read it before you decide how many ads to pull. | how many active ads the Page runs, as one cheap result row | 3.51 credits/result |
| 2 | Pull the Meta adsReads the Ad Library web UI. Billed per ad returned, so cap it with resultsLimit and maxItems. | active ads for a Page from the Meta Ad Library, with creative text and format | 3.51 credits/result |
| 3 | Pull the Google adsOne flat call per domain, with format and first-shown dates per creative. Failed and empty searches are free. | the same advertiser's ads in the Google Ads Transparency Center, by domain | 10.5 credits/success |
At the rates above, 20 rows where every call hits comes to 150.90 credits. The receipt below is what it actually cost.
The receipt
What it actually cost, in credits
Run on 2026-09-14, 20 ads in.
- Ads counted
- 113 active ads on the Page, one result row
- Meta ads pulled
- 20 active ads for Notion: 10 image, 6 dynamic creative, 4 video
- Calls to action
- Sign up (13), Get offer (5), Apply now (2)
- Google ads pulled
- 17 creatives on notion.so: 9 text, 7 image, 1 video
- Metered on 鹦鹉AI's shared key
- 10.50 credits for the Google call
- Not metered
- the two Meta calls ran on this team's own Apify key, which 鹦鹉AI never meters; on the shared key they bill at the rate in the table, 73.50 credits for the probe and 20 ads
The count probe came back as one result row, then twenty ads came back in one Meta call and 17 in one Google call. The worst-case total above counts the count probe once per row because it shares the pull's endpoint; in practice it is one result. Every Meta ad opened with the same line and pointed at a sign-up; the variety is in format, not copy. The Google side is mostly text ads. The Meta calls went out on the team's own Apify key, and a team's own key is never metered, so the receipt shows the shared-key rate for them separately. A run on 鹦鹉AI's shared key bills them at the rate in the table.
Questions
Before you start
What does a competitor pull cost?
It depends on how many ads they run. Notion had 113 active ads; pulling all of them would cost 395.50 credits on 鹦鹉AI's shared key. This run capped at 20 (73.50 credits).
Is this Meta's official API?
No. It reads the public Ad Library. Meta's own ads_archive route is free but needs identity verification and returns less.
Why did 5 ads return template placeholders?
Those are DCO (dynamic creative) ads. The library shows the template, not the rendered variants. This run's CSV has 10 IMAGE, 4 VIDEO, and 6 DCO; 5 of the DCO rows show placeholders and the sixth carried real copy.
What about the landing pages?
18 of the 20 ads point at fb.me (a redirect); 2 point at notion.com. Ask the agent to scrape the final destinations as a follow-up step.
Why did the image or video link die overnight?
Meta rotates public CDN URLs. Save the file during the pull if you want a durable swipe file.