How to Monitor Competitor Ads: The Ongoing Playbook for Diff-Detection and Alerts
Stop refreshing ad libraries manually. Build a competitor ad monitoring system with scheduled API pulls, diff-detection, and Slack alerts that tells you what changed since last week.

Sections
How to Monitor Competitor Ads: The Ongoing Playbook for Diff-Detection and Alerts
TL;DR: Monitoring competitor ads isn't the same as finding them. Finding is a one-time lookup. Monitoring is a system that tells you what changed since last week — new ads, dropped creatives, copy variants, format shifts. This playbook covers the full workflow for how to monitor competitor ads on autopilot: defining your target list, building a saved-ads baseline, scheduling API pulls, running diff detection, routing alerts to Slack, and producing a weekly report your team will actually read. Manual ad-library refreshes don't scale past 2-3 competitors. Automation does.
You've been there. Tuesday morning, you open the Meta Ad Library, search your top competitor, take some screenshots, and paste them into a Notion doc. Next Tuesday, you do it again. Six weeks in, you have no idea what actually changed between week 3 and week 4 because you were looking at snapshots, not diffs.
That's the core problem with how most teams monitor competitor ads. A screenshot of today is not intelligence. A diff of today versus last Tuesday is. The moment a competitor drops a new hook angle, launches a price-led creative, or quietly kills a campaign that was running for 90 days — that's the signal. And a manual refresh cycle misses it constantly.
This is the playbook for building a monitoring system, not a monitoring habit. Systems run on schedules. Systems compare. Systems alert. They don't depend on someone remembering to check.
We cover seven steps: the angle setup, the saved-ads baseline, scheduled API pulls, diff detection, change alerts, the weekly report template, and cross-platform extension. If you want the one-time lookup version — how to find competitor ads for the first time — that's a different guide. This one is for ongoing competitive research at scale.
Step 0: Define Your Angle Before You Automate Anything
Every system to monitor competitor ads breaks down when the signal-to-noise ratio is wrong. You pull 400 ads per week from 12 competitors, get a diff of 80 changes, and nobody reads the report because it's overwhelming. The fix is Step 0: decide what you're watching for before you build the pipeline.
Start with a competitor shortlist. Not every brand in your vertical — the 3-5 that your customers actually consider. These are the accounts worth monitoring at daily or weekly cadence. Everything else can be a monthly spot-check using the pre-launch competitor scan checklist.
Next, define your watch signals. A "change" in a competitor's ad library can mean many things:
- New ad launch: a creative that didn't exist last week
- Ad drop: a creative that was active last week and is now gone
- Format shift: switching from video to static, or from single-image to carousel
- Copy variant: same visual, new headline or body text
- Spend signal: ad timeline analysis showing a creative running for 60+ days (proof of performance)
- Geo expansion: a new market appearing in their targeting
You don't need to track all of these at once. Pick the two or three that are actionable for your team. If you're a creative strategist, new launches and dropped ads matter most. If you're a media buyer, long-running creatives and format shifts tell you more about what's working.
This upfront scoping keeps your diff output tight. A tight diff gets read. A bloated diff gets ignored.
Step 1: Build Your Saved-Ads Baseline
Before any automation, you need a starting state — a snapshot of what your competitors are running right now that will serve as the comparison point for all future diffs.
The most reliable way to do this is through a saved-ads workflow. In AdLibrary, you can save competitor ads directly to a collection. This gives you a persistent, timestamped record of what was running at the moment you saved it. It's not a screenshot in a Notion doc. It's a structured record with metadata — platform, format, estimated run duration, creative content — that you can query against later.
Spend 30-60 minutes on your initial baseline pass:
- Search each competitor in AdLibrary's unified search
- Filter by platform to isolate Meta, TikTok, or Google depending on your priority
- Save every active ad for each competitor into a dedicated collection ("Competitor: [Brand Name]")
- Note the save date — this is your T0
From this point forward, every new ad you pull gets compared against this T0 collection. Anything not in the collection is new. Anything in the collection that's no longer active is dropped. That's your diff.
This is also the right moment to note ad longevity signals. Creatives that have been running for 30+ days at the time of your baseline are proven performers. Flag them. They tell you what's working now, before you've built any automation to track trajectory.
For teams doing competitor ad research as a systematic workflow, the saved-ads baseline is the artifact your future-self will thank you for.
Step 2: Set Up Scheduled API Pulls
The baseline is manual. Everything after it should be automated. That means a scheduled pull against an ad intelligence API — not a person opening a browser tab every Tuesday. This is how you move from "I check occasionally" to "I genuinely monitor competitor ads on a system."
Using the adlibrary API
The adlibrary API is the cleanest option for multi-platform monitoring. A single POST request to https://adlibrary.com/api/v1/search returns structured ad data across Meta, TikTok, YouTube, Snapchat, Pinterest, LinkedIn, and Google in one payload. No app review. No business verification dance. No rate-limit negotiation.
Compare that to building the same pipeline on Meta's free Ad Library API directly. Meta's API is free and adequate for single-platform monitoring — it's the right tool if you're watching one brand on Facebook only. The moment you add TikTok or Google data into the same query, you're maintaining two separate API connections with different auth, different schemas, and different rate limits. That's where adlibrary's multi-platform coverage becomes necessary rather than optional.
A minimal weekly pull looks like this in Python:
import requests, json, hashlib
from datetime import datetime
ADL_EMAIL = "[email protected]"
ADL_PASS = "yourpassword"
COMPETITORS = ["BrandA", "BrandB", "BrandC"]
for brand in COMPETITORS:
resp = requests.post(
"https://adlibrary.com/api/v1/search",
auth=(ADL_EMAIL, ADL_PASS),
json={"query": brand, "platforms": ["meta", "tiktok"], "limit": 50}
)
snapshot = resp.json()
fname = f"snapshots/{brand}_{datetime.now().strftime('%Y-%m-%d')}.json"
with open(fname, "w") as f:
json.dump(snapshot, f)
This gives you a dated JSON file per competitor per run. Each file is a snapshot. The diff runs between last week's file and this week's file.
No-code option: n8n or Make.com
If you're not running Python scripts, n8n and Make.com both support HTTP request nodes that can call any REST API on a schedule. The workflow is:
- Trigger node: Cron schedule (weekly, Monday 8am)
- HTTP request node: POST to adlibrary API with your target competitor
- Data store node: Save the result to a Google Sheet, Airtable, or n8n's built-in data store
- Compare node: Pull last week's data from the same store and run a JavaScript diff
- Notify node: Send diff summary to Slack or email
Zapier is a third option but less suited here because multi-step Zaps with conditional logic get expensive fast and the data store options are limited compared to n8n or Make.com.
For a reference implementation of the full automated pipeline, the Claude Code + adlibrary API workflows guide covers end-to-end scripted competitor intelligence setups in detail.
Step 3: Implement Diff Detection
This is the step most tutorials skip entirely. They tell you to "check ad libraries regularly" and leave you to figure out how to compare two weeks of data. If you want to genuinely monitor competitor ads rather than just look at them, diff detection is the entire point. Let's be concrete.
A diff has three output categories:
- New ads (launched): IDs present in this week's snapshot but absent from last week's
- Dropped ads (paused/removed): IDs present last week but absent this week
- Modified ads (variants): same advertiser, same visual hash, but different headline or body text
In code, the basic diff is a set operation:
import json
def load_ids(fname):
with open(fname) as f:
data = json.load(f)
return {ad['id']: ad for ad in data.get('ads', [])}
last_week = load_ids("snapshots/BrandA_2026-05-09.json")
this_week = load_ids("snapshots/BrandA_2026-05-16.json")
new_ads = {k: v for k, v in this_week.items() if k not in last_week}
dropped_ads = {k: v for k, v in last_week.items() if k not in this_week}
print(f"New: {len(new_ads)} | Dropped: {len(dropped_ads)}")
Variant detection requires a content fingerprint. Hash the headline + first 100 chars of body text per ad. If the hash changed but the ad ID didn't, it's a variant. If both changed, it's a new creative.
The output from this step feeds directly into your alert system. You're not sending a 50-ad diff to Slack — you're sending a 3-line summary: "BrandA launched 2 new video ads, dropped 1 carousel, changed headline on 1 static. See full diff: [link]."
This is what reading competitor patterns through the Meta algorithm actually looks like in practice — not intuition, but structured signal extraction from data you collected systematically.
For context on how ad intelligence and automation intersect at the strategic level, the glossary entry covers the landscape well.
Step 4: Configure Change Alerts
A diff that lives in a file nobody opens is worthless. The alert step pushes detected changes to wherever your team already spends attention — which for most growth teams is Slack.
A minimal Slack webhook notification looks like:
import requests
def send_slack_alert(brand, new_count, dropped_count, webhook_url):
msg = (
f"*Competitor Monitor: {brand}*\n"
f"New ads this week: {new_count}\n"
f"Dropped ads this week: {dropped_count}\n"
f"Full diff: https://yourdashboard.com/diffs/{brand}"
)
requests.post(webhook_url, json={"text": msg})
For no-code pipelines, n8n's Slack node and Make.com's Slack module both handle webhook delivery natively. You configure the message template once, and every future run fills it in automatically.
Some teams route alerts through email instead of Slack — particularly agencies sending a weekly competitive brief to clients. In that case, the diff summary becomes the email body, and the full snapshot export becomes the attachment. The ad-data-for-ai-agents use case shows how to extend this further: routing diff outputs into an AI agent that drafts the brief automatically.
One important threshold setting: don't alert on every single new ad. Set a minimum threshold — alert if a competitor launches 2+ new ads in a week, or if a creative that was running for 60+ days suddenly drops. Single-ad changes in small accounts generate noise without signal.
For ad-intelligence teams doing this at agency scale, tiered alerting by competitor tier (T1 = daily, T2 = weekly, T3 = monthly) keeps the volume manageable.
Step 5: The Weekly Report Template
Automated alerts catch the events. The weekly report contextualizes them. These serve different purposes — the alert says "something changed," the report says "here's what it means."
A weekly competitor ad report that teams actually read has four sections:
1. Executive summary (3-5 bullets)
- Which competitors launched or dropped the most ads this week
- Any format shifts (video to static, single-image to carousel)
- Notable copy changes (price-led offers, new hooks, urgency language)
- Your recommended response action
2. New ad gallery (top 3-5 launches)
For each new ad flagged by the diff: the creative thumbnail, the headline, the estimated launch date, and the platform. One sentence of context — "New video ad leading with free shipping offer, appears to target abandoned cart audience based on copy."
3. Dropped ad analysis
Ads that disappeared this week. Include how long they ran before dropping. A creative that ran for 7 days and dropped is probably a test that failed. One that ran for 90 days and dropped is a proven performer they've retired — worth reverse-engineering before they repurpose it.
The ad timeline analysis feature gives you run-duration data directly, so you're not guessing from spotty screenshot timestamps.
4. Signals table
| Competitor | New Ads | Dropped Ads | Format Shift | Copy Variant | Spend Signal |
|---|---|---|---|---|---|
| BrandA | 3 | 1 | No | Yes | 67-day static still running |
| BrandB | 0 | 0 | No | No | No change |
| BrandC | 1 | 4 | Video → Static | No | Multiple drops |
A table like this takes 10 minutes to build from your diff output and gives stakeholders everything they need in one scan.
For teams that want to push report data directly into their competitive research workflow, the diff output and the creative brief process can be chained — new competitor ads flow straight into a brief template.
Step 6: Cross-Platform Monitoring
Most setups to monitor competitor ads start on Meta because Meta's Ad Library is the most accessible. But ad intelligence built on a single platform has a critical blind spot: competitors often test aggressive angles on TikTok first, then port winners to Meta. If you're only watching Facebook, you're seeing the validation run, not the creative discovery phase.
A complete monitoring stack covers:
Meta (Facebook + Instagram) — Meta Ad Library for transparency data. The free API handles basic queries. For multi-brand, multi-filter pulls at scale, the paid API endpoint is faster and more consistent.
Google — Google Ads Transparency Center shows display and search ads. No API — you're either scraping or using a third-party data provider.
TikTok — TikTok Creative Center has a public-facing ad explorer but no official API for competitive data. Data providers like adlibrary aggregate this platform for you.
LinkedIn — LinkedIn Ad Library is accessible via the native interface. B2B advertisers especially need this — LinkedIn creative cycles are slower, but a competitor's messaging shift on LinkedIn often signals a positioning change before it hits Meta.
The challenge of a DIY multi-platform stack is schema normalization. Meta returns one JSON shape. TikTok returns another. Google returns HTML. Normalizing four different data shapes into a unified diff takes real engineering time.
The multi-platform coverage feature in adlibrary handles this normalization on the API side — every platform returns the same JSON schema, so your diff logic works identically across Meta, TikTok, YouTube, and LinkedIn without format conversion. That's the practical case for a paid API versus stitching together free sources.
For teams tracking brand-level ad transparency signals across platforms, the unified schema means your signals table from Step 5 covers all platforms without separate pipelines.
Step 7: What Signals to Act On
Data without action is just storage. Once you monitor competitor ads systematically, you'll see more than you can act on. Here's a concrete decision map for the signals your monitoring system will surface:
Competitor launches 3+ new ads in one week → they're in a testing phase. Flag creative formats and angles. Add the new ads to your swipe file for brief research. Don't copy — analyze. What audience are they targeting based on copy? What pain point is the hook addressing?
Competitor drops a 90-day creative → their proven performer just retired. This is your window. Study the format, the hook structure, the offer. Use it as a reference in your next creative brief. That creative proved demand; you can build a differentiated version.
Competitor shifts from video to static in a single week → possible video fatigue or budget constraint. Static scales faster and cheaper. If this is a well-funded competitor, watch for a new video launch 2-3 weeks later with a refreshed concept.
Copy variant appears with urgency language ("ends Sunday," "48 hours only") → they're running a promotion. If your product competes directly, this is the moment to either counter-program or hold position. Check your own ad relevance diagnostics — you may see quality score impacts if their promo is eating your auction space.
No change for 3+ weeks → either they've found a stable creative that's working and aren't testing, or spend is paused. Scaling decisions that use ad library signals often hinge on detecting exactly this steady-state — a competitor in quiet mode often signals market stability, which can be a green light for your own budget increases.
For brand analysts building a complete alert system, this decision map should live in your report template as a standing reference so whoever reads the weekly brief knows exactly what to do with each signal type.
Choosing the Right Monitoring Cadence
One of the most common questions when setting up how to monitor competitor ads is cadence: how often do you pull? Not every competitor warrants daily monitoring. A tiered cadence keeps your system manageable:
Daily pulls — for direct competitors in high-spend verticals (DTC, fintech, lead gen) during active promotional windows. Creative refresh cadence in these verticals can be 48-72 hours, so a weekly diff misses half the cycle.
Weekly pulls — the default for most growth teams and agency clients. Covers launch/drop cycles without generating alert fatigue. Runs cleanly on Monday morning as a pre-team-sync brief.
Monthly spot-checks — for indirect competitors or aspirational brands you're learning from rather than competing against directly. The pre-launch competitor scan checklist works well here as a structured template.
According to a 2025 Nielsen report on competitive intelligence practices, 68% of marketing teams that run structured competitor monitoring programs identify actionable creative insights at least once per month — versus 31% of teams that rely on ad-hoc manual checks. The system doesn't just save time; it reliably surfaces signal that manual workflows miss.
Forrester research on marketing automation shows that teams with automated competitive monitoring report 40% faster response time to competitor creative shifts, which translates directly to auction efficiency when both brands are running similar formats.
Scaling to Agency Level: Monitoring Competitor Ads Across Multiple Clients
If you're running this for multiple clients, the per-client overhead of maintaining separate monitoring setups compounds fast. When you need to monitor competitor ads for 10+ brand accounts simultaneously, the architecture matters more than the tooling. The agency-efficient approach:
One API connection, multiple competitor sets. The adlibrary API supports any number of queries from the same auth credentials. You run a single scheduled script that loops through all client competitor lists and writes separate snapshot files per client.
Templatized reports. Build one report template — the four-section format from Step 5 — and parameterize it by client and competitor. Every client gets the same structure with their own data.
Shared alert routing with client-specific channels. One n8n instance, multiple Slack webhook destinations. Client A's diff goes to the Client A channel. No manual routing.
Credits awareness. Each API search call costs 1 credit on the adlibrary Business plan. If you're monitoring 5 competitors × 3 platforms × 7 days = 105 calls per week per client. At scale, this math informs how you bundle client accounts and tier the monitoring depth.
For the full automated competitor research setup at agency scale, the competitor ad research strategy guide and the Claude Code automation workflow cover the engineering layer in more depth.
Frequently Asked Questions
How do I automatically track competitor ads without checking manually every day?
Set up a scheduled script or automation tool (n8n, Make.com, Zapier) that pulls competitor ad data from an ad intelligence API on a daily or weekly interval. Store each snapshot, then run a diff against the previous snapshot to surface new ads, dropped ads, and changed copy. Route the diff output to a Slack channel or email so you get an alert only when something actually changes.
What is the difference between monitoring competitor ads and finding them?
Finding competitor ads is a one-time lookup — you open an ad library, search a brand, and screenshot what's running today. Monitoring is an ongoing system that compares snapshots over time. The value is in the diff: new ads that launched this week, creatives that dropped after 3 days, copy variants that appeared mid-funnel. A single snapshot tells you what exists; a monitoring system tells you what changed and when.
Which platforms can I monitor competitor ads on?
You can monitor competitor ads on Meta (Facebook and Instagram via Meta Ad Library), Google (Google Ads Transparency Center), TikTok (TikTok Creative Center), LinkedIn (LinkedIn Ad Library), Snapchat, Pinterest, and YouTube. A multi-platform API like adlibrary consolidates these into a single query endpoint, so you don't have to maintain separate scrapers for each platform.
How often should I pull competitor ad data for monitoring?
For most growth teams and agencies, a weekly pull cadence is sufficient — it captures launch/drop cycles without generating alert noise. High-spend verticals (DTC, fintech, lead gen) running aggressive creative testing benefit from a daily pull, particularly during promotional windows like Black Friday or product launches when competitors iterate every 24-48 hours.
Do I need to code to monitor competitor ads automatically?
No. No-code automation tools like n8n, Make.com, and Zapier can connect an ad intelligence API to a scheduled trigger, a simple data store, and a Slack webhook without writing a single line of code. For teams that do code, a short Python script using the adlibrary API handles the full pull-diff-alert loop in under 50 lines. The adlibrary API requires no app review or business verification, which removes the main friction point of the Meta Marketing API alternative.
Build the System Once, Read the Signal Every Week
Manual ad-library refreshes don't compound. They reset every Tuesday. A monitoring system compounds — your diff data gets richer, your baseline gets longer, and your weekly report gets more accurate at predicting what a competitor is going to do next based on what they've done before.
The setup investment is real: a few hours to wire the API, configure the diff logic, build the Slack alert, and template the report. After that, the system runs without you. The automate competitor ad monitoring use case on adlibrary walks through the full workflow for teams that want a reference implementation.
For the API access and automation layer specifically — the Business plan at €329/mo includes full API access and 1,000+ credits per month, which covers daily monitoring of 5+ competitors across 3 platforms with room to spare. If you're running this at agency scale with multiple clients, that's the tier that makes the math work. See the Business plan and API access details.
If you want to start smaller — build the saved-ads baseline and weekly manual diff before committing to automation — the Starter and Pro tiers give you full access to saved-ads collections, platform filters, and ad timeline analysis. Upgrade to API access when the manual step becomes the bottleneck. Explore all plans.
The goal is a system that tells you what changed. Not a screenshot of what exists.

