Games
For browser games: which channels bring players who pay, and how long they play first.
A web game is free to play in the browser and sells packs, a season pass or a premium unlock through a web checkout. Tally ties each purchase to the player's visits and compares how long payers and others play, so you can see which channels bring paying players.
14 days free, no card needed.
01How they sell
- FreemiumFree to play, with in-game currency packs, cosmetics or a premium unlock bought through the web checkout.
- SubscriptionA monthly pass or a season pass that renews, with rewards for playing through it.
- One-offA one-time purchase of the full game after a free demo.
02Payments it reads
- StripePacks and passes through Stripe Checkout opened from the game, with refunds and chargebacks read.
- PaddleGames sold worldwide through Paddle as merchant of record for the tax, with transactions and refunds read.
- Lemon SqueezySmall studios sell premium unlocks through Lemon Squeezy checkouts.
What Tally can't read
- Purchases in the game's mobile versions on the App Store or Google Play aren't read.
- Sales of the game on Steam or itch.io aren't read.
- Revenue shares from game portals and in-game ad income aren't read.
- Actions inside the game, such as levels or matches, aren't counted unless the game sends them as goals.
03Where buyers come from
- RedditPosts in game subreddits send players who try the game straight away; revenue per visitor shows how many pay.
- TikTok and YouTubeClips of play send visitors through in-app browsers and description links, many on phones.
- DiscordYour game's server sends returning players, often to buy at the start of a season.
- Game portalsPlayers who found the game on a portal and come to your own site to buy arrive with that portal as referrer.
04What Tally answers
Do paying players play longer before buying?
What they read compares engaged time per page for buyers and everyone else, so on a game's page it shows whether payers spend longer with the game in view.
What they readWhere do players drop out before paying?
Have the game call tally('tutorial_done') and tally('shop_opened'), and the goals view builds a funnel from those steps to purchase, with conversion at each.
Goals and funnelsWhich channel brings players who buy more than once?
Lifetime value counts every pack and pass under the player's first source, with renewals and repeat rate.
Lifetime valueHow many people are playing right now?
Live shows who's on the site now on a globe or a flat map, so a clip or a post bringing players can be watched as it happens.
Live
05Numbers worth watching
- Engaged time
- Active time with the tab in view, payers against everyone else; players who keep moving keep counting.
- Repeat rate
- The share of payers who bought more than once, by first source.
- Goal conversion
- Players reaching the shop over all players, by source.
- Refunds and chargebacks
- Refunds and chargebacks by source, which a game's checkout needs watching for.
06An example
Reading time
38s
median per pageview
Scroll depth
59%
average depth, of 27,216 views measured
Read to the end
27%
of measured views reached 90% or more
What they read
29,264 pageviews · last 30 days
Open a page to see how far down people read it, and how buyers read it before paying.
- /8,756 views52% scrolled on average21s reading time, median
- /pricing5,526 views78% scrolled on average58s reading time, median
58s
reading time, median per view
78%
scrolled, on average
5,526 views · 5,194 with a measured depth
How far down they read
Share of measured views that scrolled at least this far
- 25% — reached a quarter of the page:95%
- 50% — reached half of the page:84%
- 75% — reached three quarters of the page:69%
- 90%+ — reached the end of the page:48%
Buyers before paying vs didn't buy
- Buyers, before paying149 views · 107 buyers96% scrolled on average,1m 41s reading time, median
- Didn't buy5,342 views · 3,815 visitors61% scrolled on average,44s reading time, median
35 views by buyers after paying are left out of both.
Buyers are visitors whose first sale came after viewing this page; only their views before that payment count.
- /docs2,727 views47% scrolled on average1m 12s reading time, median
- /blog/stripe-fees2,237 views64% scrolled on average2m 34s reading time, median
- /compare1,184 views71% scrolled on average49s reading time, median
- /changelog861 views38% scrolled on average33s reading time, median
Reading time runs only while the tab is visible and the visitor is active; it's the median per view. A view with no engagement report counts as 0s of reading. Its scroll depth is unknown, so it's left out of every scroll figure rather than counted as 0%. 27,216 of 29,264 pageviews have a measured depth.
07Setting up
- React and ViteFor a game built with React and Vite, add the tag to index.html; if menus and the play screen are separate history routes, each change counts as a pageview.
- PaddlePass the visitor's id in customData when the game opens Paddle checkout, so each pack links with high confidence.
- Call tally('name') from the game's code at key steps, so tutorial, first win and shop visits count as goals.
08Questions
My game also runs on mobile. Are those purchases counted?
Not purchases made through Apple or Google; only payments through your web checkout in Stripe, Paddle, Lemon Squeezy or Polar are read.
Does engaged time keep counting while someone plays?
Yes, while the tab is in view and the player has moved in the last 30 seconds; a player who stops interacting stops counting.
Can I see which country payers are in?
The country breakdown puts revenue beside each country, converted to US dollars at the day's ECB rate.