Weekly competitor Facebook Ads brief with Airtop

By General Input

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.

Integrations

  • Airtop
  • Google Sheets
  • Slack
  • Gmail

Type

Agentic Task

Categories

  • 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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats