Entry № 91Steam Marketing

Indie Game Marketing Metrics: CTR, Cost Per Wishlist, Conversion

The six numbers that tell you if your Steam marketing works: CTR, visit-to-wishlist rate, cost per wishlist ($1-2, stop at $3), velocity, and UTM setup.

11 min readBy Steam Page Analyzer Team

Six numbers tell you whether your indie game marketing is working: click-through rate (2-4% is average), visit-to-wishlist rate (8-15% median for Coming Soon pages), cost per wishlist ($1-2 is healthy, stop above $3), wishlist velocity (median ~23 per week for surveyed indies), conversion by traffic source, and your net wishlist balance. Every one of them lives somewhere specific in Steamworks, and most developers check none of them.

This post defines each metric, gives you the healthy range with sources, shows exactly where to find it in the Steamworks dashboard, and ends with the Monday-morning checklist: the six numbers to pull up every week and what to do when one drifts out of range. If a figure below is community-documented rather than official Valve data, I say so where it appears.

The six metrics and where each one lives

Steamworks scatters these across three different reports, which is half the reason nobody tracks them. Here is the map:

MetricHealthy rangeWhere it lives in Steamworks
Click-through rate (impressions to visits)2-4% average, 7%+ excellentMarketing & Visibility > Store Page Traffic Breakdown
Visit-to-wishlist rate8-15% (Coming Soon)Visits from traffic report / wishlist adds from Wishlists report
Cost per wishlist$1-2; stop at $3+Ad platform spend / UTM-tracked wishlists
Wishlist velocityTier-dependent; median ~23/weekWishlists > Wishlist Actions (daily adds)
Conversion by traffic sourceVaries; compare sources against each otherUTM Analytics tab + Traffic Breakdown
Net wishlist balanceAdds minus deletes, positive and stableWishlists report (adds, deletes, balance)

None of these are vanity numbers. CTR tests your capsule, visit-to-wishlist tests the page. Cost per wishlist grades your ad spend, and conversion by source decides which channel gets the next dollar.

Click-through rate: the capsule metric

CTR is visits divided by impressions: if Steam shows your capsule 10,000 times and 400 people click, you have a 4% CTR. It is the first gate in the funnel and almost entirely a capsule-and-title test, because the capsule is all a browsing player sees.

The benchmarks from our full Steam CTR benchmarks guide: below 2% is poor and usually means Steam is throttling your reach, 2-4% is the indie average, 4-7% is good, and 7%+ is excellent. Find yours under App Admin > Marketing & Visibility, comparing impressions to visits per traffic source.

One honesty note, because the data here is genuinely contested. Chris Zukowski’s developer survey at How To Market A Game found that CTR did not correlate with revenue — games with tiny impression counts often post higher CTRs, because the only people who ever see an obscure game are the ones already hunting for it. Raw impressions and page visits correlated with wishlists; CTR alone did not.

So treat CTR as a diagnostic, not a KPI. Use it to compare your own capsule versions against each other (a before-and-after when you ship new art) and to compare the same traffic source over time. Do not use it to compare your game against someone else’s, and do not celebrate a high CTR on 900 impressions.

Tip

Give a capsule change a few days of fresh impression volume before judging it. Weekly averages, not daily swings.

Visit-to-wishlist rate: the page metric

This is the percentage of store page visitors who click Add to Wishlist. It is the single best measure of whether your page itself is doing its job, independent of how much traffic you drive to it.

The median Coming Soon page converts 8-15% of visitors to wishlists. The full ladder, from our store page conversion benchmarks:

Visit-to-wishlist rateVerdict
Below 5%Poor — something on the page actively repels people
5-8%Below average — usually a capsule-to-page mismatch
8-12%Average — functional, no hook
12-18%Good — above the median, leave the page alone
18-25%Excellent — strong hook, aligned assets
Above 25%Exceptional, often genre-driven (horror overperforms)

Steamworks does not print this ratio for you. You compute it: visits from the traffic report, wishlist adds from the Wishlists report, same date range. Expect the number to drop once the game launches, often by half, because a Buy button starts competing with the wishlist button.

The reason this rate beats total wishlist count as a health metric: a page converting at 5% with 50,000 visits has a page problem, and a page converting at 15% with 10,000 visits has a traffic problem. The fixes are completely different, and the total wishlist count (2,500 vs 1,500) tells you almost nothing about which situation you are in. If your rate sits below 8%, fix the page before spending anything on traffic — and when you change the page, A/B test it properly instead of guessing.

Cost per wishlist and cost per player: $1-2 is the lane

