Anúncios em banner

Anúncios de banner são anúncios gráficos ou de texto retangulares que ocupam um lugar na tela. Eles permanecem na tela enquanto os usuários interagem com o app e podem ser atualizados automaticamente após um determinado período. Se você não tem experiência em publicidade para dispositivos móveis, eles são um bom ponto de partida. Estudo de caso.

Este guia mostra como integrar anúncios de banner da AdMob a um app do Unity. Além de snippets de código e instruções, ele também inclui informações sobre como dimensionar banners corretamente e links para outros recursos.

Prerequisites

Concluir Primeiros passos. Seu app do Unity já precisa ter o plug-in do Unity dos anúncios para dispositivos móveis do Google importado.

Criar uma BannerView

O primeiro passo para exibir um banner é criar um objeto BannerView em um script C# anexado a um GameObject.

Para facilitar a integração de anúncios usando o Unity Editor, teste o novo Posicionamento do anúncio Beta.

using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

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

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

O construtor de um BannerView tem os seguintes parâmetros:

  • adUnitId: é o ID do bloco de anúncios da AdMob usado para carregar anúncios de BannerView.
  • AdSize: o tamanho de anúncio da AdMob que você quer usar (consulte Tamanhos de banner para detalhes).
  • AdPosition: é a posição em que o anúncio de banner será colocado. A enumeração AdPosition lista os valores válidos de posição do anúncio.

É importante observar como diferentes blocos de anúncios são usados, dependendo da plataforma. Será preciso usar um bloco de anúncios do iOS para fazer solicitações de anúncios no iOS e um bloco de anúncios para Android para fazer solicitações no Android.

(Opcional) Posição do anúncio personalizada

Para ter mais controle sobre onde um BannerView é colocado na tela do que os oferecidos por valores de AdPosition, use o construtor BannerView que tem as coordenadas X e Y como parâmetros:

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

O canto superior esquerdo do BannerView será posicionado nos valores x e y transmitidos para o construtor, em que a origem é o canto superior esquerdo da tela.

(Opcional) Tamanhos de anúncio personalizados

Além de usar uma constante AdSize, você também pode especificar um tamanho personalizado para seu anúncio:

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

Sempre testar com anúncios de teste

O exemplo de código acima contém um ID de bloco de anúncios. Você pode solicitá-los sem custo financeiro. Ele foi configurado especialmente para retornar anúncios de teste em vez de anúncios de produção para cada solicitação, o que torna o uso seguro.

No entanto, depois de registrar um aplicativo na IU da AdMob e criar seus próprios IDs de bloco de anúncios para uso no aplicativo, você precisará configurar seu dispositivo explicitamente como um dispositivo 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. Leia Anúncios de teste para saber como garantir que você sempre receba anúncios de teste ao desenvolver.

Carregar um anúncio

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

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

...
    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

Pronto! Seu app está pronto para exibir anúncios de banner da AdMob.

Eventos de anúncio

Para personalizar ainda mais o comportamento do anúncio, você pode usar vários eventos no ciclo de vida do anúncio: carregar, abrir, fechar e assim por diante. Detecte esses eventos registrando um delegado para o EventHandler apropriado, conforme mostrado abaixo.

...
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.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.LoadAdError.GetMessage());
    }

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

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

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

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  MonoBehaviour.print("Banner failed to load: " + args.Message);
  // Handle the ad failed to load event.
};
Evento de anúncioDescrição
OnAdLoaded O evento OnAdLoaded é executado quando um anúncio termina de carregar.
OnAdFailedToLoad O evento OnAdFailedToLoad é invocado quando ocorre uma falha no carregamento do anúncio. O parâmetro Message descreve o tipo de falha que ocorreu.
OnAdOpening Esse método é invocado quando o usuário toca em um anúncio. Se você estiver usando um pacote de análise para rastrear os cliques, este é um bom lugar para registrar um.
OnAdClosed Quando um usuário retorna ao aplicativo depois de visualizar um URL de destino do anúncio, esse método é invocado. O app pode usá-lo para retomar atividades suspensas ou realizar qualquer outro trabalho necessário a fim de se preparar para a interação.

A tabela abaixo lista os tamanhos de banner padrão.

Tamanho em dp (WxH) Descrição Disponibilidade Constante do AdSize
320 x 50 Banner padrão Smartphones e tablets BANNER
320 x 100 Banner grande Smartphones e tablets LARGE_BANNER
300 x 250 Retângulo médio IAB Smartphones e tablets MEDIUM_RECTANGLE
468 x 60 Banner em tamanho real do IAB Tablets FULL_BANNER
728 x 90 Quadro de liderança do IAB Tablets LEADERBOARD
Largura fornecida x Altura adaptável Banner adaptativo Smartphones e tablets N/A
Largura da tela x 32|50|90 Banner inteligente Smartphones e tablets SMART_BANNER
Saiba mais sobre banners adaptativos, para substituir banners inteligentes.

Limpar anúncios de banner

Quando terminar de usar BannerView, chame o método Destroy() antes de soltar sua referência:

bannerView.Destroy();

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

Outros recursos

Exemplos

Histórias de sucesso