Os anúncios de banner são anúncios gráficos ou de texto retangulares que ocupam uma posição na tela. Eles permanecem na tela enquanto os usuários interagem com o app e podem ser atualizados automaticamente após um determinado período. Se você começou a usar os anúncios para dispositivos móveis agora, saiba que eles são um bom lugar para começar. Estudo de caso.
Este guia mostra como integrar anúncios de banner da AdMob a um aplicativo do Unity. Além de snippets e instruções de código, ele também inclui informações sobre o dimensionamento correto de banners e links para outros recursos.
Prerequisites
Conclua os Primeiros passos. Seu app Unity já deve ter o plug-in Unity dos anúncios para dispositivos móveis do Google importado.
Criar um BannerView
O primeiro passo para exibir um banner é criar um objeto BannerView
em um script C# anexado a uma GameObject
.
Para facilitar a integração de anúncios usando o Editor do Unity, teste a nova versão Beta dos canais de anúncios.
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 um BannerView
tem os seguintes parâmetros:
adUnitId
: ID do bloco de anúncios da AdMob sobre o qual oBannerView
deve carregar anúncios.AdSize
: o tamanho de anúncio da AdMob que você quer usar (consulte Tamanhos de banner para detalhes).AdPosition
: é a posição em que o anúncio de banner deve ser posicionado. A enumeraçãoAdPosition
lista os valores válidos para a posição do anúncio.
É importante observar como diferentes blocos de anúncios são usados, dependendo da plataforma. Você precisará usar um bloco de anúncios do iOS para fazer solicitações de anúncio no iOS e um bloco de anúncios do Android para fazer solicitações no Android.
(Opcional) Posição do anúncio personalizada
Para ter mais controle sobre onde uma BannerView
é colocada na tela do que as oferecidas por valores de AdPosition
, use o construtor BannerView
que tem as coordenadas x e y 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 do BannerView
será posicionado nos valores x e y
transmitidos para o construtor, em que a origem é o canto superior esquerdo da tela.
(Opcional) Tamanhos de anúncio personalizados
Além de usar uma constante AdSize, também é possível especificar um tamanho personalizado para seu anúncio:
AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);
Sempre usar anúncios de teste
A amostra de código acima contém um código de bloco de anúncios, e você pode solicitar anúncios com ele. Ele foi configurado especialmente para retornar anúncios de teste em vez de anúncios de produção a cada solicitação. Isso facilita o uso.
No entanto, depois de registrar um aplicativo na IU da AdMob e criar seus próprios IDs de blocos de anúncios para uso no aplicativo, será necessário configurar explicitamente o dispositivo como um dispositivo de teste durante o desenvolvimento. Isso é muito importante. Testar com anúncios reais (mesmo que você nunca toque neles) é contra a política da AdMob e pode causar a suspensão da sua conta. Leia Anúncios de teste para ver informações sobre como garantir que você sempre receba anúncios de teste ao desenvolver.
Carregar um anúncio
Depois que o BannerView
for instanciado, a próxima etapa será carregar um anúncio. Isso é feito com o método loadAd()
na classe BannerView
. Ele usa um argumento AdRequest
, que contém informações de tempo de execução (como informações de segmentação) sobre uma única solicitação de anúncio.
Veja 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); } ...
Pronto! Seu app está pronto para exibir anúncios de banner da AdMob.
Eventos de anúncio
Para personalizar ainda mais o comportamento do seu anúncio, é possível acompanhar vários
eventos no ciclo de vida do anúncio: ao carregar, abrir, fechar e assim por diante. Detecte esses eventos
registrando uma delegação para o EventHandler
apropriado, 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 evento OnAdFailedToLoad
contém argumentos de evento especiais. Ele transmite uma
instância de HandleAdFailedToLoadEventArgs
com um Message
que descreve 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 do anúncio | Descrição |
---|---|
OnAdLoaded |
O evento OnAdLoaded é executado quando o anúncio termina de carregar. |
OnAdFailedToLoad |
O evento OnAdFailedToLoad é invocado quando um anúncio não é carregado. O parâmetro Message descreve o tipo de falha que ocorreu. |
OnAdOpening |
Esse método é invocado quando o usuário toca em um anúncio. Se você estiver usando um pacote de análise para rastrear os cliques, este é um bom lugar para registrar um. |
OnAdClosed |
Quando um usuário retorna ao aplicativo depois de visualizar o URL de destino do anúncio, esse método é invocado. O app pode usá-lo para retomar atividades suspensas ou realizar qualquer outro trabalho necessário para se preparar para a interação. |
OnAdLeavingApplication |
Esse método é invocado após onAdOpened , quando o clique de um usuário abre outro app (como a Google Play Store), colocando o app atual em segundo plano. |
Tamanhos de banner
A tabela abaixo lista os tamanhos de banner padrão.
Tamanho em dp (L x A) | Descrição | Disponibilidade | Constante AdSize |
---|---|---|---|
320 x 50 | Banner padrão | Smartphones e tablets | BANNER |
320 x 100 | Banner grande | Smartphones e tablets | LARGE_BANNER |
300 x 250 | Retângulo médio IAB | Smartphones e tablets | MEDIUM_RECTANGLE |
468 x 60 | Banner em tamanho original do IAB | Tablets | FULL_BANNER |
728 x 90 | Quadro de Liderança do IAB | Tablets | LEADERBOARD |
Largura fornecida x Altura adaptável | Banner adaptativo | Smartphones e tablets | N/A |
Largura da tela x 32|50|90 | Banner inteligente | Smartphones e tablets | SMART_BANNER |
Saiba mais sobre banners adaptativos para substituir os banners inteligentes. |
Limpar anúncios de banner
Quando terminar de BannerView
, chame o método Destroy()
antes de descartar sua referência:
bannerView.Destroy();
Isso notifica o plug-in de que o objeto não é mais usado e que a memória ocupada pode ser recuperada. A falha em chamar esse método resulta em vazamentos de memória.