Ad Pixel & Marketing Stack Detector
Pricing
$3.00 / 1,000 website checkeds
Ad Pixel & Marketing Stack Detector
See which ad pixels and tags (Meta, Google Ads, TikTok, LinkedIn, Bing...) a website has installed, and which analytics, email marketing, chat, booking, reviews, shop and website tools it uses. Reads the public Google Tag Manager container too. Follows robots.txt.
Pricing
$3.00 / 1,000 website checkeds
Rating
0.0
(0)
Developer
Elliott
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Find out which ad pixels and tags a website has installed and which marketing tools it uses. Paste a list of websites and get, for each one:
- Ad tags installed: Meta (Facebook/Instagram) Pixel, Google Ads, Google Floodlight, TikTok, LinkedIn Insight Tag, Microsoft (Bing) Ads UET, Pinterest, Snapchat, X, Reddit, Criteo, Quantcast, Taboola/Outbrain
- Analytics: Google Analytics 4, Tag Manager, Universal Analytics (old), Hotjar, Clarity, Segment, Mixpanel, Matomo, Plausible
- Email marketing and CRM: Klaviyo, Mailchimp, HubSpot, ActiveCampaign, Omnisend, Brevo, Constant Contact, Kit, MailerLite, Salesforce/Pardot, Zoho, Pipedrive
- Chat: Intercom, Drift, Tidio, LiveChat, Zendesk, Crisp, Tawk.to, Facebook Messenger chat, WhatsApp button
- Booking: Calendly, Acuity, Square Appointments, Fresha, Booksy, OpenTable, ResDiary/SevenRooms
- Reviews: Trustpilot, Trustindex/Featurable review widgets, Yotpo, Judge.me, Reviews.io, Feefo
- Shop and website platform: Shopify, WooCommerce, BigCommerce, Magento, Wix, Squarespace, Webflow, WordPress, HubSpot CMS, GoDaddy, Duda, Framer, Weebly, Joomla, Drupal, Next.js
- IDs: Meta Pixel IDs, GA4 IDs, Tag Manager IDs and Google Ads IDs where visible
What "ad tags installed" means
adTagsInstalled is true when at least one ad platform's pixel or tag is installed on the site (in the page or as a live tag in its Tag Manager container). It shows the site is set up to measure or retarget ads. It does not prove the business is currently running or paying for ads: tags often stay installed after campaigns stop.
How detection works
Detection is strict, to avoid false positives from a product merely being mentioned on a page:
- Script, iframe, stylesheet and form URLs are matched on each tool's own hosts and paths (for example
connect.facebook.net/.../fbevents.js), never on bare product names. - Inline scripts are matched on the tool's specific init call (for example
fbq('init', ...),ttq.load(...)), or on its loader URL only where the code actually loads it (asrcassignment or script insertion). A URL that is merely mentioned in code does not count. - Only code that runs counts. Data blocks (
application/json,application/ld+json, import maps, templates, Next.js__NEXT_DATA__and similar), HTML comments,preconnect/dns-prefetchhints, Content-Security-Policy lists and<meta http-equiv>content are ignored, because they name hosts a site allows or mentions, not tags it loads. Scripts held back by a cookie consent manager until the visitor agrees do count, as they are installed. - Platform path markers such as
/wp-content/or/_next/static/only count when served from the site's own domain. - Most detectors only read the page source, so they miss tags loaded through Google Tag Manager. This one also reads the site's public Tag Manager container and counts only its live tags: Google tag types by their template key (Google Ads, Floodlight, GA4, Universal Analytics, Bing UET, LinkedIn, Hotjar) and Custom HTML tags by the same strict rules as the page. Paused tags are ignored. Tags built from Tag Manager community templates are not counted.
Who it's for
- Agencies: see which prospects have ad tracking set up, and which have none.
- SaaS sales teams: find users of a tool you integrate with or replace.
- Researchers: map the marketing stack of a whole market.
Tick Only return websites with ad tags installed to filter the results. You only pay for the rows returned.
Output fields
website, finalUrl, adTagsInstalled, adPlatforms, ads, analytics, email, crm, chat, booking, reviews, ecommerce, cms, consent, metaPixelIds, ga4Ids, gtmIds, googleAdsIds, tagManagerContainersRead, pagesRead, toolCount, error, and where relevant innerPageSkipped and tagManagerNote.
Limits
- At most 2 pages per site: the homepage, plus one contact, about, shop or services page only if you turn on Also check one inner page (off by default).
- It reads the HTML and the Tag Manager file without running the site's scripts, so tags added later by a site's own app code, or by Tag Manager community templates, may not be visible.
- It never logs in or submits anything.
Data source and licence
The actor reads only:
- public pages of the websites you supply (the homepage, and one inner page if you turn that on), and
- the public Google Tag Manager container script for container IDs found on those pages (
https://www.googletagmanager.com/gtm.js?id=GTM-...), the same file every visitor's browser downloads.
No third-party database is used. The output is technical facts about which tools a site loads; page content is not stored or republished.
Responsible use
- The actor identifies itself honestly with the User-Agent
Mozilla/5.0 (compatible; MarketingStackDetector/1.0; +https://apify.com/velveteen_driver/marketing-stack-detector). - It follows each site's robots.txt for the homepage and the inner page, and skips the site with an
errorif robots.txt disallows it or can't be read (server error). - Each Tag Manager container is fetched at most once per run (sites checked at the same time share one download), and all Tag Manager fetches stop for the run if googletagmanager.com answers HTTP 429 or its robots.txt disallows the file.
- At most 10 websites are checked at the same time, and requests to any one host are at least 1 second apart.
- Use the results lawfully, for example under UK GDPR and PECR if you contact the businesses, and within Apify's terms.