Optimizar la publicidad en Windows Phone

En esta entrada voy hablar de como aumentar los ingresos que podemos obtener gracias a la publicidad in-app en Windows Phone.

En general, los proveedores más conocidos/importantes para Windows Phone son los siguientes:

 

clip_image001

clip_image002

clip_image003

clip_image004

clip_image005

clip_image006

He probado muchos proveedores de publicidad y al final he llegado a las siguientes conclusiones:

PubCenter es la mejor opción, pero fuera de EEUU todavía tiene pocos anuncios. Aunque últimamente la cosa va mejorando mucho y ya se empiezan a ver bastantes anuncios en España.

AddDuplex es una magnifica alternativa para promocionar tu aplicación. Muestra publicidad de otras aplicaciones/juegos de Windows Phone a la vez que promociona las tuyas en otras aplicaciones (cross-promotion). Es muy interesante para darte a conocer. Desde Mayo de 2012 ya no paga por anuncios, sólo ofrece el modelo de cross-promotion.

Smaato: No está mal. Buena alternativa a PubCenter, aunque me sigo quedando con PubCenter

Admob: Lo siento chicos… da muy poco dinero. Así que mejor buscar usar algún otro provider. O por lo menos en Windows Phone da muy poco. En otras plataformas (iOS, Android) no sé como estará.

MobFox e Inner-interactive no los he probado, así que mejor no opinar de algo que no conozco :)

 

Por lo tanto, una muy buena idea es mostrar varios anuncios, dependiendo de si el proveedor seleccionado tiene anuncios visibles, o dependiendo del país donde se encuentre el usuario. Para hacernos la vida más fácil existen Rotadores de Publicidad para Windows Phone bastante interesantes que nos realizarán el trabajo por nosotros.

Hay dos alternativas interesantes en cuanto a rotadores de publicidad: Windows Phone 7 Ad Rotator y Unified Ad Control for Windows Phone. En esta entrada hablaré sobre Unified Ad Control for Windows Phone y en otro articulo hablaré sobre Windows Phone 7 Ad Rotator.


Unified Ad Control for Windows Phone

Unified Ad Control for Windows Phone es un proyecto open source alojado en Codeplex  (http://wpunifiedad.codeplex.com/).

A diferencia de Ad Rotator, sólo lo he probado en Silverlight (no aseguro que funcione en XNA), pero en el resto es igual: soporta los mismos proveedores de publicidad y su uso es bastante parecido.

Vamos a ver cómo podemos usarlo en nuestras aplicaciones Silverlight.

 

Descargando Unified Ad Control

Descargar desde Codeplex

Si queremos usar este control en nuestro proyecto, podemos ir a la web de UnifiedAd en Codeplex, descargar las librerías y añadirlas manualmente a nuestro proyecto.

clip_image007

Instalar desde Nuget

Desde Nuget podemos añadir las librerías necesarias para usar Unified Ad de forma “automática”. Tan sólo tenemos que ir a Nuget, buscar “wpunifiedad” y darle a instalar.

clip_image008

clip_image010

Como vemos, se han añadido las referencias a nuestro proyecto automáticamente y sin dolores de cabeza J

clip_image011

Añadiendo publicidad a nuestra aplicación

Añadir la publicidad es tan fácil como añadir un nuevo control dese nuestro código XAML. Donde queramos mostrar nuestro banner de publicidad, vamos a añadir el siguiente control:

Code Snippet
  1. <Ads:AdControl x:Name="AdBasic"
  2.                 FallbackAdProviderName="Pubcenter"
  3.                 IsTest="True"
  4.                 xmlns:Ads="clr-namespace:MC.Phone.Ads;assembly=MC.Phone.Ads"
  5.                 xmlns:PubCenter="clr-namespace:MC.Phone.Ads.PubCenter;assembly=MC.Phone.Ads.PubCenter"
  6.                 xmlns:Smaato="clr-namespace:MC.Phone.Ads.Smaato;assembly=MC.Phone.Ads.Smaato"
  7.                 xmlns:MobFox="clr-namespace:MC.Phone.Ads.MobFox;assembly=MC.Phone.Ads.MobFox"
  8.                 xmlns:AdMob="clr-namespace:MC.Phone.Ads.AdMob;assembly=MC.Phone.Ads.AdMob"
  9.                 xmlns:Provider="clr-namespace:MC.Phone.Ads.Provider;assembly=MC.Phone.Ads"
  10.                 xmlns:AdDuplex="clr-namespace:MC.Phone.Ads.AdDuplex;assembly=MC.Phone.Ads.AdDuplex">
  11.     <Ads:AdControl.AdProviders>
  12.         <Provider:NoneAdProvider />
  13.         <AdDuplex:AdDuplexAdProvider App="" />
  14.         <AdMob:AdMobAdProvider AdUnit="" />
  15.         <MobFox:MobFoxAdProvider Publisher="test" />
  16.         <Smaato:SmaatoAdProvider AdSpace="0"
  17.                                     Publisher="0" />
  18.         <PubCenter:PubCenterAdProvider Application=""
  19.                                         AdUnit="" />
  20.     </Ads:AdControl.AdProviders>
  21. </Ads:AdControl>

 

Vamos a explicar un poco lo que hemos hecho:

Code Snippet
  1. x:Name="AdBasic"

Nombre del control. No tengo que explicarlo, ¿no?

 

 

Code Snippet
  1. FallbackAdProviderName="PubCenter"

Es el proveedor de publicidad que se mostrará por defecto. En este caso, he elegido “PubCenter” por defecto. En caso de que no muestre anuncios, pasará a otro proveedor de publicidad que tenga configurado, como AddDuplex o Smaato.

 

 

Code Snippet
  1. IsTest="False"

Indica si estamos n modo producción o no. Si está en “true”, no se mostrarán anuncios. Recordad ponerlo a “False” antes de publicar en Marketplace :)

 

 

