This post has been updated on 21-Oct-2010 with new information contained in the last paragraph.
Most developers realize you can bring in revenue through advertising, and the Microsoft Ad Control lets you do that easily in your Windows Phone 7 application. For most simple apps, you might offer a trial version that is fully functional but supplemented with ads, and a paid version that is ad free. Or you might just make your app free, supported only via ads.
This is what I wanted to do with SqueakBox. I’m beginning to rethink this approach, though, and I’ll explain why. Before I explain why I’m rethinking this decision, let me explain why I thought this would be ideal.
First, I’m a big believer in having trial versions of applications. This is proven with Xbox Live. To make it super simple, there is a trial API available. So this might sound harsh, but I don’t think there is much excuse for not providing a trial when it is so easy to do. I will say this: providing a trial does open you up a bit more in the ratings, since anyone will be able to rate your application.
To make the trial better, I figure it should be fully functional and supported by an ad so there is no time bomb, etc. Regular users would rather pony up the 99 cents to get rid of the ad, while someone else would be content with seeing the ads – either way, the developer and the user wins.
Above is a picture of the app running with the test ad (bing). If the user has the full version (IsTrial==false) we want to remove the ad – in order to do this, you must completely remove the ad control from the visual tree… you can’t just set it to disabled, set its visibility to collapsed, etc. I realized this after using Fiddler (as I mentioned in my last post) – essentially, the ad control continued to request ads even when disabled/collapsed:
Obviously, this isn’t what you want to do in the full version! Fortunate that is an easy fix by removing the control. The next one, unfortunately, is why I might go back to the more traditional trial model. In the marketplace, applications list the capabilities of the phone they use. When I saw the app published, I noticed this:
Whoa! Owner Identity and Phone Calls? No I don’t. Seeing an app that uses the sensors, media library, push notification, etc. – that sounds cool. But owner identity and phone calls? That sounds disconcerting to me.
It turns out this is from the ad control. What does owner identity mean? I don’t know. This might be benign, like, “the ad is able to set a cookie that can identify the phone” – perhaps if you click through an ad that takes you to the marketplace, it has to know it’s *you*, so that’s what it means? Maybe the phone calls is for ads that allow you to make a phone call – like Bing 411. As the developer, I don’t know, and the user certainly wouldn’t know. (I got one factual but unhelpful internal reply which basically said, “developers can use another ad provider if they don’t like it.”) (Read 10/21 update below.)
Users have no way of realizing this isn’t required in the paid version, so I’m left with a choice of leaving it in figuring users won’t really care, or taking it out to remove the requirement. What would you do?
Other than the phone capabilities piece, the ad control is super nice and easy to integrate. [Edit] One thing I do want to point out: showing the features that an application uses is really a great idea. I don’t know how this works on other platforms, but seeing up front that an app needs access to data, sensors, etc., is great.
I just received an update from the Microsoft Advertising adCenter team. The Ad Control doesn’t use Owner Identity, and instead uses anonymized profile targeting parameters – such as age/gender). Also, it doesn’t use the “phone calls” feature but does use the dialer in “click 2 call” functionality (as I suspected). They are working with the marketplace team to get this updated so the capabilities list isn’t as alarming – when/if it will be changed? I’m not sure. So while the end user experience is still what it is, this is good info and was I happy to get the correct information.