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.

Agentic Task
AirtopGoogle SheetsSlackGmailMarketingResearch & MonitoringAI Reports
PromptCreate

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.

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.

FAQs

Does this really work against the Meta Ad Library?
Yes. Meta's Ad Library aggressively blocks headless scrapers, which is why we use Airtop. It runs a real Chromium browser in the cloud that clears challenge walls the same way a person clicking around would.
How does it decide which ads are new, paused, or just variants?
Each week's raw pull is compared to the previous week's log in Google Sheets. Ads that disappear are marked paused, first-time ads are marked new, and ads with the same landing URL but shifted copy or creative are flagged as variants.
Do I need to give Airtop my Facebook login?
No. The Meta Ad Library is public, so Airtop just loads the library URL for each competitor page you list — no Facebook credentials required.
Can I use Microsoft Teams or Outlook instead of Slack and Gmail?
This starter uses Slack and Gmail, but the same workflow can be pointed at another chat tool or email provider if we support that integration.
What if a competitor has hundreds of active ads?
The workflow follows the Meta Ad Library's infinite scroll to pull every currently-running ad. For very large libraries you can cap the count, or filter to a specific ad type or region.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Local listing health board for every location you manage

See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.

Local Business Data
Google Sheets
App
Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Let support send one-off Loops emails without an engineer

Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.

Loops.so
Stripe
Google Sheets
App
Stop cold emails to anyone with a live deal in Pipedrive

Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.

Mailshake
Pipedrive
Google Sheets
Deterministic Code
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App

Stop clicking through the Meta Ad Library by hand.

Ship your marketing team a weekly competitor-ads brief without the manual scrolling.