Code Snippet
  1. <Ads:AdControl.AdProviders>
  2.     <Provider:NoneAdProvider />
  3.     <PubCenter:PubCenterAdProvider Application="AppID"
  4.                                        AdUnit="AdUnitID" />
  5.     <AdDuplex:AdDuplexAdProvider App="AppID" />
  6.     <AdMob:AdMobAdProvider AdUnit="AdUnitID" />
  7.     <MobFox:MobFoxAdProvider Publisher="PublisherName" />
  8.     <Smaato:SmaatoAdProvider AdSpace="ASpaceID"
  9.                                 Publisher="PublisherID" />
  10. </Ads:AdControl.AdProviders>

Aquí configuramos todos los proveedores de publicidad con nuestros datos. A continuación os muestro como configurarlos:

 

PubCenter

PubCenter necesita dos valores: “Application” y “AdUnit”. Desde el dashboard de PubCenter podéis ver estos datos como se muestran a continuación.

clip_image013


 

AddDuplex

Simple. Sólo pide un valor, el App ID.

clip_image015


 

Smaato

Smaato, al igual que PubCenter, requiere dos valores: El Publisher y el AdSpaceID, los cuales podréis encontrar según indico en esta imagen.

clip_image017

 


 

AdMob

Para AdMob tan sólo tenéis que introducir el PublisherID.

clip_image019

 


 

MobFox

Al igual que AdMob, necesitamos el PublisherID

clip_image020


 

InnerActive

Aunque InnerActive puede ser configurado en UnifiedAd, no se recomienda su uso en combinación con otros providers de publicidad ya que InnerActive carece de eventos como “NoAd”, “NewAd” o “AdEngaged”. Por este motivo, no puede rotar con otros anunciantes. De todas formas, si quieres usar este proveedor puedes hacerlo configurando lo siguiente:

clip_image022

 

 

Estrategias de rotación

UnifiedAdControl soporta dos estrategias a la hora de mostrar anuncios, aunque también puedes implementar tu propia estrategia. La estrategia por defecto es rotar entre los distintos proveedores de anuncios. Cuando detecta que el proveedor actual no muestra anuncios, pasa al siguiente.

Otra estrategia más avanzada es la llamada “RemoteAdproviderStrategy” la cual, partiendo de un XML de configuración elige que proveedor mostrar dependiendo del país. De esta forma puedes configurar que en cada país se muestre el provider que más ingresos te proporcione en cada país.

Para activar esta segunda estrategia, tan sólo debes indicarlo en el XAML:

