Saturday, September 1, 2012

Stupid AdMob tricks

I use AdMob exclusively for my applications.  There's no particular reason other than it is a lot easier to set things up than having to futz with three or four different ad company SDKs, and having a single location to track my voluminous income (heh) is just super-convenient.

Today, I set things up so that all my apps will serve house ads for the duration of the (US) holiday weekend.

What's an AdMob House Ad?  An AdMob house ad allows you to serve up *free* ads in your applications.  You can do things like specify how many impressions you want to serve, which applications will display which ads, etc. The ads are restricted to applications you define, but otherwise free you from having to pay AdMob for them to appear.

At a high level, I've got two ad configurations defined for every app.  One version serves the Google Play link and the other version serves the Amazon App Store link.  The ad that gets served is based on the device that ad is appearing on.

Specifically, here's how I set things up:

1) I created a house ad campaign called "all house ads".  At this level in AdMob, you are able to define the start and end times.  I've got things setup to run from today until midnight Monday (end of the Labor Day holiday).  That's a total of three days of house ad rotation.

2) I created several ad groups under the "all house ads" campaign.  At this level in AdMob, you are able to define which apps the ad group will appear in and your impression goal. 

I defined separate ad groups for: DB42 Lite, DB42 Full Version, Doodle Bug, Drawccupations, MatchCard, Pyromancer's Laboratory, and Sky Ninja.

Now, I could have defined a single group and placed all of these ads in that group.  I did not go this route because I wanted fine tuned control over which apps my ads appear in. For example, I don't want the Sky Ninja ad to appear in the Sky Ninja app... The user is already playing Sky Ninja -- therefore I don't need to drive him or her to download that exact same app.


For each ad group in this section, I selected the impression goal of "Fully Allocate".  This means, I want to completely turn my ad mediation over to my house ads.  In other words -- don't serve up any paid ads!  I'm trying to drum up support in my apps for my other apps, so that's why I'm bailing on the paid ads for this duration.

I wasn't sure if the "Fully Allocate" configuration would limit the ad group to a single group or not.  Through experimentation, I see that the ads are rotating through all the ad groups I have defined for the campaign.  This is EXACTLY what I want.

It is also at this level that you can define target demographics and devices.  I initially set things up to serve all demographics and devices EXCEPT the Amazon Kindle Fire.  Ads served to the Kindle Fire are served somewhat differently because I want to reference the Amazon App Store link for those.  Keep reading...

3) For each ad in the group, I've got the URL defined for the app and the image to display with that URL.  I initially created URLs that pointed to the Google Play Market URL.  For example, the DB42 Lite URL points to:

market://details?id=com.gushikustudios.db42lite

4) After I set all of that up for the Google Play links, I copied every single Ad group, and added "Amazon" to the name (e.g. "Sky Ninja Amazon").  Then, I went into each Amazon ad group and edited the URL to point to the Amazon App Store's URL.  For example, the DB42Lite URL changed from what I list above to:

amzn://apps/android?asin=B006KU55UO

The 'asin' value is listed on the Amazon App Store's page for the app.

When you click on this app from the Kindle Fire, you open up the App Store view of your app instead of a the Amazon Retail Web Site.  This makes it easier for the user to install your app on a Kindle Fire for obvious reasons.

I'll post the results of doing all this in a few days.  Hope this helps someone else out there!