Anúncios

Anúncios em banner são imagens retangulares ou anúncios de texto que ocupam um lugar na tela. Eles permanecem na tela enquanto os usuários estão interagindo com o aplicativo e podem ser atualizados automaticamente após um determinado período de tempo. Se você é novo na publicidade móvel, eles são um ótimo lugar para começar. Estudo de caso .

Este guia mostra como integrar anúncios de banner da AdMob em um aplicativo Unity. Além de trechos de código e instruções, ele também inclui informações sobre o tamanho adequado de banners e links para recursos adicionais.

Pré-requisitos

Completa Get Started . Seu aplicativo Unity já deve ter o plug-in Google Mobile Ads Unity importado.

Crie um BannerView

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

Para facilitar a integração anúncios usando o Editor de Unidade, experimentar o novo anúncio colocações 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 uma BannerView tem os seguintes parâmetros:

  • adUnitId - O ID bloco de anúncios AdMob a partir do qual o BannerView deve carregar anúncios.
  • AdSize - O tamanho do anúncio AdMob você gostaria de usar (consulte Bandeira tamanhos para mais detalhes).
  • AdPosition - A posição em que o anúncio da bandeira deve ser colocado. O AdPosition enumeração lista os valores de posição de anúncios válidos.

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

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

Para maior controle sobre onde um BannerView é colocado na tela do que o que é oferecido por AdPosition valores, use o BannerView construtor que tem X e Y coordenadas 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 da BannerView será posicionado na valores x e y passado para o construtor, em que a origem é o canto superior esquerdo do ecrã.

(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 teste com anúncios de teste

O código de exemplo acima contém um ID de bloco de anúncios e você está livre para solicitar anúncios com ele. Ele foi configurado especialmente para retornar anúncios de teste em vez de anúncios de produção para cada solicitação, o que o torna seguro para uso.

No entanto, depois de se registar um aplicativo na interface do usuário da AdMob e criar seus próprios IDs do bloco de anúncios para o uso em seu aplicativo, você precisa explicitamente configurar o dispositivo como um dispositivo de teste quando você está desenvolvendo. 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 obter informações sobre como você pode ter certeza que você sempre terá anúncios de teste durante o desenvolvimento.

Carregar um anúncio

Uma vez que o BannerView é instanciado, o próximo passo é carregar um anúncio. Isso é feito com o loadAd() método na BannerView classe. É preciso uma AdRequest argumento, que contém informações de tempo de execução (como informações segmentação) sobre um único pedido de anúncio.

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

É isso! Seu aplicativo agora está pronto para exibir anúncios de banner da AdMob.

Eventos de anúncio

Para personalizar ainda mais o comportamento de seu anúncio, você pode se conectar a uma série de eventos no ciclo de vida do anúncio: carregamento, abertura, fechamento e assim por diante. Ouvir esses eventos por registrar um delegado para o apropriado EventHandler , como 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;
        // Called when the ad click caused the user to leave the application.
        this.bannerView.OnAdLeavingApplication += this.HandleOnAdLeavingApplication;

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

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

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

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

O OnAdFailedToLoad evento contém argumentos de eventos especiais. Ele passa uma instância de HandleAdFailedToLoadEventArgs com uma Message descrevendo 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úncio Descrição
OnAdLoaded O OnAdLoaded evento é executado quando um anúncio tem de carregamento acabado.
OnAdFailedToLoad O OnAdFailedToLoad evento é chamado quando um anúncio deixa de carga. A Message parâmetro descreve o tipo de falha que ocorreu.
OnAdOpening Este método é invocado quando o usuário toca em um anúncio. Se você estiver usando um pacote de análise para rastrear cliques, este é um bom lugar para registrar um.
OnAdClosed Quando um usuário retorna ao aplicativo após visualizar o URL de destino de um anúncio, este método é invocado. Seu aplicativo pode usá-lo para retomar atividades suspensas ou realizar qualquer outro trabalho necessário para ficar pronto para a interação.
OnAdLeavingApplication Este método é chamado após onAdOpened , quando um usuário clique abre outro aplicativo (como a loja do Google Play), backgrounding o aplicativo atual.

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

Tamanho em dp (WxH) Descrição Disponibilidade Constante AdSize
320x50 Banner Padrão Telefones e tablets BANNER
320x100 Banner grande Telefones e tablets LARGE_BANNER
300x250 Retângulo médio IAB Telefones e tablets MEDIUM_RECTANGLE
468x60 Banner IAB em tamanho real Tablets FULL_BANNER
728 x 90 Tabela de Líderes IAB Tablets LEADERBOARD
Desde largura x altura Adaptive Banner adaptável Telefones e tablets N / D
Largura da tela x 32 | 50 | 90 Banner inteligente Telefones e tablets SMART_BANNER
Saiba mais sobre Adaptive Banners , destinado a substituir inteligente Banners .

Limpe os anúncios de banner

Quando tiver terminado com um BannerView , certifique-se de chamar o Destroy() método antes de deixar cair a sua referência a ele:

bannerView.Destroy();

Isso notifica o plugin de que o objeto não é mais usado e a memória que ele ocupava pode ser recuperada. A falha em chamar esse método resulta em vazamentos de memória.

Recursos adicionais

Amostras

Histórias de sucesso