Banners adaptativos fixos

Os banners adaptativos são a próxima geração de anúncios responsivos. Eles maximizam o desempenho otimizando o tamanho do anúncio para cada dispositivo. A vantagem em relação aos banners inteligentes, que são compatíveis somente com alturas fixas, é possível especificar a largura do anúncio nos banners adaptativos e usá-lo para determinar o tamanho ideal do anúncio.

Para escolher o melhor tamanho de anúncio, os banners adaptativos usam proporções fixas em vez de alturas fixas. Isso resulta em anúncios de banner que ocupam uma parte mais consistente da tela em vários dispositivos e fornece oportunidades para uma melhoria no desempenho.

Ao trabalhar com banners adaptativos, observe que eles sempre retornam um tamanho constante para determinado dispositivo e largura. Depois de testar o layout em um determinado dispositivo, você pode ter certeza de que o tamanho do anúncio não mudará. No entanto, o tamanho do criativo de banner pode mudar em diferentes dispositivos. Consequentemente, recomendamos que o layout acomode variações na altura do anúncio. Em casos raros, o tamanho adaptável total pode não ser preenchido, e um criativo de tamanho padrão será centralizado nesse slot.

Prerequisites

Quando usar banners adaptativos

Os banners adaptativos foram projetados para substituir o tamanho padrão do setor de 320 x 50 e o formato de banner inteligente.

Esses tamanhos de banner são normalmente usados como banners fixos, que ficam permanentemente bloqueados na parte superior ou inferior da tela.

Para esses banners fixos, a proporção ao usar banners adaptativos será semelhante à de um anúncio standard de 320x50, como visto nos três exemplos abaixo:


Banner de 320 x 50

Banner adaptativo

Banner inteligente

O banner adaptativo usa melhor o tamanho de tela disponível. Além disso, em comparação com um banner inteligente, o uso de um banner adaptativo é melhor porque:

  • Ela usa qualquer largura fornecida, em vez de forçar a largura em tela cheia, permitindo que você considere a área segura no iOS e cortes de tela no Android.

  • Ele seleciona uma altura ideal para o dispositivo específico, em vez de ter uma altura constante em dispositivos de tamanhos diferentes, reduzindo os efeitos da fragmentação do dispositivo.

Observações sobre implementação

Ao implementar banners adaptativos no seu app, lembre-se do seguinte:

  • Você precisa saber a largura da visualização em que o anúncio será exibido, e isso deve considerar a largura do dispositivo e qualquer área segura ou cortes aplicáveis.
  • Verifique se o plano de fundo da visualização do anúncio é opaco para obedecer às políticas da AdMob quando anúncios menores são veiculados e que não preenchem o espaço do anúncio.
  • Verifique se você está usando a versão mais recente do plug-in dos anúncios para dispositivos móveis do Google para Unity. Para mediação, use a versão mais recente de cada adaptador de mediação.
  • Os tamanhos dos banners adaptativos foram projetados para funcionar melhor ao usar a largura completa disponível. Na maioria dos casos, essa será a largura total da tela do dispositivo em uso. Considere as áreas seguras aplicáveis.
  • O SDK dos anúncios para dispositivos móveis do Google dimensionará o banner com uma altura do anúncio otimizada para a largura especificada ao usar as APIs AdSize adaptáveis.
  • Existem três métodos para conseguir um tamanho de anúncio para adaptativo: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth para paisagem, AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth para retrato e AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth para a orientação atual no momento da execução.
  • O tamanho retornado para uma determinada largura em um dispositivo sempre será igual. Por isso, depois que você testar o layout em um determinado dispositivo, pode ter certeza de que o tamanho do anúncio não mudará.
  • A altura do banner fixo nunca é maior do que menos de 15% da altura do dispositivo ou de pixels independentes de densidade 90 e nunca inferior a 50 pixels independentes de densidade.
  • Para banners de largura total, é possível usar a sinalização AdSize.FullWidth em vez de fornecer uma largura específica.

Guia de início rápido

Siga as etapas abaixo para implementar um banner adaptativo fixo.

  1. Tenha um tamanho de anúncio de banner adaptativo. O tamanho recebido será usado para solicitar o banner adaptativo. Para ver o tamanho de anúncio adaptável, faça o seguinte:
    1. Configure a largura do dispositivo em pixels de densidade independente ou defina sua própria largura se não quiser usar a largura total da tela. Como as APIs do Unity, como Screen.width, retornam pixels absolutos, é necessário dividir por escala do dispositivo (coletado de MobileAds.Utils.GetDeviceScale()).
    2. Use a sinalização AdSize.FullWidth para banners de largura total.
    3. Use os métodos estáticos adequados na classe de tamanho do anúncio, como AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width), para usar um objeto AdSize adaptável para a orientação atual.
  2. Crie um objeto BannerView com o ID do bloco de anúncios, o tamanho adaptável e a posição relevante do anúncio.
  3. Crie um objeto de solicitação de anúncio e carregue seu banner usando o método LoadAd() na visualização de anúncio preparada, assim como você faria com uma solicitação de banner normal.

Exemplo de código

Veja um exemplo de script que carrega e recarrega um banner adaptativo para se ajustar à largura da tela, considerando a área segura:

using UnityEngine;
using System;
using GoogleMobileAds.Api;

public class NewMonoBehaviour : MonoBehaviour
{
    private BannerView bannerView;

    // Use this for initialization
    void Start()
    {
        RequestBanner();
    }

    public void OnGUI()
    {
        GUI.skin.label.fontSize = 60;
        Rect textOutputRect = new Rect(
          0.15f * Screen.width,
          0.25f * Screen.height,
          0.7f * Screen.width,
          0.3f * Screen.height);
        GUI.Label(textOutputRect, "Adaptive Banner Example");
    }

    private void RequestBanner()
    {
        // These ad units are configured to always serve test ads.
        #if UNITY_EDITOR
            string adUnitId = "unused";
        #elif UNITY_ANDROID
            string adUnitId = "ca-app-pub-3212738706492790/6113697308";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3212738706492790/5381898163";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Clean up banner ad before creating a new one.
        if (this.bannerView != null)
        {
            this.bannerView.Destroy();
        }

        AdSize adaptiveSize =
                AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);

        this.bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);

        // Register for ad events.
        this.bannerView.OnAdLoaded += this.HandleAdLoaded;
        this.bannerView.OnAdFailedToLoad += this.HandleAdFailedToLoad;
        this.bannerView.OnAdOpening += this.HandleAdOpening;
        this.bannerView.OnAdClosed += this.HandleAdClosed;

        AdRequest adRequest = new AdRequest.Builder()
            .AddTestDevice(AdRequest.TestDeviceSimulator)
            .AddTestDevice("0123456789ABCDEF0123456789ABCDEF")
            .Build();

        // Load a banner ad.
        this.bannerView.LoadAd(adRequest);
    }

    #region Banner callback handlers

    public void HandleAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
        MonoBehaviour.print(String.Format("Ad Height: {0}, width: {1}",
            this.bannerView.GetHeightInPixels(),
            this.bannerView.GetWidthInPixels()));
    }

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

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

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

    #endregion
}

Aqui, a função AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth é usada para acessar o tamanho de um banner em uma posição fixa para a orientação da interface atual. Para pré-carregar um banner fixo em uma determinada orientação, use a função relevante de AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth e AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.