# Motif > Motif is analytics that turns SEO and AI into revenue decisions for SaaS businesses. One script tag under 5 KB gzipped and Stripe Connect join every payment to first touch, across search, social, email, and 17 AI assistants including ChatGPT. Motif is not a traffic-analytics product. Direct and unknown traffic stay visible but cannot win. The weekly AI brief may explain the ranking. It never creates a competing one. ## Product facts - Operator: Reaktif LLC (Delaware) - Contact: joseph@motiftrace.com - Marketing: https://motiftrace.com - Docs: https://docs.motiftrace.com - App: https://app.motiftrace.com - Collector: https://collect.motiftrace.com - Tracker: first-party script tag. Application user ids are HMAC-hashed before storage. Raw ids are never persisted. - Audience: SaaS businesses - Money: Stripe Connect is the only revenue source today. Currencies are never summed across codes. - Search Console: optional aggregate evidence. Motif does not attach a query to a visitor. - Insights: the model sees aggregates and the channel recommendation only. - AI assistants: dedicated chat hosts (chatgpt.com, claude.ai, perplexity.ai, gemini.google.com, copilot.microsoft.com, grok.x.com, you.com, and the rest Motif classifies) are first-touch ai_assistant. google.com search is organic. GPTBot is a crawler. - AI crawlers: known fetcher user-agents on the tracker or collector. HTML-only crawls are out of scope. Crawlers are not visitors. - For AI agents: read-only MCP server at https://api.motiftrace.com/mcp (Bearer API key from Connect AI). Agent Skills: npx skills add https://motiftrace.com (motif-analytics, motif-setup). ## Indexable pages - [See which channel actually pays you. Even ChatGPT.](https://motiftrace.com/): Motif turns SEO and AI into revenue decisions for SaaS. One script tag and Stripe Connect join every payment to first touch, including ChatGPT and search. - [Motif pricing](https://motiftrace.com/pricing): Start free, with a first-party tracking domain on every plan. Paid Motif analytics plans add weekly AI insights. Plans differ on monthly event volume. - [How Motif works](https://motiftrace.com/how-it-works): Paste one script tag, connect Stripe, and Motif writes first touch once, including SEO and AI assistants. A payment weeks later still points at that channel. - [First-touch attribution](https://motiftrace.com/first-touch): First-touch attribution in Motif stores the first utm, ad-click id, or known referrer on arrival and never overwrites it. Stripe payments join that touch, not the visit that happens to close. - [Stripe attribution](https://motiftrace.com/stripe): Stripe attribution in Motif uses Stripe Connect as the only revenue source. Checkout, invoices, refunds, and churn join the visitor's first touch so the ranking is money, not sessions. - [Search Console evidence](https://motiftrace.com/search-console): Optional Google Search Console import adds queries, pages, clicks, and position as aggregate evidence. Motif never attaches a search query to a visitor. - [Weekly digest](https://motiftrace.com/weekly-digest): Motif's weekly AI brief explains the deterministic channel ranking. The model sees aggregates only. If a cited number is missing from the packet, the batch is discarded. - [How to track ChatGPT traffic](https://motiftrace.com/chatgpt-traffic): How to track ChatGPT traffic: Motif stores chatgpt.com and chat.openai.com as first-touch ChatGPT. GA4's AI Assistant channel names the session; GA4 does not join Stripe to first touch, and last-click still steals. GPTBot is a crawler, never a visit. - [Track Claude traffic](https://motiftrace.com/claude-traffic): Track Claude traffic: clicks from claude.ai are first-touch Claude in Motif, not one AI Assistant bucket. Stripe payments join that touch. ClaudeBot is a crawler on Insights, never a paying visitor. - [Track Perplexity traffic](https://motiftrace.com/perplexity-traffic): Track Perplexity traffic: clicks from perplexity.ai are first-touch Perplexity in Motif. PerplexityBot and Perplexity-User are crawlers. Stripe still joins only the human click. - [Track Gemini traffic](https://motiftrace.com/gemini-traffic): Track Gemini traffic: clicks from gemini.google.com are first-touch Gemini in Motif. Google AI Mode traffic that still arrives as google.com search stays organic. Stripe joins the stored first touch. - [Track Copilot traffic](https://motiftrace.com/copilot-traffic): Track Copilot traffic: clicks from copilot.microsoft.com are first-touch Copilot in Motif. Stripe payments join that touch. Copilot fetchers that hit the tracker are crawlers, not visits. - [AI crawlers Motif can actually see](https://motiftrace.com/ai-crawlers): Motif counts known AI crawler user-agents on /m.js and the collector. Crawlers are not visitors and cannot win a recommendation. HTML-only training fetches are out of scope. - [SaaS acquisition analytics](https://motiftrace.com/saas-analytics): SaaS acquisition analytics that turns SEO and AI into revenue decisions. Rank Stripe channels by customers and net revenue, cohort-correct, then do the one thing the numbers support. - [Acquisition analytics](https://motiftrace.com/acquisition-analytics): Motif attributes paying customers to the first touch that earned them. Revenue lands in the arrival window, not the week they paid. One recommendation follows the revenue evidence. - [Motif vs Google Analytics](https://motiftrace.com/vs/google-analytics): Motif vs Google Analytics: GA4 counts sessions and last-click paths. Its AI Assistant channel (13 May 2026) buckets assistants together. Motif joins Stripe to first touch and ranks channels by customers and net revenue. - [Motif vs Plausible](https://motiftrace.com/vs/plausible): Plausible vs Google Analytics is a privacy-traffic argument. Motif vs Plausible is a different job: Stripe-attributed AI traffic, not a session count. Both use a small script. - [First-touch vs last-click](https://motiftrace.com/first-touch-vs-last-click): A last-click attribution model credits the closer. First-touch credits the introducer. Motif writes first touch once and joins Stripe to it so launch channels keep the customers they earned. - [About Motif](https://motiftrace.com/about): Motif is analytics that turns SEO and AI into revenue decisions, operated by Reaktif LLC (Delaware). Contact joseph@motiftrace.com. - [Motif vs Mixpanel](https://motiftrace.com/vs/mixpanel): Mixpanel is product analytics: events, funnels, retention. Motif is acquisition analytics that joins Stripe to first touch, including SEO and AI assistants. - [Motif vs Amplitude](https://motiftrace.com/vs/amplitude): Amplitude is product analytics for behavioral journeys. Motif joins Stripe to first-touch SEO and AI traffic and returns one evidence-backed spend recommendation. - [Motif vs PostHog](https://motiftrace.com/vs/posthog): PostHog is a product OS: analytics, replay, flags, experiments. Motif is acquisition analytics that turns SEO and AI into Stripe decisions. - [Motif vs Fathom](https://motiftrace.com/vs/fathom): Fathom is simple privacy-first traffic analytics. Motif is Stripe-attributed acquisition analytics for SaaS, including SEO and AI assistant first touch. - [AI crawler directory](https://motiftrace.com/crawlers): Every AI crawler token Motif classifies, plus robots.txt product tokens that are not User-Agents. Honest limits: HTML-only fetches and IP verification are out of scope. - [GPTBot](https://motiftrace.com/crawlers/gptbot): GPTBot is OpenAI's model-related crawler. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [ChatGPT-User](https://motiftrace.com/crawlers/chatgpt-user): ChatGPT-User is OpenAI's user-requested fetch. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [OAI-SearchBot](https://motiftrace.com/crawlers/oai-searchbot): OAI-SearchBot is OpenAI's search indexing. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [ClaudeBot](https://motiftrace.com/crawlers/claudebot): ClaudeBot is Anthropic's model-related crawler. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Claude-User](https://motiftrace.com/crawlers/claude-user): Claude-User is Anthropic's user-requested fetch. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Claude-SearchBot](https://motiftrace.com/crawlers/claude-searchbot): Claude-SearchBot is Anthropic's search indexing. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [anthropic-ai](https://motiftrace.com/crawlers/anthropic-ai): anthropic-ai is Anthropic's model-related crawler. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [PerplexityBot](https://motiftrace.com/crawlers/perplexitybot): PerplexityBot is Perplexity's search indexing. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Perplexity-User](https://motiftrace.com/crawlers/perplexity-user): Perplexity-User is Perplexity's user-requested fetch. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Meta-ExternalAgent](https://motiftrace.com/crawlers/meta-externalagent): Meta-ExternalAgent is Meta's model-related crawler. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Meta-ExternalFetcher](https://motiftrace.com/crawlers/meta-externalfetcher): Meta-ExternalFetcher is Meta's user-requested fetch. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Meta-WebIndexer](https://motiftrace.com/crawlers/meta-webindexer): Meta-WebIndexer is Meta's search indexing. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Google-CloudVertexBot](https://motiftrace.com/crawlers/google-cloudvertexbot): Google-CloudVertexBot is Google's user-requested fetch. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Amazonbot](https://motiftrace.com/crawlers/amazonbot): Amazonbot is Amazon's model-related crawler. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Amzn-User](https://motiftrace.com/crawlers/amzn-user): Amzn-User is Amazon's user-requested fetch. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Amzn-SearchBot](https://motiftrace.com/crawlers/amzn-searchbot): Amzn-SearchBot is Amazon's search indexing. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Bytespider](https://motiftrace.com/crawlers/bytespider): Bytespider is ByteDance's model-related crawler. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [CCBot](https://motiftrace.com/crawlers/ccbot): CCBot is Common Crawl's model-related crawler. Motif classifies this token on tracker and collector hits. HTML-only fetches are out of scope. - [Google-Extended](https://motiftrace.com/crawlers/google-extended): Google-Extended is Google's robots.txt product token. Motif does not classify this token, because it is not an HTTP User-Agent. HTML-only fetches are out of scope. - [Applebot-Extended](https://motiftrace.com/crawlers/applebot-extended): Applebot-Extended is Apple's robots.txt product token. Motif does not classify this token, because it is not an HTTP User-Agent. HTML-only fetches are out of scope. - [Generative engine optimization (GEO)](https://motiftrace.com/geo): GEO is optimizing content so assistants cite it. Motif splits live-retrieval clicks from crawler fetches, then ranks Stripe revenue on first touch. No citation dashboard theater. - [GEO vs SEO vs AEO](https://motiftrace.com/geo/vs-seo): SEO is crawl and rank in search. GEO and AEO target assistant answers. Motif keeps Google-organic, Gemini, and crawler hits on separate series so the acronym cannot blur the money. - [How to measure GEO](https://motiftrace.com/geo/measure): How to measure GEO: store assistant first touch, join Stripe, and refuse to call the result ROI without spend. A GEO measurement tool that stops at citations is a screenshot. Motif is the join. - [Citations are not customers](https://motiftrace.com/geo/citations): A citation is a mention. A visit is a click. A customer is a Stripe payment joined to first touch. Motif only ranks the last two, and only the last one can win. - [llms.txt vs robots.txt vs sitemap.xml](https://motiftrace.com/geo/llms-txt): robots.txt is crawl policy. sitemap.xml is URL discovery. llms.txt is an unofficial hint for language models. Motif publishes llms.txt; it does not claim the file moves revenue. - [Schema markup Motif actually ships](https://motiftrace.com/geo/schema): Motif's public pages emit FAQPage, BreadcrumbList, ItemList, and DefinedTerm from one catalog. Visible headings and JSON-LD cannot drift. That is the GEO structure worth copying. - [How to do generative engine optimization](https://motiftrace.com/geo/playbook): A six-step GEO playbook that Motif supports. The steps: direct answers, matching FAQ schema, crawler policy by class, first-touch storage, Stripe joins, and no spend advice when the week is quiet. - [Google AI Overviews](https://motiftrace.com/geo/overviews): Google AI Overviews can answer without a click. Motif records the google.com visit that did happen, optional Search Console aggregates, and nothing for a zero-click Overview. Gemini chat is a different first-touch host. - [Free tools. No account.](https://motiftrace.com/tools): Free tools that encode Motif's actual classifier: UTM builder and checker, robots.txt token checker, a first-touch referrer helper, the Chrome extension, and a public URL scan. No account required. - [UTM builder](https://motiftrace.com/tools/utm-builder): Build campaign URLs with lowercase utm_source, utm_medium, utm_campaign, utm_term, and utm_content. Presets include chatgpt, claude, and the other assistant sources Motif classifies. - [UTM checker](https://motiftrace.com/tools/utm-checker): Paste a campaign URL and catch the mistakes that corrupt Motif first touch: missing utm_source, tags placed after #, and duplicate keys. Mixed-case values are lowercased, not stored as a second channel. - [robots.txt checker](https://motiftrace.com/tools/robots-txt): Paste a robots.txt file and see which Motif-classified AI crawler tokens you allowed, blocked, or never named. Google-Extended is listed as a policy token, not a User-Agent. - [Referrer classifier](https://motiftrace.com/tools/referrer): Paste a landing URL and document referrer to see the source and medium Motif documents: UTM first, then ad-click ids, then known hosts including ChatGPT, Claude, Perplexity, Gemini, and Copilot. - [The toolbar is on. Pin it, then scan this page.](https://motiftrace.com/tools/extension): The Motif Chrome extension previews first-touch source and Motif crawler tokens on the current tab. No account. It does not scrape ChatGPT or invent revenue. Pin it, scan, then add the script and Connect Stripe when ranking should use money. - [Paste a public URL. See first-touch and crawler facts. No account.](https://motiftrace.com/check): Paste a public URL. Motif fetches the live origin and returns first-touch, tracker, robots.txt, and llms.txt facts. No account. No visibility score. - [Research: measurement, not a fake benchmark](https://motiftrace.com/research): Original methodology notes from Motif: first-touch assistant channels, Stripe joins, and the hard limit that a JavaScript tracker cannot see HTML-only AI crawls. No invented multi-site benchmark. - [Measurement methodology](https://motiftrace.com/research/methodology): How Motif measures acquisition: immutable first touch, Stripe Connect as the only revenue source, cohort-correct windows, crawler hits excluded from the ranking, Search Console as aggregates. - [AI referral traffic](https://motiftrace.com/research/ai-referral): AI referral traffic is assistant clicks. GA4's AI Assistant channel (13 May 2026) names the session. Motif keeps ChatGPT, Claude, Perplexity, Gemini, and Copilot as first-touch channels and ranks them by Stripe, not sessions. - [Crawler observation limits](https://motiftrace.com/research/crawler-observation): Most AI crawlers fetch HTML and never execute JavaScript. Motif only counts known User-Agents on /m.js and the collector, and states that HTML-only crawls are out of scope. - [Privacy](https://motiftrace.com/privacy): How Reaktif LLC handles Motif account data, tracker events, Stripe Connect facts, and optional Search Console evidence. - [Terms of Service](https://motiftrace.com/terms): Terms for using Motif, the tracker, and the collector. Operated by Reaktif LLC (Delaware). ## FAQ ### Does the AI decide the ranking? The channel table is arithmetic: net revenue per acquired visitor over 30 days. The model picks one winner and one runner-up from that table. Motif rejects the pick if either is not an eligible channel. Motif also rejects it if both are the same channel, or if it cites a number the table does not contain. ### What does the model actually see? Aggregates only: channel, visitors, customers, revenue, window. The weekly digest sees at most 5 traffic sources and 28 days of Search Console. Never a visitor row, never an email, never a session. ### What happens on a slow week? Under 50 visitors and no named lead, you get no digest. If the numbers can't support a verdict, silence is the correct output. ### How is this different from Plausible or GA? Those tell you which channel sends traffic. Motif tells you which channel sends revenue. It joins each Stripe payment to the visitor's first touch. It ranks channels by net revenue per visitor over 30 days. It adds 28 days of Search Console and names 1 next spend. ### Does Motif track ChatGPT traffic? Yes. A click from chatgpt.com, chat.openai.com, or searchgpt.com is first-touch ChatGPT, 1 of 17 AI assistants Motif names separately, not a generic Referral row and not one AI Assistant bucket. Motif stores that touch once and joins later Stripe payments to it. GPTBot is a crawler, never a visit. ### What if a cited number looks wrong? Every figure in a recommendation must exist in the data packet. If even 1 doesn't, the whole batch is discarded rather than shipped.