iAd vs AdMob

In You Doodle (as of 2014), I have two revenue streams from advertising: iAd and AdMob. I give a simple comparison of AdMob vs iAd below:



– Super easy to integrate (Add an ADBannerView or ADInterstitial, on iOS 7 it’s even easier with view controller properties and methods)
– Higher ECPM (revenue per thousand impressions) than AdMob. In You Doodle, my iAd average ECPM for the past two years is about 1.5$.


– Fill rate is poor, especially for Asia and Africa
– There is no way to track per app which Ads are performing better. Interstitials and banners are all lumped into one number. This is awful as it doesn’t let you track which ad views perform better in your app.
– The iAd reporting page in iTunes frequently goes down



– Amazing fill rate (I get around 99% on You Doodle and it’s downloaded in just about every country on Earth)
– Integrates with AdSense reports
– Create as many ad units as you want and track them individually


– Not nearly as good ECPM as iAd (I get about 1/3 the ECPM I do with iAds in You Doodle). My USA banner ads from AdMob pay between 0.1$ to 0.3$ ECPM and my AdMob Interstitials in the USA pay about 1.10$, which averages WAY less than my iAd ECPM.
– Requires integrating the Google AdMob SDK, which has had it’s history of crash bugs. Several versions of You Doodle required a quick patch release with a rolled back version of the AdMob SDK because of crashes in Google’s SDK.


If the iAd fill rate was closer to 100%, I would remove AdMob ads entirely, but until that happens, AdMob works as a good filler when iAd is unavailable.

*UPDATE* February 2015, Admob ECPM is 0.08, iAd is 1.6. AdMob is no longer worth having in my apps at this rate.
*UPDATE* January 2015, Admob ECPM is 0.15, iAd is 1.5 putting it 10x better ECPM than AdMob. Wow.
*UPDATE* July 2014, AdMob ECPM is around 0.3, iAd around 0.7 – very low…
*UPDATE* June 2014, my iAD ECPM has recovered to back to around 1.3 USD thankfully, we’ll see if it holds…
*UPDATE* April 2014, my iAD ECPM is dropping to around 0.75 and AdMob is hovering around 0.6. Not sure why, but this is a very interesting development…

