Category: Development

Adding Ads to Android Apps

We recently released a version of QuickTodo that is supported by ads. This post is a summary of what we’ve learned from releasing an ad-supported version.

Firstly, a summary of the ad revenue and download stats. The app has been downloaded approximately 800 times, of these around 343 are still active installs (42%). The app was released just over a month ago, and has been updated several times during the last month.

The impressions figures show an increase in impressions each time the app was updated, which quickly dropped back down to the previous levels, indicating that people tend to play about with the app a lot during the first few days, but that usage settles down after that.

Ad revenue over the period is a little over $4.00, which is not high for the number of installs, in my opinion. This equates to around ten cents per day the app has been released. Clickthrough rates have been around the 0.3% mark, which doesn’t compare favourably with the figures that other developers have posted.

Ads are shown on the folder view, and the todo list view, but not on the todo editing view. This suggests to me that the users have been ignoring the ads that appear on those two views, in order to concentrate on actually using the app. That would not be unexpected, given the nature of the app.

Revenue figures seem to fluctuate quite wildly, with some days showing no ad revenue, and others showing a marked increase over the average, indicating that it is quite likely that the app is used periodically, but perhaps not on a daily basis.

On the whole, the summary is that ads on the Android platform are only of benefit when you have a large number of impressions that will smooth out the revenue, and provide sufficient income to make it actually worthwhile. The figures equate to one more sale of the paid version of the app per month. This would no doubt be different if the app had managed to get a larger number of downloads, which could be achieved by more aggressive marketing for the app.

How to create a simple BootReceiver in Android using BroadcastReceiver

The code below is an example of how to create a BroadcastReceiver class in Android that is notified when the system is booted. In addition to the code below, you’ll need to add the receiver to your AndroidManifest.xml file, as well as add the relevant permissions to the same file.

package <packageName>;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class BootHelper extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    if(Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
      // do your thing here
    }
  }
}

You’ll need to make the following changes to your manifest file in order to allow the broadcasted intent to reach you.

<receiver android:name=".BootHelper">
  <intent-filter>
  <action android:name="android.intent.action.BOOT_COMPLETED"></action>
  </intent-filter>
</receiver>

The above code needs to be put inside the <application> tag.

Finally, you will need to add the permission to receive the BOOT_COMPLETED intent when it is fired. The code below needs to be put inside the <manifest> tag, but outside of the <application> tag.

&lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /&gt;

Now when you launch the application on an emulator, or a real phone, it should execute the code in the onReceive method. As this runs on boot you should probably keep the amount of processing to a minimum, in order to not slow the system down.

Note that you should only use this if it is necessary for your Application to do some processing when the OS is booted. For example, this is used in QuickTodo to ensure that overdue items continue to be notified, even when the device is rebooted.