Android Ad Revenue – Mobclix Vs. Admob

After months of testing, I can say that MobClix has definitely paid me more than Admob.  When I first wrote this article, I was still waiting for payments, but now that they checks are regularly arriving the winner is clear:  MobClix.  Read on for details.

Update:  Check out the just-released Android Ad Network Primer on Kindle and in print for a crash course in getting advertisements into your Android app quickly.  It covers these and many other ad networks.

Update: Mobclix went into bankruptcy, and had lots of trouble paying developers before that.  Their technology has been acquired by Telefonica, and the new platform is called Axonix.  A review for that network may be coming, but poke around here now to find good choices to use instead of Mobclix.

[Update, Axonix is no longer available either]

Major Features – Admob vs. Mobclix

There are numerous other factors that I’m not covering here.  This is a rundown of the major differences that concern me the most.

Admob

  • Easy to integrate
  • No payment until you get to $20.  No ability to convert to ad credit unless you have $50 pending.
  • Payment occurs 6 weeks after close of a month with sufficient credit
  • Good analytics.  Can see geographic location of users.
  • Nice visuals for daily activity
  • House ads – serve when no ads are available.  Metrics on house ads just as with advertiser ads.  Easy to create house ads (text or graphic).  UPDATE the new house ads don’t allow you to just serve ads when no paid ads are available – you must specify a target number of clicks.
  • Single library to integrate into your app

Mobclix

Quickly shrink image files with IrFanView

This quick tip might save you some time (and would have saved me some time last month if I had found it then).  When I have a lot of photos that I want to keep, but that aren’t priceless (e.g. family and friends), I don’t want them to take up huge amounts of space.  Unfortunately, cameras keep producing larger and larger files as the resolution goes up.  There are some options, however.

  1. Delete the images you don’t want
  2. Shrink the images you have without changing the resolution or visually reducing the quality

The second one it’s possible because the human eye can’t see all of the detail that a jpeg file contains (assuming that is how you have stored your images).  Online services have always taken advantage of this by shrinking files that you upload.  It’s pretty handy to for  yourself too.  If you save photos like I do,  you’ll find that your storage needs are increasing at an alarming rate as the size of photos (and in my case number of photos as well) increases.

Resizing quickly Continue reading

Android TextView, ScrollView and gestures

This probably shouldn’t have taken me as long as it did, but I was pretty frustrated while trying to figure out why I couldn’t make my swipe gestures get recognized across the entire app.  Most of the activity screen responded, but not the TextView.  I added a gesture listener explicitly to the TextView and went through dozens of iterations.

Turns out, ScrollView objects absorb gestures – not just the scroll up and down as it needs to, but also the swipe (onFling message) from side-to-side.  I had wrapped my TextView in a ScrollView to allow it to scroll if there was too much text, but that meant limitations on my UI.

To resolve this, I removed the ScrollView wrapper on the TextView, and now the fling gestures are handled by the activity’s GestureHandler.  Ok, that was easy – now everything behaves as it should and the UI is consistent, which is good for the user experience.  No additional handler needs to be added for the view.   The result is that I need to ensure that my font is appropriately sized to not overflow the text box, but that can be handled.

Android app development and making Admob ads display

My brain is so full of Android app development that I don’t even know where to start.  Here are a few small tidbits though:

Give Admob ads enough space
Admob ads won’t display if you don’t give them enough room.  Specifically, 320dp x 48dp (dp = dip = density independent pixels).  It won’t actually tell you that the ad won’t display – the debugger log will show that an ad was retrieved, but nothing shows up on the screen.  Mobclix ads will show up in that space, but Admob ones won’t.

The problem was that I was squeezing the ad into half of the landscape screen.  An ad comfortably fits across the top in portrait mode, but seems to be wasting space in landscape mode.  I used the attribute android:layout_weight=”1″ for each of two columns and figured I had a clever solution to maximize space.  Once I found the reference to the 320dp width requirement I recalculated — on my Motorola Droid the screen is 848 x 480.  A little more obscure, at that resolution the ration of pixels to dp is 1.5:1.  So, while I was giving 424px to the ad, it was only counted as 282dp.  Hence, no display.

Maybe Admob mentioned this somewhere and I missed it.  Either way, I updated my layout to ensure that Admob ads get enough space, and display works.


Rotate the screen
Another thing I had to search on. To rotate emulator, turn numlock of then press 7 or 9 to rotate to landscape and back.  Now I can easily test how my app handles a rotation configuration change!

Android development – The last 20%

You’ve probably heard a saying something like “80% of the work is in the last 20%”.  For me, that’s been true for Android development.  I’ve been working on an app for several months, and I discovered that the technology demo I did (the core functionality) was only a small fraction of the total work.

For months I’ve been working on developing icons (and keeping multiple resolution versions of them straight), multiple screen layouts (portrait, landscape), and other graphic and workflow tasks in addition to just the coding.

There are also deployment steps (sign your app, get it into the market which has additional graphic and description requirements) to take into account.  I can see why a lot of apps seem to have less polish – the developers probably wanted to focus on coding, not the myriad of other things that need to be done.

For example, Google’s Android market requires these things (among others) which are pretty hard to find out about until you register.  I think that’s because the requirements changed recently.

  • Screenshots (at least 2)
  • High Resolution Application Icon(512×512)
  • Promo Graphic (optional)(180×120)
  • Title (30 max chars)
  • Description (4000 max chars)
  • Promo Text (80 max chars)
  • Application Type/subtype
  • Content Rating

In the end, good software development methodologies are still important despite the seemingly small nature of mobile phone apps.  In fact, the user expectations and the hardware limitations might make the user interface polish even more important than on traditional desktop applications.

All that said, I’m pleased that I’m getting much closer to being done.  The important thing is to not get fixated on the initial impression “This will be easy!  I just need to slap some code together and upload it to the market!”.  I’m still pretty sure that the barrier to entry is much lower in the Android app market than the Apple app store, but if you want to do things right, there is still some due diligence to do.