Cross-Platform Ad Intelligence - Meta + Google + TikTok avatar

Cross-Platform Ad Intelligence - Meta + Google + TikTok

Pricing

from $4.00 / 1,000 ad records

Go to Apify Store
Cross-Platform Ad Intelligence - Meta + Google + TikTok

Cross-Platform Ad Intelligence - Meta + Google + TikTok

Competitor ad creatives, formats, run-dates, and active-vs-stopped signal across Meta Ad Library + Google Ads Transparency + TikTok, in one schema keyed by advertiser/brand/domain. Creative hook/offer tagging, competitor-set rollups, new-creative monitor mode. For marketers, DTC, agencies.

Pricing

from $4.00 / 1,000 ad records

Rating

0.0

(0)

Developer

Seibs.co

Seibs.co

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Cross-Platform Ad Intelligence (Meta + Google + TikTok)

TL;DR for performance marketers, DTC brands, and agencies: Pull a competitor's live ad creatives, formats, run-dates, and active-vs-stopped signal across Meta Ad Library + Google Ads Transparency Center + TikTok in one run, normalized into a single cross-platform schema keyed by advertiser / brand / domain. On top of the raw ads it adds the "what's working now" layer the ad-spy SaaS tools gate behind subscriptions: creative hook/offer tagging, per-advertiser rollups (active vs stopped, format mix, top angles, longest-running creative), and a cross-advertiser competitor comparison. The transparency archives are public-by-design but have no clean API and the paid stack (AdSpy $149/mo + BigSpy $99/mo + Pipiads $77/mo ≈ $325/mo) gates the cross-platform research - this undercuts it at pay-per-use. Logged-out public archives, no login, no token, PII minimized to the advertising business entity.

Run it in 30 seconds

# Via the Apify Python SDK
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("seibs.co/ad-library-intel").call(run_input={
"mode": "competitor_set",
"advertisers": ["Allbirds", "Rothy's"],
"platforms": ["meta", "google", "tiktok"],
"country": "US"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Or via curl:

curl -X POST "https://api.apify.com/v2/acts/seibs.co~ad-library-intel/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode": "advertiser_ads", "advertisers": ["Allbirds"], "platforms": ["meta","google","tiktok"]}'

Or click "Try for free" on this page if you prefer the no-code UI.

What you get

Each run produces:

  • A clean dataset, filterable in the Apify console and downloadable as CSV or JSON
  • An OUTPUT.html dashboard preview of your top records
  • A sample-output preview at ./.actor/sample-output.json
  • An access_notes record up top documenting each archive's access method, anti-bot tier, and escalation telemetry

What does Ad Intelligence do?

It queries each selected ad-transparency archive for your advertisers (or keywords) and normalizes every creative into one schema: platform, advertiser_name, advertiser_domain (the cross-platform join key), ad_format (normalized to image / video / carousel / text), headline, body_text, cta_text, landing_url, media_urls, start_date / end_date, is_active, days_running, spend_band / impressions_band where the archive exposes it, regions, and publisher_platforms. Then it runs the value layer:

  • Creative analysis - tags each creative's hook (question / social-proof / urgency / curiosity / problem-solution / direct-benefit), offer (% discount / dollar-off / free shipping / free trial / BOGO / bundle / subscription / lead magnet / sale event), themes, and normalized CTA. This is the "what angle is working" signal.
  • Advertiser tracking - a per-advertiser footprint rollup: active vs stopped counts, format mix, spend-band mix, top hooks/offers, and the longest-running (proven) creative.
  • Competitor set - a cross-advertiser comparison: who's running the most, the shared angles everyone is using, and each advertiser's unique lean.

Modes

ModeWhat it returns
advertiser_ads (default)Every matching creative per platform for your advertiser/brand/domain queries, normalized + (optionally) creative-tagged.
keyword_searchCreatives discovered by keyword/term across the archives - for "what ads run for this offer" research.
competitor_setadvertiser_ads plus the cross-advertiser competitor_set comparison and per-advertiser rollups (defaults include_advertiser_tracking on).

Platform coverage + access notes

The three archives are public-by-design but none offers a clean API, and they fingerprint automated clients differently. Coverage is honestly described per surface:

PlatformArchiveAccessNotes
metaMeta Ad Library (Facebook + Instagram)browser-firstThe commercial-ads view is public, but the internal search_ads endpoint is gated by an lsd token + datr cookie minted by a real page load - so the browser tier loads the public results page and captures the page's own search XHR (no forged token, no login). The official Graph ads_archive API only covers political/social-issue ads and needs a token, so it is intentionally not used (commercial coverage is the point).
googleGoogle Ads Transparency Centerhttp-firstFree-text + region search hits the internal SearchService/SearchCreatives RPC (f.req form body, )]}' JSON prefix); reachable via curl_cffi TLS impersonation, with the browser tier capturing the same XHR as a fallback.
tiktokTikTok Commercial Content Library / Creative Centerhttp-firstThe Commercial Content Library (library.tiktok.com) exposes a JSON advertiser/keyword search (strongest for EU regions); the Creative Center Top-Ads API is a region-gated trend fallback.

