Weekly competitor Facebook Ads brief with Airtop
Every Monday at 8am, a cloud browser pulls each competitor's live Meta ads, logs them to a sheet, and emails a plain-language brief to marketing.
Every Monday at 8am, run a competitor Facebook Ads intelligence brief for my marketing team. The list of competitor Facebook pages and the log of last week's ads live in Google Sheets — pull the competitor list from the 'competitors' tab and the previous week's ads from the 'raw_ads_log' tab.
For each competitor page in the list, use Airtop to Load URL to that page's Meta Ad Library results (facebook.com/ads/library filtered to that page, all active ads, all regions). Meta's Ad Library blocks most scrapers behind challenge walls, so a real Airtop Chromium session is required — do not attempt to fetch these pages with a plain HTTP request. Then use Airtop Paginated Extraction to walk the library's infinite scroll and pull every currently-active ad, capturing the ad copy, creative type (image, video, carousel, collection), first-seen or launch date shown in the library, and any landing URL the ad links out to. Use airtop Query Page when a specific detail isn't reliably present in the structured extraction.
Once every competitor's active ads are pulled, compare this week's set against last week's raw_ads_log. Decide which ads are new (present this week, absent last week), which have been paused (present last week, absent this week), and which are variants of running creatives (same landing URL or near-identical copy with a shifted headline, image, or call to action).
Use google-sheets Append Values to add this week's fresh raw ads to the raw_ads_log tab, one row per ad, including the competitor page, ad copy, creative type, first-seen date, landing URL, and the pull date.
Then draft a plain-language brief for the marketing team highlighting: new launches (which competitors shipped what this week), paused campaigns (what dropped out of rotation), recurring messaging themes across active ads, and any noticeable shifts in offer, price, promotion, or positioning versus last week. Keep it skimmable — short sections, plain English, no jargon, no raw table dumps.
Finally, use slack Send a Message to post the brief to the #marketing channel, and use gmail Send a Message to email the same summary to my head of marketing. Use the same brief text in both places so the Slack post and the email match.
Trigger: cron, every Monday at 8am in the org's timezone. Meta Ad Library emits no webhooks, so a schedule is the right trigger. If a competitor page returns zero active ads, still log the run so the diff next week is accurate.
Additional information
What does this prompt do?
- Every Monday at 8am, opens the Meta Ad Library for each competitor Facebook page in your list using a real cloud browser that clears Meta's challenge walls.
- Extracts every currently-active ad with its copy, creative type, first-seen date, and landing URL, then appends the fresh rows to your Google Sheets log.
- Compares this week's pull against last week's log to flag brand-new launches, ads that have been paused, and variants of running creatives.
- Drafts a plain-language brief covering new launches, paused campaigns, messaging themes, and offer or positioning shifts, then posts it to Slack #marketing and emails it to your head of marketing.
What do I need to use this?
- An Airtop account — the cloud browser that handles the Meta Ad Library's challenge walls.
- A Google Sheets log with your competitor Facebook pages and a tab for the weekly raw-ads history.
- A Slack workspace with the marketing channel where the brief should land (defaults to #marketing).
- A Gmail account and the email address of your head of marketing.
How can I customize it?
- Change the schedule (daily during a launch, biweekly during quiet stretches, monthly for lightweight monitoring).
- Swap the Slack channel or Gmail recipient, or add extra readers on cc.
- Edit the competitor page list, or add filters — only video ads, only ads that mention 'sale', only ads targeting specific regions.
Frequently asked questions
Does this really work against the Meta Ad Library?
How does it decide which ads are new, paused, or just variants?
Do I need to give Airtop my Facebook login?
Can I use Microsoft Teams or Outlook instead of Slack and Gmail?
What if a competitor has hundreds of active ads?
Related templates
Stop clicking through the Meta Ad Library by hand.
Ship your marketing team a weekly competitor-ads brief without the manual scrolling.