== Introduction ==
One of the new ways of advertising in Windows Phone application is to use Nokia Ad Exchange (NAX), powered by [http://www.inner-active.com/ Inneractive]. If you live in country where you can’t use Microsoft Ad Exchange, you can easily use NAX to earn some money from your Windows Phone app.
NAX is a mobile in-app advertising exchange offering access to the top ad networks in the world. With one API and one partner, you'll get access to over 120 ad agencies and networks, and you only need PayPal account to get your money.
The key NAX features are:
* Optimization across 120+ ad networks
* Payment enabled in over 200 countries
* Manage your own ad campaigns to promote your app
* Powerful ad performance dashboard
* NAX is free for developers
This article shows how to implement location based NAX ad (Banner) in your Windows Phone 8 application. The instructions complement the [https://inneractive.jira.com/wiki/display/DevWiki/Windows+Phone+SDK+guidelines Windows Phone SDK guidelines] on Inneractive wiki.
== Step 1 – Register and download SDK ==
First what you need to do is to register on https://nax.nokia.com.
After that you need to download SDK from SDKs page for Windows Phone 8. Current version is 1.1.3 (14 February 2013).
I propose you to look at '''Ad Placement Strategy.html''' document in folder Documentation with suggestions where to put your advert.
The selected location influences how much will you earn from each ad.
== Step 2 – Put ad files into Windows Phone project ==
From the '''InneractiveAdSDK''' folder of the extracted SDK, copy files to the root of your Visual Studio project (root for simplicity only, you can put these files in a separate folder):
* Inneractive.Ad.dll
* InneractiveAdLocation.cs (use this file only if you want to use location based ad in your WP app)
and then in Visual Studio for your Project do '''Add/Existing Item''' and choose both of the files.
== Step 3 – Register NAX add dll file==
You need to register '''Inneractive.Ad.dll''' file. Use '''References/Add Reference''', click '''Browse''' button and find dll file from your Windows Phone solution.
After successful adding of dll file you need to get this reference:
Note: If you can't add dll file as reference with error "A reference to a higher version or incompatible assembly cannot be added to the project" you need to Unblock dll file.
You can Unblock file with '''Right-click''' the '''Inneractive.Ad.dll''' file and choose '''Properties'''. At the bottom of the window, under Security, click the '''Unblock''' button and click '''Apply'''
== Step 4 – Include capabilities ==
In order to NAX work in your app you need to activate some of the capabilities. From '''Properties/WMAppManifest.xaml''' file activate next check boxes in Capabilities section:
== Step 5 – Display NAX ad in XAML ==
First, you need to add control in XAML where your ad will be positioned. We will use NAX control
<code xml>
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="53"/>
</Grid.RowDefinitions>
<ListBox Grid.Row="0">
</ListBox>
<StackPanel Height="53" Name="nax_control" Grid.Row="1">
</StackPanel>
</Grid>
</code>
List of supported ad sizes:
* 300 x 50
* 320 x 53
* 300 x 250 (Rectangle)
* 320 x 480 (Full Screen)
In this example we will use '''''320x53''''' pixel size on the bottom of the page using {{Icode|Grid}}.
The final result is:
== Step 6 – C# code for NAX with modification background thread ==
After adding control in XAML code we need to write some code using C#. First we need to add two namespace in page where we want to put our ad control, in this case '''MainPage.xaml.cs''' with:
Here is the C# code for the task
using Inneractive.Nokia.Ad;
using InneractiveAdLocation;
using Microsoft.Phone.Net.NetworkInformation; // is to check if Internet connection is available
public partial class MainPage : PhoneApplicationPage
{
Dictionary<InneractiveAd.IaOptionalParams, string> optionalParams;
// Constructor
public MainPage()
{
InitializeComponent();
// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
//this makes the code run in the background and prevent the application from freezing
Task.Run(() =>
{
if (DeviceNetworkInformation.IsNetworkAvailable)
{
// Watch location
IaLocationClass iaLocation = new IaLocationClass();
iaLocation.Done += new System.EventHandler<IaLocationEventArgs>(iaLocation_Done);
iaLocation.StartWatchLocation();
optionalParams = new Dictionary<InneractiveAd.IaOptionalParams, string>();
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_OptionalAdWidth, "320"); //ad width
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_OptionalAdHeight, "53"); //add height
}
Dispatcher.BeginInvoke(() =>
{
//Show Add Banner. Remarks: pay attention to use Application Id from NAX
//nax_control.Childred.Count()==0 => just to add one banner control on a page. Without this, code //would add as many banners as you navigate to page where banner is placed
if (optionalParams != null && nax_control.Children.Count() == 0)
{
InneractiveAd iaBanner = new InneractiveAd("ApplicationId", InneractiveAd.IaAdType.IaAdType_Banner, 30, optionalParams);
nax_control.Children.Add(iaBanner);
}
});
});
}
void iaLocation_Done(object sender, IaLocationEventArgs e)
{
try
{
// Add location, if received
if (e != null && e.location != null)
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_Gps_Coordinates, e.location);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("Error: " + ex.ToString());
}
}
}
=== Step 7 – AppId generation ===
ApplicationId_NAX is generated from ''nax.nokia.com'' from Add App section.
You need to enter information including:
* Mobile platform
* Application name
* Category
* Does your app use location
After this you get generated Application Id for you application. This is crucial info to track your ad banner in your Windows Phone app in Nokia NAX dashboard.
Generated Application Id (AppID) that you need to use in your app (we call it ApplicationId_NAX in our app):
That is it!
I hope that you can earn some money using Nokia NAX ad.
== References ==
* [http://spasol.wordpress.com/2013/04/28/implementing-advert-in-windows-phone-app-using-nokia-nax-with-c/ Implementing advert in Windows Phone app using Nokia NAX with C#] (Spaso Lazarevic Blog - original source)
* [https://inneractive.jira.com/wiki/display/DevWiki/Windows+Phone+SDK+guidelines Windows Phone SDK guidelines] (Inneractive wiki)
*[https://www.developer.nokia.com/Distribute/NAX/ Nokia Ad Exchange]
One of the new ways of advertising in Windows Phone application is to use Nokia Ad Exchange (NAX), powered by [http://www.inner-active.com/ Inneractive]. If you live in country where you can’t use Microsoft Ad Exchange, you can easily use NAX to earn some money from your Windows Phone app.
NAX is a mobile in-app advertising exchange offering access to the top ad networks in the world. With one API and one partner, you'll get access to over 120 ad agencies and networks, and you only need PayPal account to get your money.
The key NAX features are:
* Optimization across 120+ ad networks
* Payment enabled in over 200 countries
* Manage your own ad campaigns to promote your app
* Powerful ad performance dashboard
* NAX is free for developers
This article shows how to implement location based NAX ad (Banner) in your Windows Phone 8 application. The instructions complement the [https://inneractive.jira.com/wiki/display/DevWiki/Windows+Phone+SDK+guidelines Windows Phone SDK guidelines] on Inneractive wiki.
== Step 1 – Register and download SDK ==
First what you need to do is to register on https://nax.nokia.com.
After that you need to download SDK from SDKs page for Windows Phone 8. Current version is 1.1.3 (14 February 2013).
I propose you to look at '''Ad Placement Strategy.html''' document in folder Documentation with suggestions where to put your advert.
The selected location influences how much will you earn from each ad.
== Step 2 – Put ad files into Windows Phone project ==
From the '''InneractiveAdSDK''' folder of the extracted SDK, copy files to the root of your Visual Studio project (root for simplicity only, you can put these files in a separate folder):
* Inneractive.Ad.dll
* InneractiveAdLocation.cs (use this file only if you want to use location based ad in your WP app)
and then in Visual Studio for your Project do '''Add/Existing Item''' and choose both of the files.
== Step 3 – Register NAX add dll file==
You need to register '''Inneractive.Ad.dll''' file. Use '''References/Add Reference''', click '''Browse''' button and find dll file from your Windows Phone solution.
After successful adding of dll file you need to get this reference:
Note: If you can't add dll file as reference with error "A reference to a higher version or incompatible assembly cannot be added to the project" you need to Unblock dll file.
You can Unblock file with '''Right-click''' the '''Inneractive.Ad.dll''' file and choose '''Properties'''. At the bottom of the window, under Security, click the '''Unblock''' button and click '''Apply'''
== Step 4 – Include capabilities ==
In order to NAX work in your app you need to activate some of the capabilities. From '''Properties/WMAppManifest.xaml''' file activate next check boxes in Capabilities section:
- ID_CAP_LOCATION
- ID_CAP_NETWORKING
- ID_CAP_WEBBROWSERCOMPONENT
- ID_CAP_PHONEDIALER
- ID_CAP_IDENTITY_DEVICE
== Step 5 – Display NAX ad in XAML ==
First, you need to add control in XAML where your ad will be positioned. We will use NAX control
<code xml>
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="53"/>
</Grid.RowDefinitions>
<ListBox Grid.Row="0">
</ListBox>
<StackPanel Height="53" Name="nax_control" Grid.Row="1">
</StackPanel>
</Grid>
</code>
List of supported ad sizes:
* 300 x 50
* 320 x 53
* 300 x 250 (Rectangle)
* 320 x 480 (Full Screen)
In this example we will use '''''320x53''''' pixel size on the bottom of the page using {{Icode|Grid}}.
The final result is:
== Step 6 – C# code for NAX with modification background thread ==
After adding control in XAML code we need to write some code using C#. First we need to add two namespace in page where we want to put our ad control, in this case '''MainPage.xaml.cs''' with:
Here is the C# code for the task
using Inneractive.Nokia.Ad;
using InneractiveAdLocation;
using Microsoft.Phone.Net.NetworkInformation; // is to check if Internet connection is available
public partial class MainPage : PhoneApplicationPage
{
Dictionary<InneractiveAd.IaOptionalParams, string> optionalParams;
// Constructor
public MainPage()
{
InitializeComponent();
// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
//this makes the code run in the background and prevent the application from freezing
Task.Run(() =>
{
if (DeviceNetworkInformation.IsNetworkAvailable)
{
// Watch location
IaLocationClass iaLocation = new IaLocationClass();
iaLocation.Done += new System.EventHandler<IaLocationEventArgs>(iaLocation_Done);
iaLocation.StartWatchLocation();
optionalParams = new Dictionary<InneractiveAd.IaOptionalParams, string>();
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_OptionalAdWidth, "320"); //ad width
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_OptionalAdHeight, "53"); //add height
}
Dispatcher.BeginInvoke(() =>
{
//Show Add Banner. Remarks: pay attention to use Application Id from NAX
//nax_control.Childred.Count()==0 => just to add one banner control on a page. Without this, code //would add as many banners as you navigate to page where banner is placed
if (optionalParams != null && nax_control.Children.Count() == 0)
{
InneractiveAd iaBanner = new InneractiveAd("ApplicationId", InneractiveAd.IaAdType.IaAdType_Banner, 30, optionalParams);
nax_control.Children.Add(iaBanner);
}
});
});
}
void iaLocation_Done(object sender, IaLocationEventArgs e)
{
try
{
// Add location, if received
if (e != null && e.location != null)
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_Gps_Coordinates, e.location);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("Error: " + ex.ToString());
}
}
}
=== Step 7 – AppId generation ===
ApplicationId_NAX is generated from ''nax.nokia.com'' from Add App section.
You need to enter information including:
* Mobile platform
* Application name
* Category
* Does your app use location
After this you get generated Application Id for you application. This is crucial info to track your ad banner in your Windows Phone app in Nokia NAX dashboard.
Generated Application Id (AppID) that you need to use in your app (we call it ApplicationId_NAX in our app):
That is it!
I hope that you can earn some money using Nokia NAX ad.
== References ==
* [http://spasol.wordpress.com/2013/04/28/implementing-advert-in-windows-phone-app-using-nokia-nax-with-c/ Implementing advert in Windows Phone app using Nokia NAX with C#] (Spaso Lazarevic Blog - original source)
* [https://inneractive.jira.com/wiki/display/DevWiki/Windows+Phone+SDK+guidelines Windows Phone SDK guidelines] (Inneractive wiki)
*[https://www.developer.nokia.com/Distribute/NAX/ Nokia Ad Exchange]
Comments
Post a Comment