Code Snippet
  1. <Ads:AdControl x:Name="AdWithLocalXmlAndRemoteXml"
  2.                 FallbackAdProviderName="PubCenter"
  3.                 IsTest="True">
  4.     <Ads:AdControl.AdProviders>
  5.         <!– Aqui iria la configuracion de los proovedores de publicidad –>
  6.     </Ads:AdControl.AdProviders>
  7.     <Ads:AdControl.AdProviderStrategy>
  8.         <Strategy:RemoteAdProviderStrategy LocalProviderSettingsUri="Ads/AdSettings.xml" <!– ruta a tu XML de configuracion –>
  9.             RemoteProviderSettingsUri="http://someurlinthewild.com/ads.xml" />
  10.     </Ads:AdControl.AdProviderStrategy>
  11. </Ads:AdControl>

 

El formato del XML de configuración tiene la siguiente estructura:

Code Snippet
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <AdSettings>
  3.     <CountryDescriptors>
  4.         <AdCountryDescriptor Country="US">
  5.             <Probability Value="70" AdProvider="None" />
  6.             <Probability Value="10" AdProvider="AdMob" />
  7.             <Probability Value="10" AdProvider="MobFox" />
  8.             <Probability Value="10" AdProvider="AdDuplex" />
  9.         </AdCountryDescriptor>
  10.         <AdCountryDescriptor Country="GB">
  11.             <Probability Value="50" AdProvider="None" />
  12.             <Probability Value="50" AdProvider="MobFox" /> >
  13.         </AdCountryDescriptor>
  14.         <AdCountryDescriptor>
  15.             <Probability Value="20" AdProvider="PubCenter" />
  16.             <Probability Value="20" AdProvider="AdMob" />
  17.             <Probability Value="20" AdProvider="AdDuplex" />
  18.             <Probability Value="20" AdProvider="Smaato" />
  19.             <Probability Value="20" AdProvider="MobFox" />
  20.         </AdCountryDescriptor>
  21.     </CountryDescriptors>
  22. </AdSettings>

 

Al final nuestro control, con la estrategia de publicidad RemoteAdproviderStrategy, quedaría así:

Code Snippet
  1. <Ads:AdControl x:Name="AdBasic"
  2.     FallbackAdProviderName="PubCenter"
  3.     IsTest="False"
  4.     xmlns:Ads="clr-namespace:MC.Phone.Ads;assembly=MC.Phone.Ads"
  5.     xmlns:PubCenter="clr-namespace:MC.Phone.Ads.PubCenter;assembly=MC.Phone.Ads.PubCenter"
  6.     xmlns:Smaato="clr-namespace:MC.Phone.Ads.Smaato;assembly=MC.Phone.Ads.Smaato"
  7.     xmlns:MobFox="clr-namespace:MC.Phone.Ads.MobFox;assembly=MC.Phone.Ads.MobFox"
  8.     xmlns:AdMob="clr-namespace:MC.Phone.Ads.AdMob;assembly=MC.Phone.Ads.AdMob"
  9.     xmlns:Provider="clr-namespace:MC.Phone.Ads.Provider;assembly=MC.Phone.Ads"
  10.     xmlns:AdDuplex="clr-namespace:MC.Phone.Ads.AdDuplex;assembly=MC.Phone.Ads.AdDuplex">
  11.         <Ads:AdControl.AdProviders>
  12.             <Provider:NoneAdProvider />
  13.             <PubCenter:PubCenterAdProvider Application="25cc049b-c1bc-409e-a5f6-55217cf44883"
  14.                                             AdUnit="10028701" />
  15.             <AdDuplex:AdDuplexAdProvider App="4295" />
  16.             <AdMob:AdMobAdProvider AdUnit="AddUnit" />
  17.             <MobFox:MobFoxAdProvider Publisher="TuPublisher" />
  18.             <Smaato:SmaatoAdProvider AdSpace="65756570"
  19.                                         Publisher="923857552" />
  20.         </Ads:AdControl.AdProviders>
  21.         <Ads:AdControl.AdProviderStrategy>
  22.             <Strategy:RemoteAdProviderStrategy LocalProviderSettingsUri="Ads/AdSettings.xml"
  23.                     RemoteProviderSettingsUri="http://someurlinthewild.com/ads.xml" />
  24.         </Ads:AdControl.AdProviderStrategy>
  25. </Ads:AdControl>

 

 

Más información

Puedes encontrar más documentación sobre como usar “Unified Ad control for Windows Phone” en la sección de documentación de codeplex y en el blog de Mark Monster.

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.