The Economic Guide to Profitable Game Advertising



Hello fellow developers, in this tutorial I will be unraveling what I’ve come to see, through experience and economic insight, as the most concrete guide to profitable game advertising on Roblox. A bit about my background, I have a BA in Economics from the University of Arizona, and have maintained a Roblox game that has earned at least the floor DevEx cashout since October 2013 when DevEx began.

First question, I’m a developer too, why would I want to show all this work to make others more profitable?

  1. If more developers check to make sure their ads for their games are economically profitable, maybe there would be less ads running and therefore the cost of impression would go down. This result would be efficient for everyone, as only the most profitable ads compete in the market. This also means only the best ads compete in the market, which would require stepping up ad / icon quality.
  2. If more developers do this, it will be more apparent to many that default developer stats should be improved, resulting in dev stats being more efficient to everybody.
  3. This is just as much for me, as it is for you. I get to refine my methods and even learn something new as I type this out. (I typed this after I learned something new)
  4. It’s nice being altruistic every now and then. We should all reach for truth and improvements.

Part 1:
First, we must create a foundation understanding of impressions and our options to advertise as Roblox developers.

Ads / ad = user ads or sponsored games
CTR = click through rate of ad

When you click run ad or sponsored game, Roblox will calculate the estimated impressions. This number is retrieved through data from the previous day. Estimated impressions can be used to determine which ad you would get the most bang for your robux for, given you have previous CTR attached to your ads in comparison. However, this estimation of the previous day also leads to high deviations from Friday to Saturday and Sunday to Monday. I’d advise staying away from relying on that number during those days if you are a beginner. Friday to Saturday marks a huge increase in ad spending as more players are available to play Roblox on the weekends, hence, more ad space is readily available and devs would like to capitalize on that. Sunday to Monday marks the opposite. However, given enough data, you could determine the average shift in estimated impressions each Friday to Saturday and the subsequent shift each Sunday to Monday. Then you would use a multiplier to the estimated impressions given to get your true estimated impressions.

You must get some sort of data first, get data on one of your user ads and a sponsored game ad. If you do not have data yet, bookmark this thread and it will be here for you. To get the most out of this tutorial I assume you now have at least 2 different type of ads’ CTRs to compare.

The best way to learn this is through example, replace these numbers with your numbers. From now on I will talk as if we are doing this together.
The 4 data points below are all exogenous. The first 2 are dependent on our situation, and the last 2 are from the larger market for ads at the time of our ad run.
Let’s say our data is:
User ad CTR: 2%
Sponsored game CTR: .8%
Example estimated impressions per Robux for user ad: 90
Example estimated impressions per Robux for sponsored game: 135

Calculate estimated impressions per Robux by: Estimated impressions / Robux bid

What are we trying to find? Roblox currently does not give data on play through rate (different in the CTR in that players actually press play on your game after clicking the ad) of an advertisement clicker. We want to maximize our Robux per Click. That is the current easiest way to determine which ad is bringing the most players to our game’s detail page per Robux spent.
We shall assume that our ad will receive the exact same CTR as last time. Note it is likely that the more Robux we spend on an ad, the less the CTR will be due to ad exhaustion. In economics this is diminishing marginal returns.
Example, if we spend 1k Robux on our ad with the given ad market from above:
Estimated clicks for user ad of 2% CTR:
1,000 * .02 * 90 = 1800 Clicks
Estimated clicks for sponsored ad of .8% CTR:
1,000 * .008 * 135 = 1080 Clicks
We should run the user ad in this scenario, because we could get about 66% more clicks for the same Robux. However, if we think that sponsored game play-through-rates are 66% higher than user ads, then you could argue to me that running sponsored ads are more efficient for players actually playing our game. Replace 66% with the percentage difference in your real case. Note it is extremely hard to get data on the play through rates of user ads or sponsored ads. In this tutorial we will assume clicks per Robux is king.

Great, now we know how to compare our own ads to see which one could get the most clicks per Robux we spend on it. We know we’re operating a bit more efficiently than just eyeballing it. What else can we do?

Part 2:
We should estimate how our ad might do.

We can estimate how many visits our game is likely to get after running an ad. And we can use that as an estimate to how much our ad run may influence profit.

  1. Note the CTR of the ad we are going to run
  2. Find the expected clicks (estimated impressions times CTR)
  3. Make up a variable for “play through rate” (percent of people who click your ad and actually go through with playing) *Roblox provided stats on this could improve your estimate
  4. Make up a variable for “popularity boost” (rising on game sorts, aka ways people find your game outside of ads) *If developer stats shows you where your playthroughs are coming from, this number could be vastly improved for estimating.
  5. Multiply step 2 to step 3 and step 4.

Here is a spreadsheet version of the above logic. This spreadsheet has a friendly color design to help you navigate all the numbers. Inside the spreadsheet are numbers given as an example where the ad was not economically profitable.

Part 3:
We should make sure our ad was profitable after it has finished running.

If your game has a player-base, profit on an ad is not as simple as revenue - ad cost. You also should account for the trended revenue your game is likely to get on the day that you wish to run your ad. For this part, take a look into the spreadsheet as well. The areas off to the right and below the grayed lines are meant as a post-facto for your ad. You input the actual stats that your ad received.

With all the updated stats, you are given a few sentences about what to make of your specific scenario. In this case, these are the inferences gained from having run this ad.

All of the logic is implanted into the spreadsheet, so you can check out where all the numbers are coming from to make your own connections with what is going on. If you believe to have found any logical errors please let me know and I will take a look into it and fix it if truly a mistake, or I will update this thread or the spreadsheet with more explanation if something is confusing.

In conclusion, check to make sure you’re not getting burned out there in the ad market, there’s no reason to with just a few stat inputs. Good luck out there!

Thread and spreadsheet subject to updates if better methods are found via more insight or new Roblox stats.

Using the Roblox Advertising System
Game Development Resources [MEGA THREAD]
Featured Games Program - Getting Started & Expectations

Great Tutorial as always Amaze! :+1:


This is extremely helpful, thank you for sharing!


I lost this long before I became a member of the devforum and thankfully stumbled across it again today! This is a great article. Thank you for making it!