Thursday, March 15, 2012

Why am I getting such a low eCPM?

At the moment we are making most of our (very modest) advertising revenue from one app;  FB Viewer.  Currently about $75 / week from that app and another $5-10 / week from our other 8 free apps. 

The impressions for this app has been steadily growing over the last 7 days but the low eCPM is killing us.  (See graphs below) The last few days we've had over 16,000 impressions each day for FB Viewer but with an eCPM which has today hit an all time low of 0.44 USD this isn't equating to much.

FB Viewer Impressions

FB Viewer eCPM
 Most of our other app such as Beat My Drum, Timezone Converter and Camera Flashlight are getting eCPMs that are well above $1. In fact Beat my drum has been consistently between $4 - $7 over the past 3 months. Today it's $5.83.  If only FB Viewer was getting an eCPM of this amount we'd be making around $700 / week from this single app.  (Based on 16602 impressions * 5.83 / 1000 eCPM * 7 days = $677.53 ).  

So why am I getting such a bad eCPM???

The truth is I don't really know. No one outside of Microsoft does. I've searched the pub center forums and read various blogs on this and there is a lot of theories but no solid information. From what I can tell the main factors affecting eCPM are as follows:

  • Click-thru rate - The more users that click on ads the higher the eCPM.
  • Country the ads are being served to - To make any money you really need to have lots of impressions in certain countries.  I make all my revenue from adverts served in USA, Canada, Great Britain, Germany, France and Italy.  I make almost nothing out of any other countries.  For example I have thousands of ads served in countries such as Australia and Taiwan but I get an eCPM of $0.00. I read somewhere that this is because pub center is just doing beta testing in those countries.
  • Stickyness of users - I have heard conflicting reports about this.  But there is theory that advertisers will pay less if their ad is being served to same users over and over again.  So although having an application which keeps users coming back again again is great for increasing impressions it seems this may result in a lower eCPM. This seems true in my experience as my two most "sticky" applications are XKCD Reader and FB Viewer.  Both currently have an eCPM of under $0.50.
  • Who the advertiser is -  It seems the amounts paid by various advertisers vary greatly.  Unfortunately it's impossible to know which advertisers and which categories will pay the highest amounts as this information is kept secret.  However when I decided to block ads from and the eCPM's on all my apps went down noticeably. (For reasons why we didn't want to serve ads for McDonalds see Morgan Spurlock's awesome 2004 documentary supersize me )
