Revenue analytics for AI-native SaaS. The board-ready numbers your whole team reads — and the only dashboard that already counts your agent traffic as a channel.
Scrolltga for your agents.Know which channels — human and agent — actually make you money.
No card, no admin in the loop — your agent can bootstrap its own tenant.
# No account yet? Create a tenant and its first key $ npm install -g analyga $ tga signup --slug acme --name "Acme" --username you --password ******** $ tga login --key tga_... # Five numbers, not a dashboard $ tga stats <websiteId> --from 7d --json
Works with: Claude Code · Cursor · Cline · Windsurf · Aider · Codex · any MCP client
If you own revenue at an AI-native SaaS, GA4 and umami hand you a wall of data and leave you to defend a number to your board on your own. analyga shows you what pays — in language your board reads — organised around the growth funnel you already think in. And it's the only one that counts agent traffic: the MCP and AI calls hitting your product that are already a channel of their own. Your engineers get a CLI and MCP server they love; you get a dashboard you can screenshot straight into the deck.
Every question a growth leader actually asks, in plain language. And when finance needs the receipts, the raw evidence is one click away.
MCP and AI agents are already a channel. analyga is the only analytics that counts them alongside your human traffic — tick the box your board will ask about next year.
Campaigns, top pages and sources in one view. See which channels — human and agent — bring the visitors that convert.
Goals, funnels and journeys show activation; revenue and attribution show what actually drives sales. The number you defend to the board, ready to screenshot.
Every action and every visit sits under the funnel as receipts — so when someone questions a number, you show them the underlying events, not a hand-wave.
Server-side ingest with scoped per-website keys, and a dropped-as-bot event that fails loudly instead of faking a 200. Clean data you can trust.
tga agent-schema --json emits every command, flag and error code, and every failure carries a stable code. If it's not in the schema, it doesn't exist.
No mockups — every clip is a live tga session against a seeded tenant. Pick a scenario.
Sign up keyless, or log in with an existing key. tga whoami tells you which tenant you're about to write to.
tga signup --slug acme --name "Acme"
tga login --key tga_...
Stats, events, funnels and network rollups — all read-only, all --json. The machine surface is a first-class citizen.
tga stats <id> --from 7d
tga funnel run <funnelId> --from 30d
Mint a scoped ingest key, then send with a stable --id so agents never collapse into one visitor.
tga ingest-key create <id>
tga send <id> --name signup --id u_42
Point Claude Code, Cursor, Cline, Windsurf — any MCP client — at analyga and your agent gets tools
covering stats, events, funnels, websites, identity, server-side ingest and billing checkout. A tool
result and --json output are the same bytes.
# Local, for Claude Code / Cursor / Cline / Windsurf $ tga mcp-serve # Remote — zero install, Bearer your API key URL: https://mcp.analyga.com/sse Auth: Authorization: Bearer tga_...
Metered only on event volume. Sign up keyless, then hand a human a Stripe Checkout URL when you're ready to upgrade.
An agent authenticates with its tenant key and gets back a checkout URL: tga billing checkout --plan pro
Pipe the same 10M events / month into CloudWatch Logs and the ingest is pennies — but every dashboard and every agent query is billed again on the bytes it scans, and you still build the funnels yourself.
CloudWatch Logs list pricing (us-east-1): $0.50/GB ingest, $0.005/GB scanned by Logs Insights; ~1KB/event assumed. analyga bundles ingest, storage, querying and the analytics layer into one flat number.
Failures carry a stable code and a distinct exit code. Once published, codes are never reworded.
| Exit | Meaning | What to do |
|---|---|---|
| 2 | usage | fix the call, do not retry |
| 3 | auth | fix the credential |
| 4 | permission | do not retry, escalate |
| 5 | not found | check the id |
| 6 | validation | fix the payload |
| 7 | rate limited | back off and retry |
| 8 | network | retry is reasonable |
| 9 | server | retry once, then report |
Yes. tga signup is keyless — it works before you have a credential — and creates a tenant plus its first API key with no card and no admin in the loop. The one step an agent can't do is pay: a human opens the Stripe Checkout URL once to upgrade.
The dashboard is for humans. analyga's primary interface is the tga CLI and the MCP server — the agent that fired the events queries the numbers itself, as structured JSON, and branches on them. Same product covers web traffic and agent/MCP traffic.
--id?Anonymous identity is derived from IP and user-agent. Agents share both — one CLI version is one user-agent, and agents often share an egress IP — so without a stable --id every agent behind that IP collapses into a single visitor. It cannot be backfilled.
A discarded event still answers HTTP 200 — the ingest endpoint returns {"beep":"boop"} when it drops an event as a bot. The CLI treats that as a hard failure with a hint, so an agent never believes a dropped event succeeded.
Run tga agent-schema --json. It returns every command, argument, flag, type and the full list of error codes — generated from the same table that drives the parser, help text and MCP tools, so it cannot drift. If it's not in the schema, it doesn't exist.
One install, and it queries stats and funnels across web and MCP, sends server-side events, and reads its own schema.
$ npm install -g analyga $ tga stats <websiteId> --from 7d --json
Agents run the instrumentation — but everything they capture lands in a complete, real-time dashboard. Live visitors, funnels, retention, revenue and journeys, all in one place. No terminal required.