[Windows Phone] Publicidad con Nokia NAX

NAX LogoIntroducción

Al desarrollar una aplicación móvil elegir su modelo de negocio es un punto vital. Los motivos por el cual como desarrollador decidimos publicar aplicaciones son muy variados:

  • Por amor al arte, aprender, etc.
  • Deseamos cubrir un hueco existente.
  • Por dinero.

Hay muchos motivos. Un motivo habitual suele ser el obtener una ganacia económica por nuestro trabajo. Nuestras aplicaciones puede ser gratuitas y de pago. Además, nuestras aplicaciones de pago pueden contar con modo Trial (sumamente recomendado).

Si deseamos obtener un beneficio económico parece obvio que debemos optar por apliaciones de pago. Sin embargo, tenemos otras opciones interesantes para obtener beneficio económico como el uso de publicidad. En la entrada actual vamos a analizar Nokia Ad Exchange (NAX) y como realizar su implementación.

¿Te apuntas?

Registro

El primer paso a realizar será el realizar el registro en: https://nax.nokia.com

Nokia NAX. Registro.

Nokia NAX. Registro.

Obtener el SDK

Tras registrarnos podremos proceder a entrar en el portal. Vamos a descargar el SDKs. Para ello seleccionamos la opción SDK del menú principal:

Obtener SDK

Obtener SDK

Nos descargamos la última versión del SDK para Windows Phone 8 (según escribo estas líneas la última versión es la 1.1.3).

Implementar NAX

Comenzaremos como siempre, crearemos un ejemplo práctico:

Windows Phone Application

La plantilla seleccionada será “Windows Phone Application” para simplificar al máximo el ejemplo.

Procedemos a añadir la librería del SDK descargado. Accedemos a la carpeta donde hemos descomprimido el SDK:

InneractiveAdSDK

InneractiveAdSDK

  • Inneractive.Ad.dll
  • InneractiveAdLocation.cs. La utilizaremos para mejorar la publicidad proporcionada en nuestras aplicaciones apoyandonos en la localización.

Hacemos clic derecho sobre Referencias y elegimos la opción “Añadir Referencia” donde procedemos a buscar la librería Inneractive.Ad.dll.

NOTA: Si nos aparece el siguiente mensaje:

A reference to a higher version or incompatible assembly cannot be added to the project

A reference to a higher version or incompatible assembly cannot be added to the project

Necesitamos desbloquear la librería. Haga clic derecho sobre la librería y haga clic sobre Propiedades. Al final de las opciones del popup que aparece dentro del apartado Seguridad haga clic sobre el botón “Desbloquear”.

Añadimos también la clase InneractiveAdLocation al proyecto.

Antes de continuar, para que Nokia Ad Exchange funcione correctamente debemos modificar el archivo Properties/WMAppManifest.xaml activando las siguientes capacidades:

  • ID_CAP_LOCATION
  • ID_CAP_NETWORKING
  • ID_CAP_WEBBROWSERCOMPONENT
  • ID_CAP_PHONEDIALER
  • ID_CAP_IDENTITY_DEVICE
Properties/WMAppManifest.xaml

Properties/WMAppManifest.xaml

Una vez añadida la librería y modificado el archivo de manifiesto, estamos preparados para comenzar a integrar la publicidad en nuestra aplicación. Nos dirigimos a la vista principal (MainPage.xaml) para definir la interfaz de nuestra aplicación.

Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
     <Grid.RowDefinitions>
          <RowDefinition Height="*"/>
          <RowDefinition Height="50"/>
     </Grid.RowDefinitions>
</Grid>

En la segunda fila es donde colocaremos la publicidad (300 x 50). Definimos tres botones:

<Button x:Name="textAd" Content="Texto"/>
<Button x:Name="bannerAd" Content="Banner"/>
<Button x:Name="interstitalAd" Content="Interstitial"/>

Hemos añadido tres botones:

  • El primer botón añadirá publicidad en formato texto.
  • El segundo añadirá un banner publicitario (imagen).
  • El tercero establece la publicidad a pantalla completa.

Añadimos los eventos clic de cada botón:

<Button x:Name="textAd" Content="Texto" Click="textAd_Click"/>
<Button x:Name="bannerAd" Content="Banner" Click="bannerAd_Click"/>
<Button x:Name="interstitalAd" Content="Interstitial" Click="interstitalAd_Click"/>
private void textAd_Click(object sender, System.Windows.RoutedEventArgs e)
{

}

private void bannerAd_Click(object sender, System.Windows.RoutedEventArgs e)
{

}

private void interstitalAd_Click(object sender, System.Windows.RoutedEventArgs e)
{

}

El resultado conseguido hasta ahora debe ser algo como:

Ejemplo NAX

Ejemplo NAX

Hasta ahora simple, ¿verdad?. Continuamos.

Necesitamos añadir dos namespaces para trabajar con NAX:

using Inneractive.Nokia.Ad;
using InneractiveAdLocation;

En el constructor de la clase:

IaLocationClass iaLocation = new IaLocationClass();
iaLocation.Done += new System.EventHandler<IaLocationEventArgs>(iaLocation_Done);
iaLocation.StartWatchLocation();