The more research I've done the more I've realised there is very little I can do to try and improve the eCPM I get.  However the following (very loose) guidelines may help you if you're developing wp7 apps and using pub center to serve ads:
  • Try to make your app relevant to people in the USA as this is where most advertisers are and where the highest eCPM can be achieved.
  • Try to choose ad unit categories relevant to the kind people who will be using your app in order to maximise your click-thru rate.
  • Try to choose atleast one broad ad-unit category to reduce the chance that the same advert will be shown to users over and over again. (I realise this will not always go hand in hand with the point above.  So to find a middle ground I would suggest choosing 2 very specific and relevant ad unit categories and 1 broader one. )
  • If you are going to make your app available in languages other than English then German, French and Italian might be a good place to start as in my experience all of these markets are paying a decent eCPM.
 If you have more information on this topic leave a comment or hit us up on twitter.


  1. The reason your eCPM is low is because you are providing little to no information about your users. You should try adding location services and looking up their zip code, or setting the latitude and longitude of the ad control. Since your app is a Facebook app, you have access to their profile. You could gather keywords about the user and set them on the ad control as well.

    Microsoft pubCenter uses real time bidding to fill your ad control with ads. This means that advertising companies are getting notified of your users when they use your app. The more information they have about your user, the more likely they are to identify the user as a high value user. High value users drive up your eCPM because these advertising companies have different eCPM formulas for different people. If they can't identify your user, they will bid a minimum amount, and hence your eCPM will drop.

    They key here is that advertisers cannot see what other people are bidding, it's a blind auction. They only know if they win.

    1. Thanks for the comment. From what I have read location services are not the answer to higher eCPM. By default advertisers are given a user's location via the cell phone tower they are connected to which has a fair amount of precision (much more than a zip code). It's unlikely that advertisers would pay much more for the extra precision of a GPS location. In addition once you include location services in your app you need to prompt users about this and will discourage many of them because of privacy concerns.

      Here is a quote by Richard Foster on this exact issue:

      "I tried location aware (feeding longditude / latitude )it made no differnece to mine beisdes the default uses cell towers anyway so in a way your getting somewhat of a locaiton by default.

      By using location API i got more trouble than good end users wre unistalling cause they were put off by the prompt before you update install of having the 'phone wishes to use your location'."

      from -

      However your idea about getting keywords from user profiles and displaying relevant ads is an interesting one. This is something that Facebook and Google do already.

      I believe you are wrong in your assertion that keywords will help with advertiser bidding. I already provide keywords. The advertiser does not know if the keywords I have provided are more relevant because they have come from someone's facebook profile or whether they are static, and so this will have no affect on whether an advertiser sees my users as high value. However it should certainly help with click-thru as the ads will end up being more relevant to the user.

      I may consider doing this in an update but would have to weigh it up against privacy concerns. (I have always found it a bit creepy when gmail shows me adverts related to the emails I'm reading )

    2. I don't think you understand. You are correct though in that your static keywords mean nothing, because you probably have no idea what you should put there.

      Obviously, if advertisers can identify your user, you get paid more. With this in mind, if you provide their email address, or phone number as a keyword it makes it pretty easy to identify the user. You might also think about setting the phone's UUID. I'm sure you hear about all the iOS or android apps that send such identifiable information, and they do so for the simple reason that they make more money.

    3. Thanks again for commenting. Turns out this is a purely theoretical discussion as according to this post Ad control keywords have no affect anyway. I can't find any information to suggest the situation has changed since this post was written.

      However when keyword functionality is eventually implemented I would be very surprised if providing an email addresses, phone number or UUID in a keyword would help identify a user during the bidding process. The reason is there is no format for providing meta-data with a keyword. i.e. Information indicating whether a particular keyword is an email or a phone number etc. Without this the advertiser has no way of knowing whether a keyword specifically relates to a user or not.

  2. I'm kind of in a similar situation. I never really hear the details of people having low eCPM, but mine appears abysmal. I have a number of apps out there that are like this:

    app impressions/day avg ecp/day months released
    1 250 $2.00 10
    2 4000 $0.01 8
    3 18,000 $0.29 4

    As you can see, this sucks on many levels. It particular, the #2 app is horrible - and it's almost always been like this from day one.

    #1 has stayed fairly consistent. #3 has gone between $0.79 and $0.14, but is averaging closer to the low end.

    I know everyone is saying things like "pubCenter has the best payouts compared to AdMob, etc.", but it's hard to believe they could be much worse than this.

    1. Wow #2 is really bad. The worst I've hit is 0.10 on XKCD reader for a few days. I wonder if most of your impressions are coming from countries where eCPM is almost non-existent.

      I've read posts by a few developers who have written functionality that detects what country the user is in and then switches to other ad services such as millenial media / AdMob if the user is in a country with low eCPM. Might be worth it for you if that is the cause.

    2. Possible solution for you all: just make them paid apps. Sure your total number of downloads will decrease, but if your app is worthwhile in the end you will likely bring in more money from sales rather than ads. Compared to iOS and android there just aren't enough windows phones in the hands of enough people to make ad revenue feasible.

  3. eCPM on pubCenter has decreased over the past year and the eCPM you're seeing is not bad on pubCenter right now for how many impressions you're getting. Could it be better? Yes. But some of the suggestions you're getting from Anonymous users here are just not based on the reality of where Windows Phone pubCenter is today:

    (1) "use location services to get higher eCPM" - that might be a good strategy on iOS, but on Windows Phone today, it's not there yet.
    (2) "make them paid apps" - proven to be a worse strategy than monetizing with ads for most apps because it results in a lot fewer downloads and no recurring revenue.

    The biggest things holding back eCPM are out of your control: sales of Windows Phone handsets that would attract more advertisers with deeper pockets to pubCenter - and pubCenter's lack of coverage around the world.

    1. Thanks Dan. Totally agree with your points. I'm Hoping Nokia's marketing push at the moment starts to get few more windows phone handsets out there.

  4. I had a decrease in eCPM when I went from a non US account to a Norwegian pubCenter account. I went with a pro version and think this was the right choise for me. You can read more about it here

  5. Hello friends of Mayhem,

    I, and I think that 90% of app developers for Windows Phone still have the same problem, low eCPM,

    does it worth investing in applications for Windows Phone 7/8?

    are there developers, maybe only 20 or 30 from 100.000, that can live with generated incomes either by advertising or by selling apps?, I can not.

    It would be nice to know if you are still having problems with low eCPM,

    it is possible you already know, but two weeks ago I found an application that shows (I do not know how accurate numbers are) the eCPM by category for the present day.
    The application is called
    PubCenter Adviser
    and indicates the eCPM of each category the current day

    Thank you very much for the blog and best regards,

    If you do not mind I put my Windows Phone apps, maybe you like them ;-)

  6. Unfortunately we are now getting a much lower eCPM than when I wrote this post. currently were doing about 60000 impressions per day but our average ecpm is only about 0.12.

  7. I thought it might be helpful to add an update of eCPM. My app currently gets about 12,000-14,000 per day with average eCPM at $0.10. I'm working on an Android and IPhone version because unless something changes ( and since my app is XNA based) I can't see any reason to keep developing for Windows Phone. These numbers are way too low to be sustainable.