/apify-ads-intelligence
Research, spy on, and analyze ads across Meta (Facebook & Instagram), Google (Ads Transparency Center + paid search results), TikTok (Ads Library + Creative Center), LinkedIn Ad Library, and X (Twitter — promoted tweets, best-effort) using Apify Actors. Use when user asks about
$ npx -y skills add apify/awesome-skills --skill apify-ads-intelligence --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/apify-ads-intelligence
Context preview
The summary Claude sees to decide when to auto-load this skill.
Research, spy on, and analyze ads across Meta (Facebook & Instagram), Google (Ads Transparency Center + paid search results), TikTok (Ads Library + Creative Center), LinkedIn Ad Library, and X (Twitter — promoted tweets, best-effort) using Apify Actors. Use when user asks about
SKILL.md
apify-ads-intelligence.SKILL.mdname: apify-ads-intelligence
description: Research, spy on, and analyze ads across Meta (Facebook & Instagram), Google (Ads Transparency Center + paid search results), TikTok (Ads Library + Creative Center), LinkedIn Ad Library, and X (Twitter — promoted tweets, best-effort) using Apify Actors. Use when user asks about competitor ads, ad library research, winning creatives, ad copy analysis, landing page audits from ads, cross-platform ad audits, brand transparency checks, or any task involving paid ad creatives, advertiser data, or ad targeting from public ad libraries.
author: Sameh Jarour
author_url: https://github.com/samehjarour
metadata:
keywords: "ads, advertising, competitor-ads, ad-library, creative-research, transparency, facebook, instagram, google, tiktok, linkedin, x, twitter, promoted-tweets"
Ads Intelligence Cluster
Answer natural language questions about ads, ad libraries, and competitor advertising activity by routing to the right Apify Actor and delivering a synthesized answer.
**CLI rules:** Always pass `--user-agent apify-awesome-skills/apify-ads-intelligence`, `--json` (or the relevant `--format` flag on `datasets get-items`), and `2>/dev/null`. The `--user-agent` flag is critical for telemetry — never omit it.
Note on platform coverage
- **Meta, Google, TikTok, LinkedIn**: real public ad libraries with rich data (creatives, targeting, dates, reach where disclosed).
- **X (Twitter)**: no public ad library exists. Coverage is a **best-effort workaround** that scrapes a brand's tweets and flags items with non-empty `card` field or `source` containing "Ads" as likely promoted. Always include the caveat in synthesis output.
Note on overlap with `apify-ecommerce`
That skill has an `ads-intelligence` intent that routes to `apify/facebook-ads-scraper` for shallow Meta-ad lookups. This skill is the deep dive across all five platforms. If you only need Meta ads as a side detail of an ecommerce question, stay in `apify-ecommerce`. If ads are the main task, use this skill.
Prerequisites
(No need to check it upfront)
- Apify CLI v1.5.0+ (`npm install -g apify-cli`)
- `jq` (recommended for response parsing and filtering; `brew install jq` on macOS, `apt install jq` on Linux)
- Authentication via one of:
- `apify login` (OAuth, opens browser)
- `APIFY_TOKEN` env variable (e.g. `export APIFY_TOKEN=...` or `.env` file)
- Token from [Apify Console → Settings → Integrations](https://console.apify.com/settings/integrations)
Verify auth: `apify info --user-agent apify-awesome-skills/apify-ads-intelligence` — should show username and userId.
Workflow
Copy this checklist and track progress:
Task Progress:
- [ ] Step 1: Detect intent and select Actor(s)
- [ ] Step 2: Fetch Actor schema
- [ ] Step 3: Ask user preferences (output format, result count, country)
- [ ] Step 4: Run the Actor (or Actors in parallel for cross-platform-audit) and fetch results
- [ ] Step 5: Synthesize a direct answer (not a data dump)
Step 1: Detect Intent and Select Actor
Classify the user's message into an intent, then pick the right Actor.
**Intent signals:**
| Signals in user message | Intent | |-------------------------|--------| | "what ads is X running", "competitor [brand] ads", "[brand] FB/Google/TikTok/LinkedIn/X/Twitter ads", "show ads from [page]", "promoted tweets from [brand]" | `competitor-ads` | | "ads about [topic]", "find [keyword] ads", "ads for [vertical]", "fitness/fintech/saas ads" | `keyword-ads` | | "trending ads", "winning ads", "top ads", "best performing", "long-running ads", "creative inspiration" | `top-creatives` | | "where do these ads go", "landing pages from ads", "click destinations", "ad funnels" | `landing-page-audit` | | "compare X's ads across platforms", "all ads from [brand]", "cross-platform ad audit" | `cross-platform-audit` |
If multiple intents detected, ask: *"Do you want [intent A] or [intent B]?"*
**Actor routing — always try Primary first, switch to Fallback only if it fails or returns 0 results:**
| Intent | Platform | Primary Actor | Fallback Actor | |--------|----------|---------------|----------------| | `competitor-ads` | Meta (FB/IG) | `apify/facebook-ads-scraper` | `brilliant_gum/facebook-ads-library-scraper` | | `competitor-ads` | Google | `dz_omar/google-ads-scraper` | `solidcode/ads-transparency-scraper` | | `competitor-ads` | TikTok | `brilliant_gum/tiktok-ads-library-scraper` (`source: library`) | `silva95gustavo/tiktok-ads-scraper` | | `competitor-ads` | LinkedIn | `silva95gustavo/linkedin-ad-library-scraper` | `dz_omar/linkedin-ads-scraper` | | `competitor-ads` | X (workaround) | `apidojo/twitter-scraper-lite` (`twitterHandles: [<brand>]`) + heuristic filter | `apidojo/tweet-scraper` | | `keyword-ads` | Meta | `brilliant_gum/facebook-ads-library-scraper` | `apify/facebook-ads-scraper` | | `keyword-ads` | Google | `apify/google-search-scraper` (`focusOnPaidAds: true`) | — | | `keyword-ads` | TikTok | `brilliant_gum/tiktok-ads-library-scraper` | — | | `keyword-ads` | LinkedIn | `silva95gustavo/linkedin-ad-library-scraper` | — | | `keyword-ads` | X (workaround) | `apidojo/twitter-scraper-lite` (`searchTerms: [<keyword>]`) + heuristic filter | `apidojo/tweet-scraper` | | `top-creatives` | Meta | `brilliant_gum/facebook-ads-library-scraper` (rank by `daysRunning`) | — | | `top-creatives` | TikTok | `burbn/tiktok-top-ads-spy` (sort by CTR / impressions / likes) | `brilliant_gum/tiktok-ads-library-scraper` (`source: creative_center`) | | `top-creatives` | Google | n/a — fall back to `competitor-ads` route, filter to active ads | — | | `top-creatives` | LinkedIn | n/a — fall back to `competitor-ads` route, rank by `impressionsPerCountry` reach | — | | `top-creatives` | X | n/a in v1 — no reliable promoted-content signal across timelines | — | | `landing-page-audit` | Meta | `brilliant_gum/facebook-ads-library-scraper` (`resolveSnapshotUrls: true`) | — | | `landing-page-audit` | Google | `apify/google
Read more
name: apify-ads-intelligence description: Research, spy on, and analyze ads across Meta (Facebook & Instagram), Google (Ads Transparency Center + paid search results), TikTok (Ads Library + Creative Center), LinkedIn Ad Library, and X (Twitter — promoted tweets, best-effort) using Apify Actors. Use when user asks about competitor ads, ad library research, winning creatives, ad copy analysis, landing page audits from ads, cross-platform ad audits, brand transparency checks, or any task involving paid ad creatives, advertiser data, or ad targeting from public ad libraries. author: Sameh Jarour author_url: https://github.com/samehjarour metadata: keywords: "ads, advertising, competitor-ads, ad-library, creative-research, transparency, facebook, instagram, google, tiktok, linkedin, x, twitter, promoted-tweets"
Ads Intelligence Cluster
Answer natural language questions about ads, ad libraries, and competitor advertising activity by routing to the right Apify Actor and delivering a synthesized answer.
**CLI rules:** Always pass `--user-agent apify-awesome-skills/apify-ads-intelligence`, `--json` (or the relevant `--format` flag on `datasets get-items`), and `2>/dev/null`. The `--user-agent` flag is critical for telemetry — never omit it.
Note on platform coverage
- **Meta, Google, TikTok, LinkedIn**: real public ad libraries with rich data (creatives, targeting, dates, reach where disclosed).
- **X (Twitter)**: no public ad library exists. Coverage is a **best-effort workaround** that scrapes a brand's tweets and flags items with non-empty `card` field or `source` containing "Ads" as likely promoted. Always include the caveat in synthesis output.
Note on overlap with `apify-ecommerce`
That skill has an `ads-intelligence` intent that routes to `apify/facebook-ads-scraper` for shallow Meta-ad lookups. This skill is the deep dive across all five platforms. If you only need Meta ads as a side detail of an ecommerce question, stay in `apify-ecommerce`. If ads are the main task, use this skill.
Prerequisites
(No need to check it upfront)
- Apify CLI v1.5.0+ (`npm install -g apify-cli`)
- `jq` (recommended for response parsing and filtering; `brew install jq` on macOS, `apt install jq` on Linux)
- Authentication via one of:
- `apify login` (OAuth, opens browser)
- `APIFY_TOKEN` env variable (e.g. `export APIFY_TOKEN=...` or `.env` file)
- Token from [Apify Console → Settings → Integrations](https://console.apify.com/settings/integrations)
Verify auth: `apify info --user-agent apify-awesome-skills/apify-ads-intelligence` — should show username and userId.
Workflow
Copy this checklist and track progress:
Task Progress: - [ ] Step 1: Detect intent and select Actor(s) - [ ] Step 2: Fetch Actor schema - [ ] Step 3: Ask user preferences (output format, result count, country) - [ ] Step 4: Run the Actor (or Actors in parallel for cross-platform-audit) and fetch results - [ ] Step 5: Synthesize a direct answer (not a data dump)
Step 1: Detect Intent and Select Actor
Classify the user's message into an intent, then pick the right Actor.
**Intent signals:**
| Signals in user message | Intent | |-------------------------|--------| | "what ads is X running", "competitor [brand] ads", "[brand] FB/Google/TikTok/LinkedIn/X/Twitter ads", "show ads from [page]", "promoted tweets from [brand]" | `competitor-ads` | | "ads about [topic]", "find [keyword] ads", "ads for [vertical]", "fitness/fintech/saas ads" | `keyword-ads` | | "trending ads", "winning ads", "top ads", "best performing", "long-running ads", "creative inspiration" | `top-creatives` | | "where do these ads go", "landing pages from ads", "click destinations", "ad funnels" | `landing-page-audit` | | "compare X's ads across platforms", "all ads from [brand]", "cross-platform ad audit" | `cross-platform-audit` |
If multiple intents detected, ask: *"Do you want [intent A] or [intent B]?"*
**Actor routing — always try Primary first, switch to Fallback only if it fails or returns 0 results:**
| Intent | Platform | Primary Actor | Fallback Actor | |--------|----------|---------------|----------------| | `competitor-ads` | Meta (FB/IG) | `apify/facebook-ads-scraper` | `brilliant_gum/facebook-ads-library-scraper` | | `competitor-ads` | Google | `dz_omar/google-ads-scraper` | `solidcode/ads-transparency-scraper` | | `competitor-ads` | TikTok | `brilliant_gum/tiktok-ads-library-scraper` (`source: library`) | `silva95gustavo/tiktok-ads-scraper` | | `competitor-ads` | LinkedIn | `silva95gustavo/linkedin-ad-library-scraper` | `dz_omar/linkedin-ads-scraper` | | `competitor-ads` | X (workaround) | `apidojo/twitter-scraper-lite` (`twitterHandles: [<brand>]`) + heuristic filter | `apidojo/tweet-scraper` | | `keyword-ads` | Meta | `brilliant_gum/facebook-ads-library-scraper` | `apify/facebook-ads-scraper` | | `keyword-ads` | Google | `apify/google-search-scraper` (`focusOnPaidAds: true`) | — | | `keyword-ads` | TikTok | `brilliant_gum/tiktok-ads-library-scraper` | — | | `keyword-ads` | LinkedIn | `silva95gustavo/linkedin-ad-library-scraper` | — | | `keyword-ads` | X (workaround) | `apidojo/twitter-scraper-lite` (`searchTerms: [<keyword>]`) + heuristic filter | `apidojo/tweet-scraper` | | `top-creatives` | Meta | `brilliant_gum/facebook-ads-library-scraper` (rank by `daysRunning`) | — | | `top-creatives` | TikTok | `burbn/tiktok-top-ads-spy` (sort by CTR / impressions / likes) | `brilliant_gum/tiktok-ads-library-scraper` (`source: creative_center`) | | `top-creatives` | Google | n/a — fall back to `competitor-ads` route, filter to active ads | — | | `top-creatives` | LinkedIn | n/a — fall back to `competitor-ads` route, rank by `impressionsPerCountry` reach | — | | `top-creatives` | X | n/a in v1 — no reliable promoted-content signal across timelines | — | | `landing-page-audit` | Meta | `brilliant_gum/facebook-ads-library-scraper` (`resolveSnapshotUrls: true`) | — | | `landing-page-audit` | Google | `apify/google
Community collection of Apify agent skills for AI coding assistants
Other skills on awesome-skills.
- /apify-ai-search-visibility-tracker
Track whether a brand and its competitors get cited or mentioned across Google AI Overviews, Google AI Mode, ChatGPT Search, Perplexity, Microsoft Copilot, and Google Gemini for a defined set of prompts, on a recurring schedule. Use when user asks to track AI visibility, monitor
Open skill - /apify-booking-host-leads
Find and enrich B2B leads from Booking.com - hotels, apartments, and vacation rentals - and pull each host's or property manager's real contact details (email, phone, company name, registration number). Use when the user says things like "get emails from Booking.com",
Open skill - /apify-easy-competitive-intelligence
This skill should be used when the user asks to "analyze a competitor", "compare pricing", "competitive landscape", "market research", "what do customers think", "review intelligence", "hiring signals", "content strategy", "SEO battle", "build a battlecard", "competitive
Open skill - /apify-ecommerce
Scrape e-commerce data for pricing, reviews, bestsellers, and seller discovery across 30+ platforms including Amazon, Walmart, eBay, Shopify, WooCommerce, and more. Use when user asks about product prices, competitor analysis, store scraping, tech stack detection, food delivery,
Open skill - /apify-financial-news
Discover and extract financial news for tracked portfolio companies across 33 verified Tier 1 sources (Bloomberg, Reuters, FT, WSJ, IntelliNews, ČTK, PAP, BTA, TASR, ING Think, ECB, EC Press Corner, ...) plus broad Google News fallback. Use when the user asks to find news about
Open skill - /apify-financial-osint
Social-listening signals for tracked portfolio companies via Apify Actors — Reddit sentiment (fatihtahta), Twitter/X real-time mentions (kaitoeasyapi pay-per-result), Trustpilot service quality (getwally.net). Use when the user asks for sentiment, social media mentions, customer
Open skill