Cost per wishlist (CPW) is your ad spend divided by the wishlists that spend produced. It only applies when you run paid ads; if your whole plan is festivals and Reddit posts, your CPW is $0 and this section is a benchmark for later.

The canonical range, from Chris Zukowski’s paid-ads guidance and Patrick Tang’s documented campaign data: a well-optimized campaign lands at $1-2 per wishlist. Above $3, stop the campaign and rework the targeting, the creative, or the page itself — at that price the math almost never recovers, because paid-traffic wishlists convert to sales worse than organic ones.

Real-world spread from that campaign: solo developer Patrick Tang spent $4,365 on ads for This Grand Life 2 and reported an average CPW of $1.10, with individual ad groups ranging from $0.80 to $2.50. That spread inside one campaign is normal, and it is exactly why you kill the expensive ad groups and feed the cheap ones.

CPW is really a proxy for cost per player, the number the spreadsheet actually cares about. Divide CPW by your expected wishlist-to-sale rate: at the ~12% median day-1 wishlist conversion, a $1.50 wishlist is roughly a $12.50 day-1 player. Treat that as a rough ceiling, since wishlists keep converting through launch discounts and later sales. If cost per player lands above your net revenue per unit, the ads are buying visibility, not profit.

Cost per wishlist: one documented campaign vs the decision thresholds
Best ad group (case study)$0.80
Campaign average (case study)$1.10
Healthy ceiling$2.00
Worst ad group (case study)$2.50
Stop and rework$3.00+
Source: This Grand Life 2 paid-ads case study (Game World Observer, 2024); $1-2 healthy / $3 stop thresholds per Chris Zukowski and Patrick Tang

To measure CPW at all you need attribution, which on Steam means UTM links (covered below). Divide platform spend by UTM-tracked wishlist conversions, per campaign, weekly. The indie game marketing budget guide walks through when paid ads deserve any slice of a small budget in the first place.

Wishlist velocity: the momentum metric

Wishlist velocity is wishlists gained per unit of time, usually per week. Its main use is honest self-assessment: totals only ever go up, velocity tells you whether anyone still cares.

Zukowski’s survey data (non-promotional weeks, pre-launch) puts the overall median at ~23 wishlists per week and breaks out by eventual lifetime revenue:

Weekly wishlist velocity by lifetime revenue tier, non-promo weeks
$0-10K lifetime (0-40)0-40
$10K-249K (15-120)15-120
$250K-999K (100-700)100-700
$1M+ (300-3,000)300-3,000
Source: How To Market A Game developer survey, 2022; bar shows top of each tier's observed range, ranges overlap heavily

Provenance note: this is survey data from a self-selected developer group, not Valve data, and the tiers overlap heavily — a game doing 100 wishlists a week could land in any of the top three buckets. Zukowski’s follow-up on wishlist velocity is explicit that velocity is a good indicator and a poor guarantee; even Valve waits for actual sales before committing featuring.

Two practical readings:

  • Baseline velocity (quiet weeks, no beats) is your discoverability floor. If it is near zero, Steam’s organic surfaces are not feeding you, and the fix is tags, capsule, and algorithm visibility, not another tweet.
  • Spike decay after a festival or a streamer hit shows how sticky the attention was. A spike that returns to a higher baseline is the pattern you want; it means the event taught Steam’s recommender that your game converts.

Velocity is also the number that decides launch timing math — whether you will plausibly reach the wishlist count you need for Popular Upcoming by your target date. Run your current velocity through the wishlist calculator to project where you will be at launch.

Conversion by traffic source: where good traffic actually comes from

Aggregate conversion rates hide the story. Discovery Queue visitors, search visitors, and TikTok visitors behave like three different species, and the Steamworks Traffic Breakdown plus UTM Analytics let you separate them.

Steam’s internal surfaces carry more weight than most external channels. Zukowski’s Discovery Queue breakdown puts the queue at the number two or three traffic source for top-selling games, and documents a media push for Whisker Squadron: Survivor that came with 7,668 Discovery Queue visits in a single week. External beats exist partly to trigger that internal machine: a Reddit post that sends 2,000 visitors matters less for those 2,000 than for the algorithmic amplification the resulting spike can buy. Can, not will. Zukowski has also watched a 3,000-wishlist streamer spike produce zero Discovery Queue lift.