22 comments on “iAd vs AdMob
  1. Rahul Sharma says:


    Thanks for the amazing article!

    I am from India! As you mentioned the fill rate is poor for countries in Asia. Is it still this? Also, what according to you would be good for me.



  2. Devin says:

    Hi-  First of all, great article!  I have a few questions that if you could help with would be awesome!

    I am a new iOS developer and I am getting ready to submit my first app to Apple hopefully this week.  So far I have only implemented iAd into my app, and I am torn as to whether I should embark on a mission to integrate AdMob.

    I currently have banner ads at the bottom of the screen as well as interstitial ads (all using iAd).  From your article above, it seems to me that it is almost just not worth bothering with adMob right now.  Is that right?  I am also wondering if adMob is worth using to “bug” users with constant advertising, or if I should just accept iAd’s higher earnings per impression with less frequent ads.  Do you think this could deliver good earning potential?

    Problem with iAd:
    I am making a Sprite Kit game and when iAd’s are loading, my FPS performance drops significantly and causes lags in my game.  Do you know of any way to fix this?

    adMob issues:
    My main hesitation with adMob is that I am new to programming in general and it seems like it is not very easy to integrate it with iAd.

    Do you have any xCode projects that you could share that just have the code needed to integrate iAd and adMob into one app?  It would be nice to have something I could just add to my game instead of delaying the release of my app 1+ months so I can learn how to add adMob…

    I greatly appreciate you answers…

  3. ash says:


    would be very interested to hear how your iAD vs Admob is performing these days? Any big changes in findings?

    I’m currently building an app targeted to Europe, mostly UK, and wondering which ad provider to go with at the moment. any help appreciated


    • jjxtra says:

      iAd performs much better with Ecpm about 4-10x that of admob. The problem is the fill rate. I get about 30% with iAd so I fill with admob if iAd is unavailable.

      • Marc Martin says:

        I implemented iAds in mid-January and they’ve been running since then and my cpm hovers around .03, I serve about 12k impressions a day…what gives?

        • jjxtra says:

          What is your click through rate? Where is your banner ad located in the app? Are you using interstitials?

          • Marc Martin says:

            Check it out the app is called ‘The Lobby’, the ad is on the top of the chatroom. Fixed position (when the request is delivered of course). Clickthrough rate is on average 0.07. No interstitials. Ill probably switch back to admob…my ecpm was like .4

            • jjxtra says:

              Wow that is a crazy low ECPM. My only guess there is that you haven’t gotten enough impressions for iAd to serve up relevant ads for your users. Seems lame, but reasonable. It’s a shame, because my iAd usually gets 5-10x my Admob, so if that held true for you, you’d be getting a really great ECPM with iAd…

  4. joe says:

    iAds is not easy at all to implement. I’m on my third app with iAds. In regards to the author stating iAds are easy to implement, the author couldn’t be more wrong. The thing he or she doesn’t obviously realize is that yes the framework is easy to add and so are the methods, BUT and the big BUT is that you have to pass the instance of the iAd to every view. It’s not just the iAd instance you are passing around from view to view you also have to pass a boolean stating if the iAd is being displayed or not, so you can position the iAd correctly. I’m passing the iAd instance from view controller to view controller via the segue and back to the view controller via protocols. This can get very complicated when you start considering having to move the banner to the top of the view based on the size of the view (bounds of the view). Let’s say you have a tab bar on the bottom, so you place the iAd on top, but when you change views you have to put the add on the bottom on the next view. Moving the iAd from view to view you have to keep in mind the current position and if your view is displaying a status bar and/or navigation bar you have to account for that as well (mathematically). Add whether or not the iAd was originally displayed originally when then view was passed and you end up with headaches after days of testing and getting all the bugs out. I spent a week getting the iAds just right and now I can do it in my sleep, but easy it is not my friend.

    • jjxtra says:

      Thanks for posting! I ended up making a UIViewController category that allowed showing an iAd banner, that way any view controller that needed to could show an iAd banner. I keep a static instance of my iAd banner view in the category method, created with dispatch_once. The best place to call such a category method is viewWillAppear.

      iOS 7 added methods to automatically show a banner, but I didn’t like the loss of control over top vs bottom, etc. so I went with my own code.

      Hope that helps!

    • jasna says:

      joe// i’m sorry to say this but you were just doing it dumb – very dumb. and jjxtra is doing it smart.

      i also used to show iad in my app, and what i did was pretty similar to jjxtra. i had a singleton ad manager class w/ adbannerview property getter exposed.

      the manager would handle creating/setting up the adbannerview at the app start;
      in your case, it would also have boolean state whether ad is currently shown or not/ i didn’t need that however – i handled that differently – for the views that was supposed to host/show this banner, i had a base class ‘adhostview’ that would set the banner’s delegate to this hostview in viewwillappear or something similar and do other necessary things to set it up and make it show (if not already); so that any viewcontroller that wanted to show banner would have its top-level view property as this adhostview or its derived class. (i.e. if you navigated from view A to B, if view A was of type adhostview and B is not, ad will be hidden automatically; vice-versa is also true)

      once you have all that setup, no more dumb passing adview instance to instance, and it’s extremely easy to configure which view get to show ads, and which view doesn’t.

      i’m sorry but i just couldn’t pass by after reading your comment.

  5. Steve says:

    I currently have iAd on my apps… Is there a good website tutorial to help me integrate AdMob into the apps for when iAd fails? Thanks

  6. Max Nelson says:

    HI! I have used iAd and admob and had a bad experience with iAd and never saw an ad when I would open my app and I generated about 3 cents in a month… It was my first app though so. Anyway I am on my fourth app and I have been through AdMob and they banned me because my “friend” click sabotaged me…. So I have now integrate Inmobi ads within my apps. I just have to wait for apple to review my apps so I can see the results. What is your experience with InMobi? Who do you sincerely believe is best?

  7. Leo says:

    Do you have any experience with inMobi? I am making a game and I am undecided between all the options. Chartboost, inMobi etc.

    • jjxtra says:

      I’ve never used inMobi, but I have gotten great ECPM (2-10 USD ECPM) with Chartboost. The trick is getting a lot of downloads for your game. Good luck!

  8. Leo says:

    Awesome post. Are you still seeing lower eCPM for iAD? I am wondering if I should just go with admob.



  9. Lab42 says:

    Congrats about your post!

    We are developing a game for iOS and Android, and we’re not sure about how can we integrate iAd and AdMob at the same time.

    Could you please give us some light ??

    Thanks a lot!!!

    • jjxtra says:

      iAd will not run on Android, so your best bet is to just stick with AdMob on Android if you are going for banner ads. If you are making a game, something like Chartboost or AdColony is probably going to perform much better than banner ads.

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.