Where a logged-out request is blocked or returns no parseable ads, the platform fails soft with a documented platform_pending / fetch_error note (the run still finishes SUCCEEDED) rather than fabricating data.

Anti-bot escalation (residential + browser)

Each archive request runs an automatic escalation ladder:

  1. httpx over the DATACENTER proxy - cheapest, used first for the JSON surfaces (Google, TikTok).
  2. curl_cffi with real Chrome TLS impersonation over the RESIDENTIAL proxy - defeats JA3/TLS-fingerprint WAFs (Meta's edge, Google's RPC).
  3. Playwright (patchright stealth) over RESIDENTIAL - loads the archive page and replays/captures its own API call (carrying the live token). This is what makes the token-locked Meta surface return data.
  4. Fail-soft - documented note, run stays SUCCEEDED.

Set use_browser_fallback=false to use plain httpx only (Meta then returns a platform_pending note). For the most reliable Meta/Google clearance, point the browser tier at a warm anti-detect browser via browser_cdp_url (or the BROWSER_CDP_URL env var); otherwise run on the apify/actor-python-playwright image so a headless Chromium is available.

Monitor mode (new-creative alerts)

Run this actor on an Apify Schedule and it switches to monitor mode: it diffs this run's creatives against the last scheduled run and emits a monitor_digest of new creatives and newly-stopped creatives per advertiser, optionally posting the digest to a Slack-compatible monitor_webhook_url. Charges one scheduled_delta_run per scheduled run. This is the "alert me when a competitor launches a new ad" use case.

Responsible use / data scope

Official public transparency archives, accessed logged-out, no account creation, no paid API token, no login walls bypassed. We minimize PII: the identity we keep is the advertising business entity (the page/brand/advertiser the archive publishes by design) plus the public creative - we never resolve a page admin or any natural-person contact. Respect each platform's terms and your local regulations for how you use competitive ad data.

AI / RAG / Agent

The overview dataset view is a narrow, token-efficient slice for LLM tool responses. A paired MCP server (mcp-ad-library-intel) exposes these as agent tools (search_advertiser_ads, get_active_creatives, compare_competitors, track_new_creatives, search_ads_by_keyword) and is x402 (USDC on Base) + Skyfire ready for token-less agentic payments.

Features

  • Cross-platform in one actor: Meta + Google + TikTok, deduped by advertiser/domain
  • Active-vs-stopped signal + days-running per creative
  • Creative hook / offer / theme / CTA tagging (no LLM key required)
  • Per-advertiser rollups + cross-advertiser competitor comparison
  • New-creative monitor mode with Slack webhook
  • Anti-bot escalation (curl_cffi + browser XHR capture) with fail-soft notes
  • Pay-per-event pricing that undercuts the ~$325/mo ad-spy SaaS stack

Use cases

  • Competitive creative research - what's your competitor running right now, on which platform, in which format
  • "What's working" trend-spotting - which hooks/offers dominate a niche this week
  • Creative refresh tracking - get alerted when a competitor launches or kills a creative
  • Agency reporting - a cross-platform competitor footprint table per client
  • DTC / performance marketing - mine proven (long-running) creatives for angles to test

Pricing (Pay Per Event)

EventPriceWhen
ad_record$0.004Per normalized cross-platform creative
creative_analysis$0.008Per creative tagged with hook/offer/theme/CTA
advertiser_tracking$0.010Per advertiser rollup + competitor comparison
scheduled_delta_run$0.050Per scheduled monitor-mode delta digest

A run that returns nothing costs nothing. The free Apify plan covers exploration runs on your $5 platform credit.

Part of the Seibs.co intelligence portfolio. Pairs well with shopify-store-discovery (find a store -> see its ads), tiktok-shop-creator-intel, and the MCP twin mcp-ad-library-intel.