What to compare, source by source:

  • Steam internal sources (Discovery Queue, search, more-like-this): high volume, medium conversion. This is your baseline. If internal sources convert poorly, your page or tags mismatch the audience Steam sends.
  • Direct/external links you control (your site, mailing list, Discord): low volume, highest conversion. These people already know you. A mailing list click converting below your Discovery Queue rate is a red flag on the page.
  • Paid traffic: whatever converts here sets your real CPW. GameDiscoverCo’s wishlist conversion analysis cites the Furnish Master postmortem, where wishlists from ads converted into sales less effectively than organic ones. A paid wishlist is worth less; budget accordingly.
  • Social/viral traffic: spiky and low-converting per visit, but it feeds the velocity spikes that move Steam’s recommender.

None of this comparison works until you tag your external links. Setup takes ten minutes.

UTM setup: five parameters and a 72-hour window

Steam has native UTM tracking, documented in the Steamworks UTM Analytics docs. It supports the five standard parameters: utm_source, utm_medium, utm_campaign, utm_content, and utm_term. A tagged link looks like:

https://store.steampowered.com/app/YOURID/?utm_source=reddit&utm_medium=post&utm_campaign=demo_launch

The mechanics that matter, straight from the documentation:

  • Only logged-in visits are tracked. The Tracked Visits count excludes logged-out users and bot traffic, so UTM numbers will always undercount raw clicks from your ad platform. That gap is normal; do not panic when Meta reports 1,000 clicks and Steam reports 400 tracked visits.
  • Conversions attribute within 72 hours. A wishlist, purchase, or activation counts for your UTM link if it happens within 72 hours of the click, even if the user wanders through other pages first.
  • Three conversion types are reported: wishlists, purchases, and activations. Demo downloads do not count as conversions.
  • The report lives in its own UTM tab under Marketing & Visibility, and low-volume parameter combinations are suppressed for privacy.

Set a naming convention on day one and never improvise: lowercase everything so Reddit and reddit can never split into two rows (Valve’s docs do not say whether case gets normalized, so assume it does not), utm_source for the platform, utm_medium for the format (post, ad, video, email), utm_campaign for the beat (nextfest_2026, launch_week). Zukowski’s walkthrough of the UTM feature has held up well since Valve shipped it.

Warning

UTM parameters only survive direct link clicks. Traffic from people who see your game on TikTok and then search Steam manually shows up as Steam search traffic, not as TikTok. Dark traffic like this is real and unmeasurable; UTM data is a floor on a channel’s value, never the full picture.

The Monday dashboard: six numbers, five minutes

Here is the weekly check, every Monday, same order. Pull last week and the week before, and only investigate when a number leaves its lane.

#MetricHealthy rangeBenchmark source
1CTR (impressions to visits)2-4% average, 7%+ excellentSteam CTR benchmarks
2Visit-to-wishlist rate8-15% median (Coming Soon)Conversion benchmarks
3Cost per wishlist (if running ads)$1-2; kill at $3+Marketing budget guide
4Wishlist velocityvs your own 4-week baseline; survey median ~23/weekHTMAG survey, 2022
5Conversion by traffic sourceOwned channels above internal baselineYour own UTM Analytics data
6Net wishlist balance (adds minus deletes)Positive; deletes under ~15% of adds (my rule of thumb, not a published benchmark)Wishlists report in Steamworks

The decision rules that go with it:

  • CTR fell and visits fell: capsule or visibility problem. Check whether an algorithm surface dropped you before blaming the art.
  • Visits up, visit-to-wishlist down: the new traffic is mismatched, or the page has a fresh problem. Check which source grew first.
  • CPW crossed $2 and is climbing: kill the worst ad groups now, not at $3. The $3 line is where you stop the whole campaign.
  • Velocity below baseline two weeks running with no beat planned: your discoverability floor dropped. Tags and capsule first, then plan the next beat.
  • Deletes spiking without an announcement: something external happened (a price reveal, a delay, drama). Find it before it compounds.
  • A single UTM source converting 2x the others: that channel gets next month’s effort. This is the entire point of the dashboard.

Numbers 1 and 2 have a shortcut: run your page through the free Steam Page Analyzer and it will flag the capsule and page-conversion problems that drag those two metrics down. The other four just need the Monday habit. Most indie marketing advice tells you to do more; the dashboard tells you what to stop doing, which on a small budget is worth more. For the tactics layer on top of these numbers, the wishlist growth playbook is the companion piece.

End of entry № 91

Field work

Put this entry into practice.

Run a free analysis on your Steam page and get specific, actionable fixes for your capsule, description, screenshots, and tags.

Continue reading

The Journal, weekly

Enjoyed this entry?

Get one actionable Steam page optimization tip in your inbox each week.