Banners adaptativos fixos

Os banners adaptativos são a próxima geração de anúncios responsivos. Eles maximizam a performance otimizando o tamanho do anúncio para cada dispositivo. Melhoria nos banners inteligentes, que só oferecem suporte a alturas fixas, permitem especificar a largura do anúncio e usá-la para determinar o tamanho ideal para o 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 oferece oportunidades para melhorar o desempenho.

Ao trabalhar com banners adaptativos, eles sempre retornam um tamanho constante para um determinado dispositivo e largura. Depois de testar o layout em um determinado dispositivo, você tem certeza de que o tamanho do anúncio não vai mudar. No entanto, o tamanho do criativo de banner pode mudar em dispositivos diferentes. 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 é centralizado nesse slot.

Pré-requisitos

Quando usar banners adaptativos

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

Esses tamanhos costumam ser usados como banners fixos, que geralmente ficam bloqueados na parte de cima ou de baixo da tela.

Para banners fixos, a proporção ao usar banners adaptativos será semelhante à de um anúncio padrão de 320 x 50, conforme mostrado nos três exemplos abaixo:


Banner de 320 x 50

Banner adaptativo

Banner inteligente

O banner adaptativo faz melhor uso do tamanho de tela disponível. Além disso, em comparação a um banner inteligente, um banner adaptativo é uma escolha melhor porque:

  • Ele usa qualquer largura que você fornecer, em vez de forçar a largura a ser em tela inteira, permitindo que você considere a área segura no iOS e os cortes de tela no Android.

  • Ela seleciona uma altura ideal para o dispositivo específico, em vez de ter uma altura constante em dispositivos de diferentes tamanhos, mitigando 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á colocado, e isso precisa levar em consideração a largura do dispositivo e quaisquer áreas ou cortes seguros aplicáveis.
  • Verifique se o plano de fundo da visualização do anúncio está opaco para obedecer às políticas da AdMob quando tamanhos de anúncio menores são veiculados e 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 a mediação, use a versão mais recente de cada adaptador de mediação.
  • Os tamanhos de banner adaptativo foram criados para funcionar melhor ao usar a largura total disponível. Na maioria dos casos, essa será a largura total da tela do dispositivo em uso. Certifique-se de levar em consideração as áreas seguras aplicáveis.
  • O SDK dos anúncios para dispositivos móveis do Google dimensiona o banner com uma altura de anúncio otimizada para a largura especificada ao usar as APIs AdSize adaptáveis.
  • Há três métodos para conseguir um tamanho de anúncio adaptável: 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 determinado dispositivo será sempre o mesmo. Portanto, depois de testar o layout em um determinado dispositivo, você terá certeza de que o tamanho do anúncio não mudará.
  • A altura do banner fixo nunca é menor que 15% da altura do dispositivo ou 90 pixels de densidade independente.
  • Para banners de largura total, você pode usar a flag AdSize.FullWidth em vez de fornecer uma largura específica.

Guia de início rápido

Siga as etapas abaixo para implementar um banner fixo fixo simples.

  1. Use um tamanho de anúncio de banner adaptativo. O tamanho definido será usado para solicitar o banner adaptativo. Para conferir o tamanho do anúncio adaptável, faça o seguinte:
    1. Use a largura do dispositivo em pixels com independência de densidade ou defina sua própria largura, se você 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 (recuperável 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 receber um objeto AdSize adaptável com 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 o banner usando o método LoadAd() na visualização de anúncio preparada, como faria com uma solicitação de banner normal.

Exemplo de código

Confira 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 AdaptiveBannerSample : MonoBehaviour
{
    private BannerView _bannerView;

    // Use this for initialization
    void Start()
    {
        // Set your test devices.
        // https://developers.google.com/ad-manager/mobile-ads-sdk/unity/test-ads
        RequestConfiguration requestConfiguration = new RequestConfiguration
        {
            TestDeviceIds = new List<string>
            {
                AdRequest.TestDeviceSimulator,
                // Add your test device IDs (replace with your own device IDs).
                #if UNITY_IPHONE
                "96e23e80653bb28980d3f40beb58915c"
                #elif UNITY_ANDROID
                "75EF8D155528C04DACBBA6F36F433035"
                #endif
            }
        };
        MobileAds.SetRequestConfiguration(requestConfiguration);

        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus status) =>
        {
            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 (_bannerView != null)
        {
            _bannerView.Destroy();
        }

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

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

        // Register for ad events.
        _bannerView.OnBannerAdLoaded += OnBannerAdLoaded;
        _bannerView.OnBannerAdLoadFailed += OnBannerAdLoadFailed;

        AdRequest adRequest = new AdRequest();

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

    #region Banner callback handlers

    private void OnBannerAdLoaded(object sender, EventArgs args)
    {
        Debug.Log("Banner view loaded an ad with response : "
                 + _bannerView.GetResponseInfo());
        Debug.Log("Ad Height: {0}, width: {1}",
                _bannerView.GetHeightInPixels(),
                _bannerView.GetWidthInPixels());
    }

    private void OnBannerAdLoadFailed(LoadAdError error)
    {
        Debug.LogError("Banner view failed to load an ad with error : "
                + error);
    }

    #endregion
}

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