Counting what counts: CPMs, eCPMs, and revenue

Reading time: 4 minutes

It’s common for publishers to use a metric like CPMs to compare the performance[5] of ad partners on their site. However, CPMs may not account for other factors that can impact a site’s overall revenue, and can cause confusion when higher CPMs don’t necessarily result in increased revenue.

What is CPM?

Cost Per Mille (CPM[1]) is the amount advertisers are willing to pay for one thousand impressions on a given website. For example, a $2.00 CPM means that 1000 impressions at that rate would earn a payment of $2.00. There are many factors that play a role in determining CPM, like content, advertiser[6], geography, audience demographics, and intent. As a result, CPMs can vary widely by site and by advertising partner.

While CPM has its origins in the cost an advertiser must pay, the term is also commonly used to refer to the revenue that a publisher[10] will receive for each 1000 impressions rendered on their website. If this value has already accounted for any fees or rev share from the advertising partner, it is commonly referred to as “net CPM”. 

cpm equals revenue divided by filled impression times 1000

What does CPM not consider?

While useful, a metric like CPM doesn’t give a publisher a full view of the true revenue potential of their site, since it does not take into account important factors such as lost or unfilled impressions[2]. Publishers can take these factors into account by dividing their revenue by all opportunities to serve an ad, a metric sometimes called effective CPM (eCPM[3]):

ecpm = revenue divided by requested impressions times 1000

Impressions can be considered lost or unfilled due to one of many reasons. 

Setting floors on segments of inventory[11] can be a useful way to push buyers to pay higher prices, but if the floors are set too high, buyers may not be willing to pay and impressions can go unfilled. Publishers need to account for fill rate[12] and monitor their overall revenue, with an eCPM as an average of all impressions, even the ones that earn $0.00 because they did not meet the floor. 

For example, if 1000 impressions are requested and 853 ads are served to those impressions, then the fill rate would be 85.3%.

calculating fill rate

Prior to header bidding[7], many publishers used a “waterfall” method to pass back unfilled impressions from one demand partner to another. This system added latency and could more often result in a failure to serve an ad to some users. The introduction of header bidding helped to reduce loss, and ensure more equal opportunity for buyers to bid on an impression[8] in real time.

Since much of the ad serving technology publishers use relies on communication of data between multiple companies, there are occasions where timing or other technical issues can cause ads to not fill, or fail to be measured properly. This can result in discrepancies[9] where, for example, a publisher’s ad server may record 1000 impressions at a $2.00 CPM, but if the advertiser’s ad server records only 900 impressions at the same rate, the publisher’s payment will be just $1.80. In this case, the eCPM would be calculated as revenue ($1.80) divided by requested impressions (1000), for an eCPM of $1.80. 

CPMs and A/B testing

Accurately measuring performance to include factors like fill rate becomes incredibly important when testing optimizations to your site’s monetization. Even if a test is not split at an even 50/50, it’s still possible to calculate an eCPM or “normalize” test results to compare across equivalent volumes of traffic.

For example:

1% share of traffic earns $200. Normalized to 100%: $200/(1%) = $20,000

99% share of traffic earns $18,500. Normalized to 100%: $18,500/(99%) = $18,687

This approach shows which strategy will yield[13] the highest overall revenue, where a CPM metric may fail to account for lost or unfilled impressions on one side of the test.

Can you trust eCPM?

While we’ve used the term eCPM above as a metric that includes a consideration for fill rate, it’s important to note that there are various definitions for this term across different platforms in the industry. In fact, Google Ad Manager[4] does not factor in unfilled impressions with the “eCPM” in their reports. 

When working with multiple vendors and reporting platforms, it’s always best to find out how each metric is calculated before relying on its value. Remember, the revenue you actually earn is the metric that matters most of all.

1. Cost Per Mille/Thousand [CPM] ( CPM ) Cost per mille, or thousand (mille = thousand in Latin). A pricing model in which advertisers pay for every 1000 impressions of their advertisement served. This is the standard basic pricing model for online advertising. See also CPC and CPA.
2. Blank Impression ( unfilled impressions ) Blank impressions are also known as blank ads or unfilled impressions and occur when blank ads are displayed on a website. No publishers want blank impressions as these ads don’t result in ad revenue. Many reasons for blank ads can exist such as not having enough advertiser demand, low page loading and having too high CPM floors.
3. Effective Cost Per Thousand Impression [eCPM] ( eCPM ) eCPM is known as the effective cost per thousand impressions and is a metric used by publishers to determine the actual rate they’re earning from their ad inventory. eCPM is calculated by taking your (total ad earnings/impressions) x 1000.
4. Google Ad Exchange ( Google Ad Manager ) Ad Exchange is often referred to as the premium version of AdSense, and also a Google-owned ad network of sorts. To join Ad Exchange, publishers need to meet specific requirements such as 500 000 minimum monthly traffic, be invited or join through a Google certified partner. Recently Google has rebranded this product, and it is now called Google Ad Manager.
5. performance. A form of advertising in which the purchaser pays only when there are measurable results.

Recent Articles

Related Articles

Stay connected

Don't miss out on the latest news, events and special announcements.

By submitting this form, you agree that you've read and accept our Privacy Policy as well as to receive communications from You may unsubscribe at any time.