Integrar anuncios publicitarios

Descripción general

Vungle Banner se encuentra actualmente en fase BETA. Comuníquese directamente con el administrador de cuentas para acceder a fin de garantizar un lanzamiento exitoso.

A partir del SDK de Vungle v6.5.1, Vungle admite anuncios publicitarios. Tanto los anuncios MREC como los anuncios publicitarios requieren versión 16 o superior de la API.

Al igual que los anuncios MREC, los anuncios publicitarios de video son anuncios rectangulares que ocupan una ubicación en cualquier lugar dentro del diseño de la aplicación y generalmente se muestran en la parte superior o inferior de la pantalla, para que el usuario pueda continuar interactuando con la aplicación mientras se reproduce el anuncio. El tamaño del contenedor para renderizar anuncios publicitarios puede ser de 320 x 50, 300 x 50 o 728 x 90 (para tabletas).

Tamaño de anuncio publicitario Dimensiones

AdConfig.AdSize.BANNER

320 x 50

AdConfig.AdSize.BANNER_SHORT

300 x 50

AdConfig.AdSize.BANNER_LEADERBOARD

728 x 90 (para tabletas)

Paso 1. Complete la integración básica

Para integrar anuncios publicitarios en la aplicación de Android o Amazon, siga las instrucciones del artículo de integración básica. Este artículo contiene información adicional y asume que ha completado la integración básica.

Paso 2. Implemente monitores de eventos

Puede usar devoluciones de llamada genéricas implementando LoadAdCallback para eventos de carga de anuncios y PlayAdCallback para eventos de reproducción de anuncios, o puede usar devoluciones de llamada en línea cuando ejecuta loadAd y playAd.

Implementar LoadAdCallback

6.5.0 y superior Versiones heredadas
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() { 
  @Override
  public void onAdLoad(String id) { 
    // Ad has been successfully loaded for the placement
  } 

  @Override 
  public void onError(String id, VungleException exception) { 
    // Ad has failed to load for the placement
  }
};
Métodos de anulación Descripción
onAdLoad(String id) Se ejecuta cuando el anuncio se ha cargado correctamente y se reproduce para la ubicación.
onError(String id) Se ejecuta cuando se produce un error al intentar reproducir un anuncio. Podrá consultar el mensaje de error desde getLocalizedMessage de VungleException y utilizar getExceptionCode para la depuración.

Implementar PlayAdCallback

