Using the Microsoft Advertising SDK for Windows 8 Store with VB

Introduction

It is relatively easy for you make money via advertising in your apps. All you need is a valid Windows Store developer license and the Microsoft Advertising SDK. You're not here to read about all my ramblings, so without any further adieu, let us start.

Microsoft Advertising SDK

The Microsoft Advertising SDK is, as its name suggests, a means for us to advertise products in our programs. We can get the advertising SDK here. Download it and install it. It is a very small file (I think just over 1 MB). This will give us a few advertising controls in our toolbox, as displayed in Figure 1.

Advertising tools
Figure 1 - Advertising tools

AdControl

The AdControl is the most common advertising tool found in most Windows 8 Store applications. It is very easy to use and set up. Before I get too far ahead, let us start a quick project and configure it to show ads.

Our Program

Our program is quite small, and its sole purpose is to get you started with working with ads.

Create a new VB Windows Store Project. If you are not sure how to create a new Windows 8 Store app, have a look at this article I wrote a while back. You could name it anything you like. With this example I have aptly named mine Ads.

Now, we need to reference the Microsoft Advertising SDK. We do this by following the next few steps:

  • Click Project, Add Reference
  • Inside the Reference Manager window, expand the Windows group
  • Inside the Windows group, click Extensions
  • Select Microsoft Advertising SDK for Windows 8 (XAML)
  • Click OK

You may also need to add the Internet capability to your app, as the ads will get downloaded, fetched from the internet. If this capability does not exist yet, follow these steps to add it:

  • Inside Solution Explorer window, double-click the Package.appxmanifest
  • Select the Capabilities tab
  • Select the Internet Client check box

Now, we can add the AdControl to our form. You can place it anywhere, as this is just an example; but in normal circumstances you'd have a clear idea of where to place the ad. Figure 2 shows the added control to our form.

The AdControl is added
Figure 2 - The AdControl is added

The following step is to configure this ad control so that it concurs with your customers' needs. We now have to set properties such as Height and Width. A complete XAML code representation of your AdControl might end up looking like this:

 <UI:AdControl
HorizontalAlignment="Left",
Height="357",
VerticalAlignment="Top"
Width="368",
Height="357",
AdUnitId="139500",
ApplicationId="6907a92c-4800-452a-a425-36b2ef397c22",
IsAutoRefreshEnabled="false",
Latitude=40.47,
Longitude=73.58,
AdRefreshed="OnAdRefresh",
ErrorOccurred="OnAdError",
IsEngagedChanged="OnAdEngagedChanged" />

A couple of interesting properties here! HorizontalAlignment and VerticalAlignment makes sense, as do the Height and Width properties. The rest however seem strange. Let us look at each one of them.

AdUnitId

Each ad will have its own unique identifier. This is not simply a random number which I thought up; I obtained this number form Microsoft's PubCenter (which I will explain later in detail). Each AdUnit will have to have its own unique ID. In the above case, this ID was assigned to me.

ApplicationId

Just as each AdUnit must have its own identifier, so should each application making use of ads. Again, this Id was assigned to my program via PubCenter.

IsAutoRefreshEnabled

Enables or disables automatic rotation of ads.

Latitude

Gets or sets the latitude. Not really necessary when you have set the Horizontal- and VerticalAlignment options

Longitude

Gets or sets the longitude. Not really necessary when you have set the Horizontal- and VerticalAlignment options

AdRefreshed

Raised when the AdControl receives a new ad.

ErrorOccurred

Raised when the AdControl encounters an operational error.

IsEngagedChanged

Raised when the user clicks the ad and the action dialog box appears.

Now, let us take a good dive into Microsoft PubCenter.

Microsoft PubCenter

Earlier, I spoke about Microsoft PubCenter assigning an ID to your applications as well as each end every ad. We find the PubCenter here.

Once you are there, you are already halfway!

Register your program by giving it a name. Once that is done you will recive an email confirmation as well as your screen will resemble Figure 3.

Application confirmation
Figure 3 - Application confirmation

Now you need to create the ad unit(s) by clicking on Create application ad unit, as displayed in Figure 4.

Create an ad unit
Figure 4 - Create an ad unit

Fill in the information, such as location as well as the name, as in the next figure.

Ad Unit details
Figure 5 - Ad Unit details

The final step is to confirm. Again, you will get an email, and your screen should resemble Figure 6.

Ad Unit Confirmation
Figure 6 - Ad Unit Confirmation

The IDs which PubCenter gave our app and our ad or ads must now be used inside the AdControl. Now they are linked.

Events

All that is needed from your side is to include the following events in your app:

 Private Sub OnAdRefresh(sender As Object, e As RoutedEventArgs)
''' The code below will print information about the AdRefreshed event to the Debug Output window of Visual Studio
Debug.WriteLine(Date.Now.ToString() + " : " + sender.ToString() + " Ad Refreshed.")
End Sub

Private Sub OnAdError(sender As Object, e As Microsoft.Advertising.WinRT.UI.AdErrorEventArgs)
''' The code below will print information about the ErrorOccurred event to the Debug Output window of Visual Studio
Debug.WriteLine(Date.Now.ToString() + " : " + sender.ToString() + " error: " + e.Error.ToString() + " -- " + e.ErrorCode.ToString() + ".")
End Sub

Private Sub OnAdEngagedChanged(sender As Object, e As RoutedEventArgs)
''' The code below will print information about the EngagedChanged event to the Debug Output window of Visual Studio
Debug.WriteLine(Date.Now.ToString() + " : " + sender.ToString() + " EngagedChanged.")
End Sub

Testing

You can test your ad units by supplying the Test Mode values for your AdControl. This ensures that nothing goes wrong and your ad works as expected

Conclusion

This concludes this introduction. The rest is now up to you to get sponsors for your apps, and I wish you good luck with that! Until next time, cheers!

About the Author:

Hannes du Preez is a Microsoft MVP for Visual Basic for the sixth year in a row. He is a trainer at a South African-based company providing IT training in the Vaal Triangle. You can reach him at hannes [at] ncc-cla [dot] com



Related Articles

Downloads

Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: September 10, 2014 Modern mobile applications connect systems-of-engagement (mobile apps) with systems-of-record (traditional IT) to deliver new and innovative business value. But the lifecycle for development of mobile apps is also new and different. Emerging trends in mobile development call for faster delivery of incremental features, coupled with feedback from the users of the app "in the wild." This loop of continuous delivery and continuous feedback is how the best mobile …

  • A modern mobile IT strategy is no longer an option, it is an absolute business necessity. Today's most productive employees are not tied to a desk, an office, or a location. They are mobile. And your company's IT strategy has to be ready to support them with easy, reliable, 24/7 access to the business information they need, from anywhere in the world, across a broad range of communication devices. Here's how some of the nation's most progressive corporations are meeting the many needs of their mobile workers …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds