Os banners adaptativos são a próxima geração de anúncios responsivos, maximizando o desempenho ao otimizar o tamanho do anúncio para cada dispositivo. A vantagem em relação aos banners inteligentes, que só usam alturas fixas, é que os banners adaptativos permitem especificar a largura do anúncio e, com isso, determinar o tamanho ideal.
Para escolher o melhor tamanho de anúncio, os banners adaptáveis usam proporções fixas em vez de alturas fixas. Com isso, os anúncios de banner ocupam uma parte mais consistente da tela em vários tipos e tamanhos de dispositivo e podem melhorar o desempenho da publicidade.
Ao trabalhar com banners adaptativos, observe que eles sempre retornam um tamanho constante para um 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 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 adaptável completo pode não ser preenchido, e um criativo de tamanho padrão será centralizado nesse espaço.
Pré-requisitos
- Siga as instruções do guia de início rápido sobre como importar o plug-in do Unity para anúncios para dispositivos móveis e incluir o SDK dos anúncios para dispositivos móveis.
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 são usados com frequência como banners fixos, que geralmente ficam na parte de cima ou de baixo da tela.
Para esses banners fixos, a proporção ao usar banners adaptativos será semelhante à de um anúncio padrão de 320 x 50, como pode ser visto nos três exemplos abaixo:
![]() Banner 320 x 50 |
![]() Banner adaptativo |
![]() Banner inteligente |
O banner adaptativo aproveita melhor o tamanho da tela disponível. Além disso, em comparação com um banner inteligente, um banner adaptativo é uma opção melhor porque:
Ele usa qualquer largura que você fornecer, em vez de forçar a largura a ser em tela cheia, permitindo que você considere a área segura no iOS e mostre cortes na 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, mitigando os efeitos da fragmentação de dispositivos.
Observações sobre implementação
Ao implementar banners adaptáveis no seu app, lembre-se dos seguintes pontos:
- Você precisa saber a largura da visualização em que o anúncio será colocado, e isso deve levar em consideração a largura do dispositivo e as áreas seguras ou cortes aplicáveis.
- Verifique se o plano de fundo da visualização de anúncio é opaco para obedecer às políticas da AdMob quando tamanhos menores de anúncios são veiculados e não preenchem o espaço.
- Verifique se você está usando a versão mais recente do plug-in do Google Mobile Ads Unity. Para mediação, use a versão mais recente de cada adaptador de mediação.
- 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 adaptáveis.
- Há três métodos para conseguir um tamanho de anúncio adaptável:
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
para paisagem,AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
para retrato eAdSize.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 seu layout em um dispositivo, você pode ter certeza de que 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 independentes de densidade, o que for menor, e nunca é menor que 50 pixels independentes de densidade.
- 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 fixo adaptável simples.
- Receba um tamanho de anúncio de banner adaptativo. O tamanho definido será usado para solicitar
seu banner adaptativo. Para receber o tamanho do anúncio adaptável, faça o seguinte:
- Receba a largura do dispositivo em uso em pixels independentes de densidade 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 pela escala do dispositivo (recuperável deMobileAds.Utils.GetDeviceScale()
). - Use a flag
AdSize.FullWidth
para banners de largura total. - Use os métodos estáticos adequados na classe de tamanho do anúncio, como
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
para receber um objetoAdSize
adaptável para a orientação atual.
- Receba a largura do dispositivo em uso em pixels independentes de densidade ou defina sua própria largura se não quiser usar a largura total da tela.
Como as APIs do Unity, como
- 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. - 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 normal.
Exemplo de código
Confira um exemplo de script que carrega e recarrega um banner adaptável para ajustar a 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/admob/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 receber 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
.