6.6.0 y superior Versiones heredadas
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
  @Override
  public void onAdStart(String id) { 
    // Ad experience started
  }

  @Override
  public void onAdEnd(String id) {
    // Ad experience ended
  }

  @Override
  public void onAdClick(String id) {
    // User clicked on ad
} @Override public void onAdRewarded(String id) { // User earned reward for watching an ad } @Override public void onAdLeftApplication(String id) { // User has left app during an ad experience } @Override public void onError(String id, VungleException exception) { // Ad failed to play } };
Métodos de anulación Descripción
onAdStart(String id) Se ejecuta cuando el anuncio se ejecuta y se muestra correctamente en el dispositivo.
onAdEnd(String id) Se ejecuta cuando se completa toda la experiencia del anuncio, justo antes de que el control se haya devuelto a la aplicación de alojamiento.
onAdClick(String id) Se ejecuta cuando el usuario hizo clic en un anuncio de video o un botón de descarga.
onAdRewarded(String id) Se ejecuta cuando el usuario ha completado el 80 % del video con recompensa y debe ser recompensado. La recompensa al usuario debe realizarse aquí y solo se activará para las ubicaciones con recompensa.
onAdLeftApplication(String id) Se ejecuta cuando el usuario abandona la aplicación antes de que se complete la experiencia del anuncio, como cuando se abre la página de la tienda del anuncio.
onAdError(String id, VungleException exception) Se ejecuta cuando se produce un error al intentar reproducir un anuncio. Podrá consultar el mensaje de error desde getLocalizedMessage de VungleException y utilizar getExceptionCode para la depuración.

Paso 3. Cargue, muestre y cierre un anuncio publicitario

Cargar un anuncio publicitario

La carga de un anuncio publicitario es diferente de la carga de otros formatos de anuncios. Existe una API específica Banners que utiliza para cargar y reproducir anuncios y verificar su disponibilidad. Debe especificar el tamaño del anuncio publicitario que desea cargar, y el SDK lo actualizará automáticamente con el intervalo de tiempo que configuró en el panel de control. Como también debe configurar la ubicación para que admita un anuncio publicitario, comuníquese con el administrador de cuentas de Vungle para habilitar los anuncios publicitarios para una ubicación.

  • Cargue un anuncio publicitario a través del método loadBanner:
    Banners.loadBanner("BANNER_ID", AdConfig.AdSize.BANNER, vungleLoadAdCallback);
  • Verifique la disponibilidad de anuncios publicitarios llamando al método canPlayAd:
    Banners.canPlayAd(ad.placementReferenceId, AdConfig.AdSize.BANNER);

Mostrar un anuncio publicitario

Debido a que el tamaño de la vista es fijo, debe especificar que el contenedor utilizado para mostrar anuncios publicitarios sea uno de los tamaños admitidos: 320 x 50, 300 x 50 o 728 x 90 (para tabletas). Puede colocar la vista en cualquier lugar de la pantalla. Este contenedor es un LayOut. El tamaño debe ser igual o mayor que el tamaño de anuncio publicitario que utiliza. Puede colocar este LayOut en cualquier lugar de la pantalla. Luego debe pasar el tamaño de anuncio publicitario que utiliza a través de la API Banners.

Pase este objeto llamando a Banners.loadBanner para especificar el tamaño que muestra y utilice Banners.getBanner para obtener el objeto de anuncio Banners. Finalmente, llame al método addView para asociar el contenedor con el anuncio publicitario.

private RelativeLayout bannerContainer = findViewById(...);
// Check for banner ad availability and display
if (Banners.canPlayAd("BANNER_ID", AdConfig.AdSize.BANNER)) {
  VungleBanner vungleBanner = Banners.getBanner("BANNER_ID", AdConfig.AdSize.BANNER, vunglePlayAdCallback);
  bannerContainer.addView(vungleBanner);
}

Cerrar un anuncio publicitario

Debido a que la vista del anuncio publicitario se agregó a la vista del contenedor, también debe eliminarse, en caso de que la vista del anuncio desaparezca de la pantalla, la actividad o el fragmento se destruya, o el contenedor de la vista principal se recicle o destruya. Si intenta reproducir otro anuncio publicitario sin cerrar el anuncio anterior, puede experimentar un comportamiento inesperado en la aplicación.

vungleBanner.destroyAd();

Paso 4. Utilice la API VungleBanner para un control avanzado (opcional)

En la mayoría de los casos, la integración descrita anteriormente es suficiente y se administra VungleBanner. Sin embargo, si la vista de VungleBanner es parte de una lista o una RecyclerView, el VungleBanner administrado no funcionará correctamente. El anuncio habrá terminado y ya no estará disponible cuando el usuario desplace el anuncio afuera de la pantalla y retroceda. En estos casos, proporcionamos una API avanzada para un control más cercano del VungleBanner.

API de clase de VungleBanner

Estas API brindan a los desarrolladores un control preciso sobre cómo tratar el VungleBanner en los distintos eventos del ciclo de vida en la aplicación del desarrollador. En la mayoría de los casos de uso, los desarrolladores no necesitan ejecutar estos métodos. Basta con agregar un VungleBanner a una vista principal.

Sin embargo, en casos excepcionales, una vista se reciclará (como una RecyclerView, ListView, etc.) o tendremos que manejar la visibilidad manualmente (en algunos dispositivos Android más antiguos, WebView no se pausa automáticamente cuando abandona la pantalla).

Nombre Función Notas
disableLifeCycleManagement(boolean disabled) Ejecute para deshabilitar la gestión automática del anuncio Debe establecerse en “true” para que renderAd y setAdVisibility funcionen
renderAd* Muestra el anuncio si no es visible También puede cargar anuncios nuevos
setAdVisibility* Notifica al contenedor de vista cuando el anuncio publicitario aparece en la pantalla Pause y reanude el anuncio publicitario
destroyAd Llama para la destrucción cuando deja de ser necesario, el contenedor de vista ya no se puede usar Libera recursos de los anuncios publicitarios
finishAd* Detiene el anuncio actual, envía el informe y permite que se cargue otro anuncio después (solo se aplica para algunas integraciones con RecyclerView o ListView) Libera recursos de los anuncios publicitarios

*Debe ejecutar vungleBannerAd.disableLifeCycleManagement(true) antes de usar esta API.

Vistas administradas y no administradas VungleBanner

Una VungleBanner es por defecto una vista VungleBanner administrada. Esto significa que, cuando agrega esta vista a un contenedor principal, Vungle controla cuándo mostrar un anuncio, cuándo destruirlo y cuándo enviar el informe. Se controlan también los eventos de visibilidad, y los desarrolladores no tienen que notificar al SDK si un objeto de vista de anuncio está en pantalla o no. En los casos en que un desarrollador no tenga una vista VungleBanner dentro de un patrón ViewHolder o una vista reciclable, esta es la forma preferida para usar VungleBanner.

En los casos en que una vista VungleBanner esté dentro de una ListView o RecyclerView, la VungleBanner administrada no funcionará correctamente. El anuncio habrá terminado y ya no estará disponible cuando el usuario desplace el anuncio afuera de la pantalla y retroceda.

BannerFlowChart.png

Para estos casos, agregamos la API disableLifeCycleManagement(boolean disable) para permitir que los desarrolladores manejen el ciclo de vida de VungleBanner de forma manual.

Antes de agregar la VungleBanner a una vista o vincular la vista, cuando establece:

vungleBannerAd.disableLifeCycleManagement(boolean disabled)

Debe llamar:

  • VungleBanner.renderAd() cuando la vista está limitada
  • VungleBanner.setAdVisibility(true|false) cuando el anuncio se recicla o desaparece
  • VungleBanner.destroyAd() cuando el objeto VungleBanner ya no es necesario

Paso 5. Personalice los anuncios publicitarios (opcional)

Tiene la opción de personalizar los anuncios individuales que reproduce proporcionando un nuevo objeto adConfig a playAd. Cuando el objeto AdConfig es nulo, el anuncio se reproduce con la configuración predeterminada; cuando no es nulo, las configuraciones anulan las del configurador AdConfig. El siguiente es un ejemplo de cómo utilizar AdConfig:

Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

El ejemplo anterior utiliza el objeto adConfig, que contiene opciones de configuración personalizadas. Configure el objeto AdConfig como se muestra:

AdConfig adConfig = new AdConfig();
adConfig.setAdOrientation(AdConfig.AUTO_ROTATE);
adConfig.setMuted(true);
Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

La siguiente tabla enumera las opciones de AdConfig disponibles para anuncios publicitarios:

Opción Descripción

setMuted

“false” si el video debe comenzar con la configuración de audio que coincida con la aplicación adjunta; “true” si debe comenzar silenciado de todos modos

setOrdinal

toma un valor entero del recuento ordinal para realizar un seguimiento del número de anuncios que se han reproducido en la misma sesión

Nota: Puede utilizar el mismo objeto AdConfig para varios anuncios.

Mejores prácticas

  1. Antes de intentar mostrar un anuncio publicitario, siempre intente verificar si la actividad principal ha finalizado antes de vincular la VungleBanner a una vista.
    if (activity != null && activity.isFinishing()) {
      return;
    }
  2. No cambie LayoutParams de VungleBanner. Esto podría afectar la forma en que se muestra el anuncio publicitario y posiblemente provocar que su anuncio no sea visible.
  3. No coloque el anuncio en un tamaño de contenedor más pequeño que el anuncio solicitado. Si solicita un anuncio publicitario normal (320 x 50), asegúrese de que su contenedor principal tenga al menos 320 dp x 50 dp.

Código de muestra para integración avanzada

VungleBannerAdAdapter.java

Questions?

Need further assistance, feel free to reach out to us, we’re here to help!

¿Fue útil este artículo?