Navigation Menu

Skip to content

jjjuande/EasyGoogleMobileAds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyGoogleMobileAds for Unity#

Prefab que permite colocar banners de Admob en Unity sin escribir una sola línea de código.

View the English version of this document.

Descarga

Descárgalo desde aquí.

Resumen de uso

Importante: Para que este prefab funcione, tienes que instalar previamente el plugin de [Google Mobile Ads] (https://github.com/googleads/googleads-mobile-unity) siguiendo las instrucciones de la página de ese proyecto.

Si prefieres la información en español, puedes utilizar esta pequeña guía rápida que he escrito en donde se explica paso a paso cómo instalar este plugin.

Banners

Para hacer que aparezca un banner en una determinada escena, sólo tienes que colocar el prefab EasyGoogleMobileAds en la jerarquía de objetos de esa escena.

Después sólo tendrás que configurarlo en el inspector de Unity. Para que funcione, tendrás que especificar como mínimo el Id del bloque de anuncios (Ad unit ID)

Banners - Ocultar/Mostrar Banner

El objeto EasyGoogleMobileAds hará que se muestre un banner de publicidad mientras este objeto permanezca activo en la jerarquía. Así que lo normal es que el banner permanezca activo durante toda la escena. Si durante algún momento se quisiera ocultar el banner sin tener que cambiar de escena, sólo habría que desactivar el objeto EasyGoogleMobileAds.

// El código siguiente supone que "banner" está 
// referenciando al objeto EasyGoogleMobileAds
...
// Para desactivarlo
banner.SetActive(false);
// Para activarlo
banner.SetActive(true);

Banners - Interceptar eventos

Puede haber veces en donde queramos ejecutar cierto código una vez que el banner se ha cargado, o si se le ha hecho clic en el mismo. Para ello, créate un nuevo script copiando los métodos que necesites del script /Assets/EasyGoogleMobileAds/ExampleScripts/AdEventBehaviour.cs y añádelo (el script creado) como componente al objeto EasyGoogleMobileAds. Cada vez que ocurra un evento, se ejecutará el método correspondiente.

Estos son los que no reciben ningún parámetro:

  • OnAdLoaded. El anuncio se ha terminado de descargar y se ha mostrado. (Si hemos configurado el banner para que cambie su contenido cada tanto tiempo, este evento saltará cada vez que se descargue y muestre un banner nuevo.)
  • OnAdOpened. El usuario ha hecho clic en el anuncio.
  • OnAdLeftApplication. Se ejecuta justo después del evento OnAdOpened, cuando el usuario ha hecho clic en el anuncio.
  • OnAdClosed. El usuario vuelve al juego después de hacer clic en el anuncio.

OnAdClosing ha dejado de estar disponible.

Este es el único que recibe como parámetro errorMessage, que contendrá el mensaje de error:

  • OnAdFailedToLoad: Cuando ha ocurrido un error descargando el anuncio. Recuerda hacer un casting a string a la variable errorMessage antes de usarla.

Intersticiales

Recomiendo establecer los IDs de dispositivos de prueba nada más iniciarse tu juego. (Por ejemplo, en el Start de la cámara de la escena inicial)

string[] testDeviceIDs = new string[]{"E92E9A6745B85439C2EA180AB0010A87"};
EasyGoogleMobileAds.GetInterstitialManager().SetTestDevices(true, testDeviceIDs);

Justo después de las líneas anteriores (y también nada más iniciarse tu juego), usa la siguiente para preparar el intersticial pasándole tu adUnitID. (Se iniciará la descarga del anuncio a mostrar.)

EasyGoogleMobileAds.GetInterstitialManager().PrepareInterstitial("ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX");

Usa la siguiente línea cada vez que quieras mostrar el insterticial. (Esta línea no hace nada mientras no se haya terminado de descargar el anuncio y esté disponible. Una vez mostrado, se iniciará automáticamente la descarga del siguiente anuncio a mostrar.)

EasyGoogleMobileAds.GetInterstitialManager().ShowInterstitial();

Intersticiales - Parámetros de segmentación

Si quieres (no es obligatorio), también puedes añadir (nada más iniciarse tu juego y antes de llamar al PrepareInterstitial) los parámetros de segmentación para los anuncios de los intersticiales como se describe a continuación. (No será obligatorio indicar ningún parámetro de los que se describen. Así que todo este siguiente bloque de código será opcional)

// Añadimos las keywords que definen el contenido de la publicidad que se mostrara
string[] keywords = new string[]{"ropa", "compras", "moda"};
EasyGoogleMobileAds.GetInterstitialManager ().SetKeywords (keywords);
// Indicamos que la publicidad sea dirigida a hombres (por ejemplo)
EasyGoogleMobileAds.GetInterstitialManager ().SetGender (GoogleMobileAds.Api.Gender.Male);
// Indicamos que no se haga un trato especial para niños con la publicidad mostrada.
EasyGoogleMobileAds.GetInterstitialManager ().TagForChildDirectedTreatment (false);

Intersticiales - Interceptar eventos

Aunque en los intersticiales tenemos los mismos eventos que en los banners, algunos no se refieren a lo mismo:

  • OnAdLoaded. El anuncio se ha terminado de descargar y está preparado para mostrarse. (No se mostrará hasta que no se ejecute el método ShowInterstitial.)
  • OnAdOpened. Se ha mostrado el intersticial.
  • OnAdLeftApplication. El usuario hace clic en el intersticial.
  • OnAdClosed. El usuario vuelve al juego después de ver el intersticial.
  • OnAdFailedToLoad: Cuando ha ocurrido un error descargando el anuncio.

OnAdClosing ha dejado de estar disponible.

Todo el código siguiente deberá ejecutarse después de haber llamado al PrepareInterstitial. Si se hace antes, obtendremos un NullPointerException.

Para definir un bloque de código que se ejecute cuando se dé el evento OnAdLoaded:

EasyGoogleMobileAds.GetInterstitialManager().GetInterstitial().OnAdLoaded = 
delegate(){
    // Aquí iría el código que querremos ejecutar cuando se de ese evento.
    // ...
};

El código anterior sirve para los eventos OnAdLoaded, OnAdOpened, OnAdClosing, OnAdClosed, OnAdClosed y OnAdLeftApplication. Sólo tendremos que reemplazar OnAdLoaded con el nombre del evento que queremos. Repetiremos ese bloque para cada evento que vayamos a utilizar.

Para definir un bloque de código que se ejecute en caso de error descargando el anuncio:

EasyGoogleMobileAds.GetInterstitialManager().GetInterstitial().OnAdFailedToLoad = 
delegate(string mensaje){
    // Aquí iría el código que querremos ejecutar cuando se de ese evento.
    // Observa que en la variable "mensaje" tienes el mensaje de error.
    // ...
};

Aviso Importante

Aunque se pueda detectar cuando el usuario hace clic en un anuncio, NO DEBEREMOS usar esto para incentivar los clics con monedas virtuales extra (o similar) por clic. Esta acción está prohibída por los términos de uso de AdMob.

Licencia de uso

EasyGoogleMobileAds no tiene ninguna relación con Google. Es un asset creado por un particular que funciona con el plugin oficial de Google Mobile Ads. Todas las marcas que aparecen son propiedad de sus respectivos dueños.

EasyGoogleMobileAds es software libre; puedes redistribuirlo y/o modificarlo bajo los términos de licencia MIT. Se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA. Para más información, léete el archivo LICENSE.

En el caso de que encuentres algún bug, puedes comentarlo aquí.

Información más completa

Para conocer todo sobre este prefab y el plugin oficial de Google, accede a esta lista de reproducción de mi canal de Youtube.

Ir a mi canal de Youtube