I have been working on another Metro-based Windows 8 app for the last week or two, having taken a break from the attendance tracking app to let some ideas about it bounce around in the back of my mind. The new app is nearly finished and I wanted to take a look at including ads in it. The idea is that I can provide an ad-supported version of the app and then, if there is demand for it, provide a paid version that permanently removes the ads.
I signed up for an account at Microsoft's pubCenter and downloaded the ad SDK for Windows 8. I followed the instructions to set up an ad unit for my app, then added the ad control and set the application and ad unit id's appropriately. It's really quite simple to set up. Problem is, when I ran the app, I didn't get an ad. I discovered that the control provides an ErrorOccurred event (rather than throwing an exception), so I listened for that event and found that it was reporting the lack of the internet client capability. I knew that this capability had been set for the app (it's turned on by default in all new Metro app projects), so the error made no sense.
It wasn't until I ran the project through the Windows App Cert Kit that I made any progress. My app failed the certification test because it was built for debugging, which is a no-no for apps in the store. I rebuilt for release and... ADS! I now know that the control works and it actually makes sense that it wouldn't show any ads in a debug build. I only wish the error message had provided better information.
I have a bit more work to do on this new app before I'm willing to call it "done." The app functions well, but I would like to make some UI tweaks to provide more eye appeal. Not that it's bad looking now, I just feel that it could stand a bit of polish. Since I can't sign up with the Windows Store right now to submit an app (that process is currently down in preparation for the upcoming Windows 8 Release Preview … uh... release and the update to Visual Studio 11), I've got plenty of time to figure out what I need to clean up.