Further reading: If this playbook is the ongoing monitoring layer, these posts and guides cover the adjacent pieces:
- Ad Spy Tools in 2026 — tool comparison for the initial discovery phase
- Competitor Ad Research Strategy — the strategic framework behind the research workflow
- Guide to Competitor Ad Research — the foundational methodology
- Reading the Meta Algorithm Through Competitor Patterns — what competitor ad behavior reveals about Meta's delivery logic
- Diagnosing Ad Fatigue with Competitor Longevity Signals — using run-duration data as a creative fatigue indicator
- Scaling Decisions with Ad Library Signals — connecting competitive signal to your own budget decisions
- Building a Competitor Swipe File — turning monitored ads into a structured creative reference
- Claude Code + adlibrary API Workflows — full end-to-end scripted implementation guide
Glossary terms referenced in this article:
Tools that support the monitoring workflow:
- Ad Budget Planner — size your monitoring credit budget before committing to a cadence
- CPM Calculator — benchmark competitor spend efficiency from their run-duration signals
Further Reading
Related Articles

Ad Spy Tools in 2026: 9 Picks for Honest Competitive Research
Ad spy tools compared on coverage, freshness, and search depth. 9 picks for ethical competitor ad research, plus the workflow most teams skip.

Competitor Ad Research Strategy: The 2026 Creative Intelligence Framework
How to read a competitor's ad strategy from their library alone: funnel stage, hook taxonomy, and offer mapping — plus the full creative intelligence framework for 2026.

