Dodo Payments analytics that shows which traffic paid
Dodo handles the payment and the tax as merchant of record. It cannot know which post, ad or assistant sent the buyer, so that half of the story is recorded on your side and joined to the sale.
Seven days free. No card, no commitment.
- Organic Social2,412$3,120
- Direct1,072$1,240
- Referral771$960
- Organic Search720$580
- AI246$310
- 🇺🇸United States885$2,410
- 🇮🇳India887$140
- 🇬🇧United Kingdom427$980
- 🇩🇪Germany427$760
- 🇧🇷Brazil451$210
Demo data. A Dodo Payments account's revenue would fill these in.
Six questions Dodo Payments cannot answer
Dodo Payments owns everything from the charge onwards. These live in the week before it, and they are the ones that change what you do next.
Dodo’s dashboard is where the commerce lives: products, payments, subscriptions, refunds and the tax it files on your behalf.
- 8 days ago
Found a launch tweet - 8 days agoRead /pricing, left
- 2 days ago
Came back from a Google search - TodayRead /pricing again, then paid $99
None of it reaches back before the checkout. The referrer, the campaign and the pages that did the convincing are only ever visible in the browser, which is where the script is.
Which source brought the revenue in Dodo Payments this month, not just the visits
X / Twitter$1,240
Organic Search$380
Reddit$0What a visitor from each channel is worth, so ad spend has a number to beat
X / Twitter$1.90 each
Reddit$0.04 each
Organic Search$0.71 eachWhether AI assistants send people who pay, or only people who read
ChatGPT$212
Perplexity$49
Claude$0Which campaign’s customers churn, by following the subscription back to its source
launch-tweet12% churnnewsletter-423% churnpaid-search21% churnRevenue net of refunds per channel, rather than a gross number that flatters it
Gross$4,280Refunded−$219Net$4,061How long a buyer takes to decide, so you stop judging a post by the same afternoon
Median time to pay6 daysVisits before paying3Longest this month41 days
Dodo Payments revenue, traced back in three steps
Ten minutes to set up, and you never touch it again.
- 1<script defer2 data-website-id="a7f3c1"3 src="https://geckostats.com/js/script.js">4</script>
1. Add the script
One tag in your <head>, under 2 kB. It is cookieless, so it needs no consent banner anywhere in the EU.
- API
2. Connect Dodo Payments
One webhook endpoint in Dodo Payments, and nothing else in your account changes. Every payment then arrives knowing which visit produced it.

