I wanted to test the mobile advertising model by means of my OTempo application, so I looked for an advertising system that was available in Spain, and showed up frequently in other market applications. My choice was admob, and was implemented in the first version that I sent to the market.
Implementing admob in an application, is a very simple task, just the opposite than fitting it in your layout. It has very rigid constraints about the space that it needs, so I strongly suggest to design your layout with the advertising in mind on the first place (not like I did). I had optimized the background image for a widget layout, to ensure minimal distortion, but in the end, it had to be stretched because of my lack of prevision.
I had a serious headache on implementing it, though. At first, it didn’t asked the server for ads, and when looking at the examples, I could see no difference neither in the Java code nor in the layout integration.
After removing all of my layout widgets one by one, I discovered that I had a padding in the root control. This padding prevented the admob widget from showing a full announcement, so it did not even bother to request it. Too bad it didn’t noticed it in the logcat 😦
A very interesting feature of the admob system is the test mode. The biggest fear of a developer integrating an advertising system is to be banned on charges of cheating. The development process involves a lot of layout tests and even some click test, to ensure that it is not easy to click the announcements by mistake while trying to use the application (it would be a serious usability fault). The test mode allows you to specify a list of devices that will be used for testing purposes (like any emulator, and your own mobile phone), and on these devices, the server provides fake announcements and fake pages for the click target.
All in all, despite the typical problems involved in software integration, it was quite easy to get it working, and it is now giving good results. OTempo is getting very little revenue as it is targeted to few potential users, but it helped me to learn the complete process, and I am now able to apply it to future projects.