Anúncios intersticiais (legados)

Os anúncios intersticiais são anúncios de tela cheia que cobrem a interface do app host. Normalmente, eles são exibidos em pontos de transição naturais no fluxo de um app, como durante a pausa entre os níveis de um jogo. Quando um app mostra um anúncio intersticial, o usuário pode tocar no anúncio e continuar até o destino ou fechá-lo e retornar ao app. Estudo de caso.

Este guia explica como integrar anúncios intersticiais a um app Unity.

Pré-requisitos

Criar um anúncio intersticial

A primeira etapa para mostrar um intersticial é criar um objeto InterstitialAd em um script anexado a um GameObject.

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

O construtor de InterstitialAd tem o seguinte parâmetro:

  • adUnitId: o ID do bloco de anúncios da AdMob de que o InterstitialAd precisa carregar anúncios.

É importante observar como diferentes blocos de anúncios são usados, dependendo da plataforma. Você vai precisar usar uma unidade de anúncio do iOS para fazer solicitações de anúncios no iOS e uma unidade de anúncio do Android para fazer solicitações no Android.

Sempre teste com anúncios de teste

O código de exemplo acima contém um ID do bloco de anúncios, e você pode solicitar anúncios com ele. Ele foi configurado especificamente para retornar anúncios de teste em vez de anúncios de produção para cada solicitação, o que garante a segurança do uso.

No entanto, depois de registrar um app na interface da AdMob e criar seus próprios IDs de bloco de anúncios para uso no app, você precisará configurar seu dispositivo como um de teste durante o desenvolvimento. Isso é extremamente importante. Testar com anúncios reais (mesmo que você nunca toque neles) é contra a política da AdMob e pode fazer com que sua conta seja suspensa. Consulte Anúncios de teste para saber como garantir que você sempre receba anúncios de teste ao desenvolver.

Carregar um anúncio

Depois que a InterstitialAd é instanciada, a próxima etapa é carregar um anúncio. Isso é feito com o método loadAd() na classe InterstitialAd. Ele usa um argumento AdRequest, que contém informações de execução (como informações de segmentação) sobre uma única solicitação de anúncio.

Confira um exemplo que mostra como carregar um anúncio:

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

Mostrar o anúncio

Os anúncios intersticiais precisam ser exibidos durante pausas naturais no fluxo de um app. Entre as fases de um jogo é um bom exemplo, ou depois que o usuário conclui uma tarefa. Para mostrar um intersticial, use o método isLoaded() para verificar se ele foi carregado e chame show().

O anúncio intersticial do exemplo de código anterior pode ser mostrado no final de um jogo, conforme demonstrado abaixo.

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

Eventos de anúncio

Para personalizar ainda mais o comportamento do seu anúncio, você pode se conectar a vários eventos no ciclo de vida do anúncio: carregamento, abertura, fechamento e assim por diante. Ouça esses eventos registrando um delegado para o EventHandler apropriado, conforme mostrado abaixo.

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

O evento OnAdFailedToLoad contém argumentos de evento especiais. Ele transmite uma instância de HandleAdFailedToLoadEventArgs com um Message que descreve o erro:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
Evento do anúncioDescrição
OnAdLoaded O evento OnAdLoaded é executado quando um anúncio termina de carregar.
OnAdFailedToLoad O evento OnAdFailedToLoad é invocado quando um anúncio não é carregado. O parâmetro Message descreve o tipo de falha que ocorreu.
OnAdOpening Esse método é invocado quando o anúncio é mostrado, cobrindo a tela do dispositivo.
OnAdClosed Esse método é invocado quando o anúncio intersticial é fechado porque o usuário toca no ícone de fechamento ou usa o botão "Voltar". Se o app pausar a saída de áudio ou o loop do jogo, esse é um ótimo lugar para retomar.

Limpar anúncios intersticiais

Quando terminar de usar um InterstitialAd, chame o método Destroy() antes de descartar a referência a ele:

interstitial.Destroy();

Isso notifica o plug-in de que o objeto não será mais usado e que a memória que ele ocupa pode ser recuperada. A falha na chamada desse método resulta em vazamentos de memória.

Algumas práticas recomendadas

Avalie se os anúncios intersticiais são o tipo certo de anúncio para seu app.
Os anúncios intersticiais funcionam melhor em apps com pontos de transição naturais. A conclusão de uma tarefa em um app, como compartilhar uma imagem ou passar de fase em um jogo, cria um ponto como esse. Como o usuário espera uma pausa na ação, é mais fácil apresentar um anúncio intersticial sem prejudicar a experiência dele. Considere em quais pontos do fluxo de trabalho do app você vai exibir anúncios intersticiais e qual a probabilidade de o usuário reagir.
Lembre-se de pausar a ação ao exibir um anúncio intersticial.
Há vários tipos diferentes de anúncios intersticiais: de texto, de imagem, em vídeo e muito mais. É importante garantir que, quando o app exibe um anúncio intersticial, ele também suspende o uso de alguns recursos para permitir que o anúncio faça uso deles. Por exemplo, ao fazer uma chamada para exibir um anúncio intersticial, interrompa a saída de áudio produzida pelo app. Você pode retomar a reprodução de sons no manipulador de eventos onAdClosed(), que será invocado quando o usuário terminar de interagir com o anúncio. Além disso, considere interromper temporariamente tarefas de computação intensa (como um loop de jogo) enquanto o anúncio está sendo exibido. Isso garante que o usuário não experimente gráficos lentos ou não responsivos ou vídeos travando.
Conceda tempo suficiente para o carregamento.
Tão importante quanto garantir a exibição de anúncios intersticiais em um momento adequado, é importante garantir que o usuário não precise esperar o carregamento. Carregar o anúncio com antecedência chamando loadAd() antes de pretender chamar show() pode garantir que o app tenha um anúncio intersticial totalmente carregado e preparado para quando o momento de exibição chegar.
Não sobrecarregue o usuário com anúncios.
Embora aumentar a frequência dos anúncios intersticiais no seu app possa parecer uma ótima maneira de aumentar a receita, isso também pode prejudicar a experiência do usuário e reduzir as taxas de cliques. Certifique-se de que os usuários não sejam interrompidos com muita frequência de modo que não possam mais usar o app.

Outros recursos

Amostras

Histórias de sucesso