Carregar um único anúncio de abertura do app

Os anúncios de abertura do app são um formato destinado a publishers que querem gerar receita com as telas de carregamento. Os usuários podem fechar anúncios de abertura do app a qualquer momento. Quando eles deixarem seu aplicativo em primeiro plano, veicule anúncios de abertura do app.

Para mais informações, consulte as orientações sobre anúncios de abertura do app.

Neste guia, explicamos como integrar anúncios de abertura do app a um aplicativo Android.

Antes de começar

Antes de continuar, faça o seguinte:

  • Configure o GMA Next-Gen SDK.
  • Use o ID do bloco de anúncios de teste de abertura do app ca-app-pub-3940256099942544/9257395921.
    • Ao criar e testar seu app, use anúncios de teste em vez de anúncios de produção reais. Se você não usar o ID do bloco de anúncios de teste, o Google poderá suspender sua conta.
    • Antes de publicar o app, substitua esse ID pelo do seu bloco de anúncios.
    • Para detalhes sobre os anúncios de teste do GMA Next-Gen SDK, consulte Ativar anúncios de teste.

Carregar um anúncio

O exemplo a seguir carrega um único anúncio:

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;
      }
    });

Ao testar, use o ID do bloco de anúncios de teste: ca-app-pub-3940256099942544/9257395921.

Veicular o anúncio

Para veicular um anúncio de abertura do app, chame o método show. Os anúncios de abertura do app expiram quatro horas após o carregamento. Não veicule um anúncio de abertura do app que esteja carregando há mais de quatro horas.

O exemplo a seguir mostra o anúncio:

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);
}

Lidar com inicializações a frio e telas de carregamento

Uma inicialização a frio ocorre quando o app é iniciado pelo disco, e uma inicialização com estado salvo ocorre quando você reabre o app da memória. Durante uma inicialização a frio, você não tem um anúncio carregado anteriormente disponível para veicular. Durante uma inicialização com estado salvo, é possível que você ainda tenha um anúncio carregado disponível para veicular.

Na inicialização a frio, os usuários podem interagir com o app antes que ele carregue e veicule um anúncio. Para evitar que eles tenham uma experiência ruim, veicule anúncios de abertura do app em inicializações a frio estritamente em uma tela de carregamento enquanto os recursos do app são carregados. Enquanto os usuários esperam o carregamento do aplicativo, veicule anúncios de abertura do app. Não veicule um anúncio de abertura do app na primeira inicialização. Se o carregamento de recursos for concluído e os usuários acessarem o conteúdo principal antes do carregamento da publicidade, não veicule o anúncio.

Carregue os recursos de link para app em uma linha de execução em segundo plano para que o carregamento continue enquanto o anúncio é veiculado. Se a tela terminar o carregamento enquanto o anúncio é veiculado, dispense-a no método de callback de encerramento do anúncio.

Detectar eventos de anúncios

Antes de veicular o anúncio, detecte os eventos de ciclo de vida dele. O exemplo a seguir registra callbacks para eventos de anúncio:

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.
        }
      });
}