Carga un solo anuncio para inicio de aplicación

Los anuncios para inicio de aplicación son un formato de anuncio diseñado para los publicadores que desean monetizar las pantallas de carga de sus apps. Los usuarios pueden cerrar los anuncios para inicio de aplicación en cualquier momento. Cuando los usuarios pongan tu app en primer plano, muestra anuncios para inicio de aplicación.

Para obtener más información, consulta la guía de anuncios para inicio de aplicación.

En esta guía, se explica cómo integrar anuncios para inicio de aplicación en una app para Android.

Antes de comenzar

Antes de continuar, haz lo siguiente:

  • Configura el GMA Next-Gen SDK.
  • Usa el ID de unidad de anuncios para inicio de aplicación de prueba ca-app-pub-3940256099942544/9257395921.
    • Cuando compiles y pruebes tu app, asegúrate de usar anuncios de prueba en vez de anuncios activos en fase de producción. Si no usas el ID de unidad de anuncios de prueba, Google puede suspender tu cuenta.
    • Antes de publicar tu app, reemplaza este ID por tu ID de unidad de anuncios.
    • Para obtener detalles sobre los anuncios de prueba del GMA Next-Gen SDK, consulta Habilita los anuncios de prueba.

Carga un anuncio

En el siguiente ejemplo, se carga un solo anuncio:

Kotlin

// Load ads after you initialize MobileAds.
AppOpenAd.load(
  AdRequest.Builder(adUnitId).build(),
  object : AdLoadCallback<AppOpenAd> {
    override fun onAdLoaded(ad: AppOpenAd) {
      // App open ad loaded.
      appOpenAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // App open ad failed to load.
      Log.e(TAG, "App open ad failed to load: ${adError.message}")
      appOpenAd = null
    }
  },
)

Java

// Load ads after you initialize MobileAds.
AppOpenAd.load(
    new AdRequest.Builder(adUnitId).build(),
    new AdLoadCallback<AppOpenAd>() {
      @Override
      public void onAdLoaded(AppOpenAd ad) {
        // App open ad loaded.
        appOpenAd = ad;
      }

      @Override
      public void onAdFailedToLoad(LoadAdError adError) {
        // App open ad failed to load.
        Log.e(TAG, "App open ad failed to load: " + adError.getMessage());
        appOpenAd = null;
      }
    });

Cuando realices pruebas, usa el ID de unidad de anuncios de prueba: ca-app-pub-3940256099942544/9257395921.

Muestra el anuncio

Para mostrar un anuncio para inicio de aplicación, llama al método show. Los anuncios para inicio de aplicación vencen cuatro horas después de cargarse. No muestres un anuncio para inicio de aplicación que se esté cargando durante más de cuatro horas.

En el siguiente ejemplo, se muestra el anuncio:

Kotlin

private fun showAd(appOpenAd: AppOpenAd, activity: Activity) {
  // Show the ad.
  appOpenAd.show(activity)
}

Java

private void showAd(AppOpenAd appOpenAd, Activity activity) {
  // Show the ad.
  appOpenAd.show(activity);
}

Controla los inicios en frío y las pantallas de carga

Un inicio en frío se produce cuando la app se inicia desde el disco, y un inicio semicaliente se produce cuando vuelves a abrir la app desde la memoria. Durante un inicio en frío, no tienes un anuncio cargado previamente disponible para mostrar. Durante un inicio en caliente, es posible que aún tengas un anuncio cargado disponible para mostrar.

Durante un inicio en frío, es posible que los usuarios interactúen con tu app antes de que se cargue y muestre un anuncio. Para evitar una mala experiencia del usuario, muestra anuncios para inicio de aplicación en los inicios en frío estrictamente desde una pantalla de carga mientras se cargan los recursos de la app. Mientras los usuarios esperan a que se cargue tu app, muéstrales anuncios para inicio de aplicación. No muestres un anuncio para inicio de aplicación la primera vez que se inicie la app. Si la carga de recursos se completa y los usuarios llegan al contenido principal antes de que se cargue el anuncio, no lo muestres.

Carga los recursos de aplicación en un subproceso en segundo plano para que la carga continúe mientras se muestra el anuncio. Si la pantalla de carga termina de cargarse mientras se muestra el anuncio, descártala en el método de devolución de llamada de anuncio descartado.

Escucha los eventos de anuncios

Antes de mostrar el anuncio, escucha los eventos de ciclo de vida del anuncio. En el siguiente ejemplo, se registran devoluciones de llamada para eventos de anuncios:

Kotlin

private fun listenToAdEvents() {
  // Listen for ad events.
  val ad = appOpenAd
  if (ad == null) {
    Log.e(TAG, "App open ad is not ready yet.")
    return
  }

  ad.adEventCallback =
    object : AppOpenAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // App open ad did show.
      }

      override fun onAdDismissedFullScreenContent() {
        // App open ad did dismiss.
        appOpenAd = null
      }

      override fun onAdFailedToShowFullScreenContent(
        fullScreenContentError: FullScreenContentError
      ) {
        // App open ad failed to show.
        Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}")
      }

      override fun onAdImpression() {
        // App open ad did record an impression.
      }

      override fun onAdClicked() {
        // App open ad did record a click.
      }
    }
}

Java

private void listenToAdEvents() {
  // Listen for ad events.
  if (appOpenAd == null) {
    Log.e(TAG, "App open ad is not ready yet.");
    return;
  }

  appOpenAd.setAdEventCallback(
      new AppOpenAdEventCallback() {
        @Override
        public void onAdShowedFullScreenContent() {
          // App open ad did show.
        }

        @Override
        public void onAdDismissedFullScreenContent() {
          // App open ad did dismiss.
          appOpenAd = null;
        }

        @Override
        public void onAdFailedToShowFullScreenContent(
            @NonNull FullScreenContentError fullScreenContentError) {
          // App open ad failed to show.
          Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage());
        }

        @Override
        public void onAdImpression() {
          // App open ad did record an impression.
        }

        @Override
        public void onAdClicked() {
          // App open ad did record a click.
        }
      });
}