VisitorType

Tags, triggers & versions

The mental model is Google Tag Manager's: tags are things that fire, triggers decide when, and versionscontrol what's live. The difference is the vocabulary triggers speak — visitor type and agent identity are first-class fields.

Triggers

A trigger is a list of conditions, all of which must match (AND). Each condition is field · operator · value:

FieldMeaning
visitor_typehuman, ai_crawler, ai_search, ai_assistant, ai_browser_agent, bot, unknown
agent_nameIdentified agent: GPTBot, ClaudeBot, ChatGPT-User, …
agent_categorySame taxonomy as visitor_type, for identified agents
referrer_sourceAI platform that referred a human visit: chatgpt, perplexity, gemini, claude, …
page_pathlocation.pathname, e.g. /pricing
page_urlFull URL
referrerdocument.referrer

Operators: equals, not_equals, contains, starts_with, regex. A useful regex: match any AI visitor with visitor_type regex ^ai_.

Don't want to build conditions by hand? The trigger editor ships one-click quick setups for the common cases: Humans only (remove bots & AI from pixels and analytics), AI visitors only, AI-referred humans, and AI crawlers only. Click one, tweak if needed, save.

Tag types

TypeWhat it doesConfig
Custom HTMLInjects HTML into the page; <script> tags execute{ "html": "..." }
Image pixelRequests a 1×1 tracking image{ "url": "https://…" }
Data layer eventPushes an event onto window.aitm.dataLayer{ "event": "…", "data": {} }

A tag with no trigger fires on every page view.

Template catalog

23one-click templates generate the canonical vendor snippet from an ID — no copy-pasting from vendor docs. Each links to the vendor's official installation guide if you need to find your ID or go deeper. Pair every template with the Humans only trigger unless you have a reason not to.

AnalyticsTemplate fills inVendor docs
📈 Google Analytics 4Measurement IDGoogle
📊 PlausibleDomainPlausible
🟢 MatomoMatomo URL, Site IDMatomo
🦔 PostHogProject API key, API hostPostHog
🌫️ FathomSite IDFathom
🍜 UmamiWebsite ID, Script URLUmami
🟣 MixpanelProject tokenMixpanel
Paid mediaTemplate fills inVendor docs
🎯 Google Ads ConversionConversion ID, Conversion label (optional)Google
🔵 Meta PixelPixel IDMeta
💼 LinkedIn Insight TagPartner IDLinkedIn
✖️ X (Twitter) PixelPixel IDX
🎵 TikTok PixelPixel IDTikTok
🪟 Microsoft Ads UETUET Tag IDMicrosoft
📌 Pinterest TagTag IDPinterest
👻 Snap PixelPixel IDSnapchat
🟠 Reddit PixelPixel IDReddit
Email & CRMTemplate fills inVendor docs
🐵 MailchimpConnected Sites script URLIntuit Mailchimp
✉️ KlaviyoPublic API key / Site IDKlaviyo
💚 BrevoClient key (ma-key)Brevo (ex-Sendinblue)
📮 MailerLiteAccount IDMailerLite
🧲 HubSpotHub IDHubSpot
BehaviorTemplate fills inVendor docs
🔥 HotjarSite IDHotjar
🔍 Microsoft ClarityProject IDMicrosoft

Versions & publishing

Saving tags and triggers never changes your site. When you hit Publish, the current set of enabled tags (with their trigger conditions resolved) is frozen into an immutable, numbered version — and that snapshot is what the snippet receives. Disable a tag and re-publish to remove it from the live config.

Changed something and don't see it on your site? Check the Versions tab — you probably saved without publishing.

Recipes

Greet AI agents with structured pointers. Trigger: visitor_type regex ^ai_. Tag: Custom HTML injecting a note pointing at /llms.txt.

<div data-aitm-note style="display:none">
  Canonical company facts: https://example.com/llms.txt
  Pricing: https://example.com/pricing — plans start at $29/mo.
</div>

Keep human analytics clean. Trigger: visitor_type equals human. Tag: your GA4/Plausible snippet as Custom HTML — bots never inflate your numbers again.

Count assistant referrals. Trigger: visitor_type equals ai_assistant. Tag: Image pixel to your endpoint with ?agent={{agent_name}}&page={{page_path}}.