Banners adaptativos fixos

Os banners adaptativos são anúncios responsivos de última geração e maximizam a performance ao otimizar o tamanho do anúncio para cada dispositivo. Neles você pode especificar a largura do anúncio para determinar o tamanho ideal. É por isso que eles são melhores que os banners inteligentes, que só usam alturas fixas.

Para escolher o melhor tamanho de anúncio, os banners adaptativos usam proporções fixas em vez de uma altura predefinida. Com isso, os anúncios ocupam uma parte mais consistente da tela em vários dispositivo e podem melhorar a performance.

Os banners adaptativos sempre retornam um tamanho constante para um determinado dispositivo e largura. Depois de testar o layout em um determinado dispositivo, o tamanho do anúncio não vai mudar. No entanto, o tamanho do criativo de banner pode mudar em diferentes dispositivos. Por isso, recomendamos que seu layout acomode variações na altura do anúncio. Em casos raros, o tamanho total adaptativo não é preenchido, e um criativo de tamanho padrão será centralizado nesse espaço.

Pré-requisitos

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 costumam ser usados como banners fixos, que geralmente ficam na parte de cima ou de baixo da tela.

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


Banner de 320 x 50

Banner adaptativo

Banner inteligente

O banner adaptativo aproveita melhor o tamanho da tela disponível. Além disso, ele é uma opção melhor em comparação com um banner inteligente porque:

  • Não obriga o desenvolvedor a usar a largura de tela cheia, permitindo que você considere a área segura no iOS e os cortes de tela no Android.

  • Seleciona uma altura ideal para o dispositivo específico, em vez de uma altura constante em dispositivos de tamanhos diferentes. Isso reduz os efeitos da fragmentação de dispositivos.

Observações sobre implementação

Pontos importantes ao implementar banners adaptativos no seu app:

  • Você precisa saber a largura da visualização em que o anúncio será colocado, e isso deve considerar a largura do dispositivo e as áreas seguras ou cortes aplicáveis.
  • O segundo plano da visualização de anúncio precisa ser opaco para obedecer às políticas da AdMob quando anúncios pequenos são veiculados e não preenchem todo o espaço.
  • Use a versão mais recente do plug-in de anúncios para dispositivos móveis do Google para Unity. No caso de mediação, use a versão mais recente de cada adaptador.
  • Os tamanhos de banner adaptativo são projetados para funcionar melhor quando ocupam toda a largura disponível. Na maioria dos casos, é a largura total da tela do dispositivo em uso. Não se esqueça de considerar 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 adaptativas.
  • Há três métodos para saber o tamanho de um anúncio 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 específico será sempre o mesmo. Portanto, depois de testar seu layout em um dispositivo, o tamanho do anúncio não vai mudar.
  • A altura do banner fixo nunca é maior que 15% da altura do dispositivo ou 90 pixels de densidade independente, o que for menor, e nunca é menor que 50 pixels de densidade independente.
  • Para banners de largura total, use 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 adaptativo fixo simples.

  1. Busque o tamanho de um anúncio de banner adaptativo. Esse tamanho será usado para solicitar seu banner adaptativo. Para saber o tamanho do anúncio:
    1. Pegue a largura do dispositivo em uso (em pixels de densidade independente) ou defina a sua, se não quiser usar a largura total da tela. Como as APIs do Unity, como Screen.width, retornam pixels absolutos, divida pela escala do dispositivo (de MobileAds.Utils.GetDeviceScale()).
    2. Use a flag 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 ter um objeto AdSize adaptável para a orientação escolhida.
  2. Crie um objeto BannerView com o ID do bloco de anúncios, o tamanho adaptável e a posição relevante para seu 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, assim como faria com uma solicitação de banner comum.

Exemplo de código

Confira um exemplo de script que carrega e recarrega um banner adaptativo que se ajusta à 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
}

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