Retention Matters More Than Traffic
In this series, I discuss various aspects of developing my browser game portal Pausen Games.
For this portal, it is crucial to find users, to keep them engaged, and for them to come back regularly. I usually use the terms acquisition, engagement time and retention to describe their behavior.
The hard lesson I learned: The way the users are acquired determines their engagement time and retention. I need to find those users who are more likely to enjoy using my website, even if that means higher efforts during acquisition and fewer total number of users.
In this post I will dive into the details of this mechanic.
Why paid traffic might not find the users you want
For acquisition, I am combining organic search (SEO) and paid traffic. I am still learning and experimenting and trying out different ideas.
For paid traffic, I can use an ad network like Google Ads, assign a daily budget and select the region and languages my ads should be targeting.
In addition, for the bidding strategy's incentive, I either aim for clicks, or, with additional implementation effort within my website, define and optimize for a conversion value which in my case would be determined by how many games a visitor plays.
Then naturally, the ad network will try to maximise the conversion goal with the given budget:
- For click-based strategy, find as many users with the lowest cost-per-click as possible
- For conversion-value-based strategy, still find the most users possible with the lowest cost-per-click, but also consider their conversion value.
To get me started, I selected random regions in the world and chose the conversion value strategy, hoping that the ad network would find me many users who would enjoy using my game portal.
Unfortunately, this didn't quite happen. Over a longer period of time, my ad budget was used to direct many users to my website, but most of them would never come back a second time.
The average weekly retention figures were discouraging. Was my game portal really so bad?
How Acquisition Context Shapes Player Behavior
Using the user analytics capabilities I discussed in my last post, I could segment my users along different properties such as region, language, used platform etc.
By filtering these properties I could identify three different groups as illustrated in the weekly retention charts below:
- Group 1 shows short-term engagement and low multi-day return. This is the biggest group
- Group 2 show repeated return and is progression-oriented. We see retention rates of whopping 60%! By digging into detailed user data, I could even find a few individual users who come back on a daily basis for weeks and play the same game over and over again (yay! someone seems to enjoy my stuff!)
- Group 3 is somewhere between the other two groups

Group 1: Short-term engagement and low multi-day return

Group 2: Repeated returns and progression-oriented

Group 3: Somewhat engaged and returning
Now comes the really interesting part: These groups seemed to correlate with how much I was paying for their acquisition!
If I paid a lot for acquiring a user, they were more likely to engage with my game portal and come back over days and weeks.
If I attracted users with low cost-per-click, they were more likely to engage less with my game portal and they didn't come back much over days and weeks.
This made it clear that optimizing for low acquisition costs would jeopardize my engagement numbers.
Applying what I just learned, I adjusted my acquisition strategy.
Using Retention Insights to Guide Strategy
For me, weekly retention and multi-session engagement matter far more than total visits. I prefer my users to be active and have fun on my gaming portal.
Now that I learned that retention varies by acquisition source and campaign cost (not by the people themselves), I could adjust my strategy to find users.
In my ads network, I need to only target those users that show the best engagement figures. This is probably very specific to the kind of product offered, but it is a mix of the following:
- Optimize for intent not volume. I need to match expectations created by ad assets with actual product (advertising free beer might create many cheep clicks but high-churn users)
- Combine targeted regions, platforms, languages according to what I find to be the best working audience for my product
- Separate high and low cost-per-click audiences by setting up different campaigns and budget. This will make it easier to identify useful patterns and to avoid optimizing for the wrong audience.
Conclusion
I am aware that for someone with a marketing background, this might not be super new. But for me as solo indie dev, this was quite relevant, surprising and new.
Quantitative user analytics enables me to identify the audience which enjoys my product most. The way I configure my ad campaign determines which audience I attract. Matching both yields in making me happy when I look at the statistics, because happy users are what drives me.
I'd be interested to know if you have similar or contrary experiences - feel free to leave a comment.

Top comments (8)
Awesome you made these experiences, drew your conclusions and get along.
And let me give you a hint: no matter the marketeer, they also do not know most of the times ^^
Targeted marketing, "quality" traffic are not myths, but so extremely tough, and even the best channels cannot guarantee anything, even with high budgets. The same channel can perform better or worse on timing, landing page etc. It is a holistic challenge on all ends.
But your insight is the most important for long-term success, as retention helps you to move the challenge into your own hands, as you can steer your users with content, communication etc. instead of fully relying on external sources, stuffing new users to the funnel and trying to convert different types. That's why the first-time user experience (FTUE) is extremely important, with the initial hook to come back. Especially if you don't have the billions of money as Monopoly Go ^^
Fingers crossed and all the luck and success to you for the future. From what I read, you are on a good way :)
Awesome, thank you for your encouraging comment!
I'm actually building something with NextJS too so your analytics approach really caught my attention. Quick question are you tracking retention on the client side or sending server side events? Been wrestling with this decision myself lately lol.
Also, that Sentry mention at the end got me 😂 Installing it rn before I regret it.
Really digging this series man, keep em coming!
Just checked what Sentry is - looks great on the first sight. It appears to be an end-to-end observability solution with logs, metrics, traces, errors and apparently it uses open telemetry underneath.
For me, this goes more into the topics of application monitoring, operations, SRE etc. and maybe doesn't cover everything Google Analytics would cover.
Regarding application monitoring, I don't have much in place now except what my Cloud offers - I might have to look into this and play with Sentry a bit. Thanks for the hint!
Thank you for your great feedback! I am collecting metrics in the browser. I host my own version of Plausible. But for many use cases, I think Google Analytics is just fine.
The retention segmentation by acquisition source made me curious about how we measure intention itself. Return visits are a strong signal, but I wonder if there are more granular behavioral markers worth tracking, things like when a user chooses to start a second game in the same session, or how long they spend on a game before deciding to continue versus leaving. Those moments of active choice feel like they might reveal intent more precisely than session length or return rate alone.
Thanks for your comment! Yes, I think that we could look for any signal that indicates a happy user, or even predicts a high retention early. I am thinking about actually contacting individual users and ask for a 1:1 interview to better understand their choices.
Good coverage. For devs automating this: you can inject XMP keywords directly into image files before upload via API. Built a webhook for exactly this use case → prometadata.com/inject