Dictionary<InneractiveAd.IaOptionalParams, string> optionalParams = new Dictionary<InneractiveAd.IaOptionalParams, string>();
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_OptionalAdWidth, "320"); //Width
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_OptionalAdHeight, "50"); //Height
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_Age, "25");
optionalParams.Add(InneractiveAd.IaOptionalParams.Key_Gender, "m");

Creamos un diccionario de parametros donde definimos las propiedades del anuncio (tamaño del banner, público y género objetivos, etc) junto a la inicialización de la clase añadida anteriormente que llamará a un método llamado StartWatchLocation que realizará una geolocalización de la posición para poder determinar donde se encuentra el usuario en ese momento e intentar ofrecer la publicidad más cercana y relacionada posible con el entorno del mismo.

La lógica para iaLocation_Done:

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());
     }
}

Una obtenida las coordenadas de la posición se añaden como parámetros  al diccionario a utilizar en nuestra publicidad.

Añadimos la lógica para cada botón de nuestra interfaz. Nos concentramos primero en el primero de ellos:

private void textAd_Click(object sender, System.Windows.RoutedEventArgs e)
{
     this.nax.Children.Clear();
     InneractiveAd.DisplayAd("appId", InneractiveAd.IaAdType.IaAdType_Text, this.nax, 60, optionalParams);
}

La primera línea sencillamente elimina cualquier contenido hijo del grid donde colocaremos la publicidad.La segunda línea es la interesante. Llamamos al método DisplayAd pasandole los siguientes parámetros:

  • AppId: Valor que generamos en nax.nokia.com dentro del apartado Add App:
Add App

Add App

  • IaAdType: Tipo de publicidad a mostrar. Como veremos en los distintos botones, tenemos varias opciones interesantes aquí.
  • Contenedor: Lugar donde incrustaremos la publicidad. Los tamaños soportados son:
    • 300 x 50
    • 320 x 53
    • 300 x 250
    • 320 x 480 (Full Screen)

    NOTA: El tamaño utilizado en esta demo es de 300 x 50.

  • Tasa de refresco: Medido en segundos.
  • Parámetros: Lista de parámetros anteriormente rellenos (tamaño, geolocalización, etc.).

El resultado pulsando este botón sería algo como:

Texto

Texto

Continuamos con el segundo botón donde mostraremos un banner con imagen:

private void bannerAd_Click(object sender, System.Windows.RoutedEventArgs e)
{
     this.nax.Children.Clear();
     InneractiveAd iaBanner = new InneractiveAd("appId", InneractiveAd.IaAdType.IaAdType_Banner, 60, optionalParams);
     this.nax.Children.Add(iaBanner);
}
Banner

Banner

Fácil, ¿verdad?. Es igual al caso anterior cambiando el tipo de publicidad. Lo interesante a analizar es la versatilidad otorgada por la librería. Hemos instanciado el banner para poder hacer algo como lo siguiente:

private void bannerAd_Click(object sender, System.Windows.RoutedEventArgs e)
{
     this.nax.Children.Clear();
     InneractiveAd iaBanner = new InneractiveAd("appId", InneractiveAd.IaAdType.IaAdType_Banner, 60, optionalParams);
     this.nax.Children.Add(iaBanner);

     iaBanner.AdClicked += new InneractiveAd.IaAdClicked(InneractiveAd_AdClicked);
     iaBanner.AdReceived += new InneractiveAd.IaAdReceived(InneractiveAd_AdReceived);
     iaBanner.AdFailed += new InneractiveAd.IaAdFailed(InneractiveAd_AdFailed);
}

Añadimos los eventos:

void InneractiveAd_AdClicked(object sender)
{
     System.Diagnostics.Debug.WriteLine("AdClicked");
     MessageBox.Show("NAX Ad Clicked!");
}

void InneractiveAd_AdReceived(object sender)
{
     System.Diagnostics.Debug.WriteLine("AdReceived");
}

void InneractiveAd_AdFailed(object sender)
{
     System.Diagnostics.Debug.WriteLine("AdFailed");
}

Mediante simples eventos podemos controlar el ciclo de vida de la publicidad, cuando se recibe, cuando no, cuando el usuario hace clic sobre ella, etc.

Evento clic

Evento clic

Por último, nuestro tercer botón (otro tipo de publicidad):

private void interstitalAd_Click(object sender, System.Windows.RoutedEventArgs e)
{
     InneractiveAd.DisplayAd("appId", InneractiveAd.IaAdType.IaAdType_Interstitial, LayoutRoot, 60);
}
Interstital

Interstital

Interesante, ¿no?. Si asi te ha parecido puedes descargar el ejemplo realizado a continuación:

Como hemos podido analizar NAX se planta como un sistema interesante, disponible para múltiples plataformas, múltiples sistemas de publicidad y muy fácil de integrar. Espero que lo visto en la entrada os sea de interés. Recordar que si os surgen dudas o sugerencias podéis dejarlas en los comentarios de la entrada.

Keep Pushing!

Más información

2 pensamientos en “[Windows Phone] Publicidad con Nokia NAX

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s