A Strategic Guide to Competitor Ad Research
Learn how to use AI for competitor ad research: angle clustering, run-time filtering, and hypothesis generation. Plus ad intelligence tools, common mistakes, and a practical 6-step workflow.

Pre-launch competitor scan: a 30-minute checklist for media buyers
A 30-minute pre-launch competitor scan in 6 blocks: scope, filter proven runners, tag hooks, find gaps, check placement skew, write your launch hypothesis. Plus the weekly competitor research rhythm for active media buyers.

Reading the Meta algorithm through competitor ad patterns
How to read Meta algorithm delivery signals through competitor ad patterns: format mix, Reels placement skew, hook trends, and a weekly intelligence cadence.

Diagnosing ad fatigue with competitor longevity signals
Learn how to diagnose ad fatigue before your own metrics turn red — using competitor longevity signals from the ad library as a leading indicator.

Scaling decisions with ad library signals
Three ad library signals replace ROAS rules-of-thumb: 30-day longevity, format convergence, and hook durability give media buyers a validated scaling trigger.

Claude Code + adlibrary API: End-to-End Competitor Intelligence Workflows
Run five Claude Code workflows against the adlibrary API for automated competitor monitoring: Slack alerts, bulk teardowns, hook extraction across 500 ads, monthly landscape reports, and new entrant detection.