Los anuncios de carga de aplicación (App Open) son un formato especial cuyo propósito es permitir la monetización de las pantalla de carga de las aplicaciones.
Estos anuncios se pueden cerrar en cualquier momento y están pensados para ser mostrados cuando la aplicación realiza una transición a primer plano.
Integración
Este formato de anuncio solo se puede integrar a través de código, implementado cualquiera de las dos integraciones posibles que se describen a continuación.
Manual
En este tipo de integración, es necesario crear una instancia de la clase AppOpenAd y utilizar los métodos loadAd() y showAd() para realizar la carga y mostrado del anuncio bajo demanda. El publisher es el responsable de decidir cuándo se debe mostrar el anuncio e implementar la lógica necesaria.
A continuación, se muestra un ejemplo sencillo de integración:
publicclassMainActivityextendsActivity {privateAppOpenAd mAppOpenAd; @OverridepublicvoidonCreate(Bundle savedInstanceState) {... mAppOpenAd =newAppOpenAd(this,"Ad Unit ID de Wortise");mAppOpenAd.loadAd(); } @OverridepublicvoidonDestroy() {...mAppOpenAd.destroy(this); }publicvoidshowAppOpen() {if (mAppOpenAd.isAvailable()) {mAppOpenAd.showAd(this); } }}
classMainActivity : Activity() {privatevar appOpenAd: AppOpenAd? =nulloverridefunonCreate(savedInstanceState: Bundle?) {... appOpenAd =AppOpenAd(this, "Ad Unit ID de Wortise").also { it.loadAd() } }overridefunonDestroy() {... appOpenAd?.destroy() }funshowAppOpen() {if (appOpenAd?.isAvailable ==true) { appOpenAd?.showAd(this) } }}
Además, la clase AppOpenAd ofrece los siguientes métodos adicionales para configurar su comportamiento:
// Establece si se debe cargar un nuevo anuncio tras cerrar el anteriormAppOpenAd.setAutoReload(true);// Muestra un anuncio inmediatamente si está disponible. En caso contrario,// solicita la carga de un nuevo anunciomAppOpenAd.tryToShowAd(activity);
// Establece si se debe cargar un nuevo anuncio tras cerrar el anteriorappOpenAd.autoReload =true// Muestra un anuncio inmediatamente si está disponible. En caso contrario,// solicita la carga de un nuevo anuncioappOpenAd.tryToShowAd(activity)
Vía Manager
El SDK ofrece una implementación estándar de App Open para facilitar la integración de este formato de anuncios.
Para realizar este tipo de integración, es necesario que la aplicación extienda la clase Application y, dentro de ella, crear una instancia de AppOpenManager, tal y como se muestra en el siguiente ejemplo:
publicclassMyApplicationextendsApplication {privateAppOpenManager mAppOpenManager; @OverridepublicvoidonCreate() {... mAppOpenManager =newAppOpenManager(this,"Ad Unit ID de Wortise");mAppOpenManager.loadAd(); }}
classMyApplication : Application() {privateval appOpenManager bylazy {AppOpenManager(this, "Ad Unit ID de Wortise") }overridefunonCreate() {... appOpenManager.loadAd() }}
Con esta simple integración, la aplicación mostrará anuncios cada vez que se realice una transición de segundo a primer plano.
Igualmente, la clase AppOpenManager ofrece los mismos métodos que AppOpenAd para configurar su comportamiento y mostrar los anuncios bajo demanda.
Configuración del listener
Como en el resto de formatos, se puede añadir un listener para recibir los diferentes eventos
que sucedan durante el ciclo de vida del anuncio. Para ello, es necesario implementar la interfaz AppOpenAd.Listener como se muestra en el siguiente ejemplo:
mAppOpenAd.setListener(new AppOpenAd.Listener() { @OverridepublicvoidonAppOpenClicked(@NonNullAppOpenAd ad) {// Invocado cuando el anuncio ha sido clickeado } @OverridepublicvoidonAppOpenDismissed(@NonNullAppOpenAd ad) {// Invocado cuando el anuncio ha sido cerrado } @OverridepublicvoidonAppOpenFailedToLoad(@NonNullAppOpenAd ad, @NonNullAdError error) {// Invocado cuando el anuncio no se ha podido cargar// (por error o falta de inventario) } @OverridepublicvoidonAppOpenFailedToShow(@NonNullAppOpenAd ad, @NonNullAdError error) {// Invocado cuando el anuncio no se ha podido mostrar } @OverridepublicvoidonAppOpenImpression(@NonNullAppOpenAd ad) {// Invocado cuando el anuncio ha generado una impresión } @OverridepublicvoidonAppOpenLoaded(@NonNullAppOpenAd ad) {// Invocado cuando el anuncio ha sido cargado } @OverridepublicvoidonAppOpenShown(@NonNullAppOpenAd ad) {// Invocado cuando el anuncio ha sido mostrado }});
appOpenAd.listener =object : AppOpenAd.Listener() {overridefunonAppOpenClicked(ad: AppOpenAd) {// Invocado cuando el anuncio ha sido clickeado }overridefunonAppOpenDismissed(ad: AppOpenAd) {// Invocado cuando el anuncio ha sido cerrado }overridefunonAppOpenFailedToLoad(ad: AppOpenAd, error: AdError) {// Invocado cuando el anuncio no se ha podido cargar// (por error o falta de inventario) }overridefunonAppOpenFailedToShow(ad: AppOpenAd, error: AdError) {// Invocado cuando el anuncio no se ha podido mostrar }overridefunonAppOpenImpression(ad: AppOpenAd) {// Invocado cuando el anuncio ha generado una impresión }overridefunonAppOpenLoaded(ad: AppOpenAd) {// Invocado cuando el anuncio ha sido cargado }overridefunonAppOpenShown(ad: AppOpenAd) {// Invocado cuando el anuncio ha sido mostrado }}