pay_7hQ2mXr40Tf$99.00succeeded in Dodo Paymentscame from
launch-tweetX / Twitter · first visit 8 days before3. Open any payment
Every Dodo Payments payment carries the post, search or AI answer behind it, and how long the buyer took to decide. Nothing lands under Direct any more.
Everything you need, nothing you don’t
Six screens answer the question you actually have: what did I do that worked?
Traffic and revenue in one view
Blue shows visitors and orange shows revenue. See how they move together, then drill into the channels and sources behind each spike.
Know exactly which post worked
A tagged link per tweet, article or newsletter. It shows up by name, with the visitors and the revenue it brought, even when they buy two weeks later.
Every customer’s full journey
Who paid, where they came from, how long it took. Open anyone and read every page and click from first visit to payment.
- 7:31 PM/pricing
- 7:33 PMcheckout_click on /pricing
- 7:35 PMPaid $49
- 9:02 AM/blog/ship-faster
- 2:14 PM/
- 2:15 PM/pricing
Watch it happen live
A real-time globe with everyone on your site right now, and a feed of pages, goals and payments as they land. Turn the sound on and hear every sale.
- Payment $49 · credited to
launch-tweet - Pageview /pricing ·🇵🇱 Warsaw
- Goal checkout_click · came from
ChatGPT - Pageview /blog/ship-faster ·🇺🇸 Austin
What Google sends you, and what it is worth
Connect Search Console once. Every query, page and country you rank for, with the money beside it, ranked by what it earns rather than by how loud it is.
AI reads your site. See what it took and what it sent back.
ChatGPT, Claude, Perplexity and Gemini crawl you whether you watch or not. Every agent by name, against the visitors and the revenue they sent back.
And 9 more, on every plan
Starter and Growth both include every one of these, at every size.- Revenue attributionStripe, Dodo Payments, Polar and Creem out of the box. Anything else with one API call.
- Goals and funnelsButton clicks and signups as goals, then step-by-step drop-off between them.
- One-click filtersClick any row, a source, a country, a campaign, and the whole dashboard follows.
- Subscriptions and MRRMRR, churn and lifetime value by source: which channel brings customers who stay.
- AlertsTracking stopped, revenue down, organic clicks down, a page deindexed, a query dropped five places.
- Release markersOne curl at the end of your deploy puts a tag on the chart, so a drop can be read against what you shipped.
- RetentionWho came back, week by week, and what the returners were worth.
- Share as an imageYour period rendered to a PNG, ready to post, drawn from the numbers rather than screenshotted.
- No cookies, no bannerA visitor is a salted hash that rotates every day and the IP is never stored. Nothing to consent to.
Works with your AI tool
Add the GeckoStats MCP server and Claude, Cursor or ChatGPT can read your Dodo Payments revenue the same way the dashboard does.
Via ChatGPT
Connect over MCP and let it explain last week.
ChatGPT- New chat
- Search chats
- Library
ChatsChatGPT 5Ask anything
Claude- New chat
- Chats
- Projects
- Artifacts
RecentsClaude Sonnet 4.5Reply to Claude…Sonnet 4.5Via Claude
Add the server as a custom connector and ask about your own numbers.
Via Claude Code
One command in the terminal, then it reads traffic, revenue and funnels.
Claude Code~/sites/nimbus✻ Welcome to Claude Code!/help for help, /status for your current setupcwd: ~/sites/nimbus>? for shortcuts
Grok- New chat
- History
- Tasks
TodayGrok 4Ask anythingGrok 4Via Grok
The same server, the same answers, from Grok.
Via Cursor
The same 26 tools, from the editor you write your site in.
nimbusappcomponentslibpricing.tsxlayout.tsx
pricing.tsxAgentPlan, search, build anythingSonnet 4.5
Gemini CLI~/sites/nimbus██████ ███████ ███ ███ ██ ███ ██ ██ ██ ██ ████ ████ ██ ████ ██ ██ ██ ███ █████ ██ ████ ██ ██ ██ ██ ██ ██ ██████ ███████ ██ ██ ██ ██ ████ ██
Tips: /mcp lists connected servers · geckostats (26 tools)>Via Gemini CLI
Point it at the server and ask which page is worth another post.
claude mcp add --transport http geckostats \ https://your-stats.com/api/mcp \ --header "Authorization: Bearer ml_…"
- 26 tools: overview, sources, pages, goals, funnels, customers, search queries, live view
- Ask it which channel brought this month's Dodo Payments revenue and it answers from your own data
- One key per website, rotate it whenever you like
Selling through something else as well?
Connect as many as you like. One dashboard, one revenue number.
Simple pricing, seven days free
Every size includes Dodo Payments, every other provider, Search Console, the AI assistant and the MCP server.
Starter
For one site and one person.
Billed monthly · up to 100K events
No commitment. Cancel anytime.
- Realtime dashboard
- Live Globe
- User Profiles
- Funnels
- Revenue tracking
- Core Web Vitals
- and 9 more, on every plan
Growth
RecommendedFor several sites and the people who work on them.
Billed monthly · up to 100K events
No commitment. Cancel anytime.
- Realtime dashboard
- Live Globe
- User Profiles
- Funnels
- Revenue tracking
- Core Web Vitals
- and 9 more, on every plan
Every plan starts with 7 days free. No commitment, cancel anytime. Prices exclude VAT, which may apply at checkout.
Dodo Payments questions
I sell other products from the same Dodo account. Will they all show up?
Only if you want them to. Restrict the site to specific product ids in its settings and payments for anything else are ignored, which matters when one Dodo account serves several businesses.
What if a payment arrives before the visitor is known?
It is held rather than dropped, and matched when the identity catches up. The site settings list anything still pending so a webhook that arrived early never turns into revenue with no source.
Does this work with Dodo’s test mode?
Yes, test payments arrive through the same endpoint, so the whole chain can be verified before launch.
How long does this take to set up?
Under ten minutes: the script on your site and one webhook in Dodo. Payment links need nothing at all, because the tracker recognises them on your page and tags them with the visitor when somebody clicks.
Will it slow my site down?
Under 2 kB, deferred, no runtime fetches, and it reports Core Web Vitals from real visits so the claim is measurable rather than asserted.
Do I need a cookie banner?
No. Cookieless by default, nothing stored on the visitor's device, the IP never kept, Do Not Track and Global Privacy Control honoured.
Dodo already shows me my payments. What does this add?
Which post, search or assistant produced each one. Dodo handles the money and the tax; it has no view of the hour before the checkout opened.
What if a customer takes weeks to decide?
The join happens when the payment arrives rather than inside a session window, so a customer who took a month still credits the thing that first brought them.
Connect Dodo Payments and see what paid.
Add the script, add one webhook, and every Dodo Payments payment arrives with the visit that produced it.
7 days free · no commitment · cancel anytime
