As visualizações de banner são anúncios gráficos ou de texto retangulares que ocupam um lugar 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.
Este guia mostra como integrar visualizações de banner a um app Unity. Além de snippets de código e instruções, ele também inclui informações sobre o dimensionamento de banners e links para recursos adicionais.
Pré-requisitos
- Concluir o Guia para iniciantes.
Sempre teste com anúncios de teste
O exemplo de código abaixo contém um ID do bloco de anúncios que pode ser usado para solicitar anúncios de teste. Ele foi configurado especificamente para retornar anúncios de teste em vez de anúncios de produção para cada solicitação, o que o torna seguro para uso.
No entanto, depois de registrar um app na interface da Web do Ad Manager e criar seus próprios IDs de bloco de anúncios para uso no app, configure o dispositivo como um dispositivo de teste durante o desenvolvimento.
/21775744923/example/adaptive-banner
Inicializar o SDK dos anúncios para dispositivos móveis
Antes de carregar anúncios, chame
MobileAds.Initialize()
para que o app inicialize o SDK de anúncios para dispositivos móveis. Isso precisa ser feito apenas uma vez, de preferência na inicialização do app.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
Se você estiver usando a mediação, aguarde até que o callback ocorra antes de carregar anúncios, porque isso garante que todos os adaptadores de mediação sejam inicializados.
Exemplo de BannerView
O exemplo de código abaixo detalha como usar a visualização de banner. No exemplo, você
cria uma instância de uma visualização de banner, usa uma
AdManagerAdRequest
para carregar um anúncio na visualização de banner e,
em seguida, estende os recursos dela processando eventos de ciclo de vida.
Criar uma visualização de banner
A primeira etapa para usar uma visualização de banner é criar uma instância dela
em um script C# anexado a um GameObject
.
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/adaptive-banner";
AdManagerBannerView _bannerView;
/// <summary>
/// Creates a 320x50 banner view at top of the screen.
/// </summary>
public void CreateBannerView()
{
Debug.Log("Creating banner view");
// If we already have a banner, destroy the old one.
if (_bannerView != null)
{
DestroyAd();
}
// Create a 320x50 banner at top of the screen
_bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
}
O construtor de um AdManagerBannerView
tem os seguintes
parâmetros:
adUnitId
: o ID do bloco de anúncios de onde oAdManagerBannerView
precisa carregar anúncios.AdSize
: o tamanho do anúncio que você quer usar. Consulte Tamanhos de banner para mais detalhes.AdPosition
: a posição em que as visualizações do banner precisam ser colocadas. O enumAdPosition
lista os valores de posição de anúncio válidos.
Observe como diferentes blocos de anúncios são usados dependendo da plataforma. É necessário usar uma unidade de anúncio do iOS para fazer solicitações de anúncio no iOS e uma unidade de anúncio do Android para fazer solicitações no Android.
(Opcional) Criar uma visualização de banner com uma posição personalizada
Para ter mais controle sobre onde um AdManagerBannerView
é
colocado na tela do que o oferecido pelos valores AdPosition
, use o construtor
que tem coordenadas x e y como parâmetros:
// Create a 320x50 banner views at coordinate (0,50) on screen.
_bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, 0, 50);
O canto superior esquerdo do AdManagerBannerView
é
posicionado nos valores x e y transmitidos ao construtor, em que a origem é
o canto superior esquerdo da tela.
(Opcional) Criar uma visualização de banner com um tamanho personalizado
Além de usar uma constante AdSize
, você também pode especificar um tamanho personalizado
para o anúncio:
// Use the AdSize argument to set a custom size for the ad.
AdSize adSize = new AdSize(250, 250);
_bannerView = new AdManagerBannerView(_adUnitId, adSize, AdPosition.Bottom);
(Opcional) Vários tamanhos de anúncio
O Ad Manager permite especificar vários tamanhos de anúncio que podem ser qualificados para veiculação
em um AdManagerBannerView
. Antes de implementar esse recurso no SDK, crie
um item de linha segmentado para os mesmos blocos de anúncios associados a criativos de tamanhos diferentes.
No app, transmita vários parâmetros AdSize
para ValidAdSizes
:
var adView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
adView.ValidAdSizes = new List<AdSize>
{
AdSize.Banner, new AdSize(120, 20), new AdSize(250, 250),
};
Se o AdManagerAdView
mudar de tamanho no momento da atualização, o layout poderá
se adaptar automaticamente ao novo tamanho. O padrão de AdManagerAdView
é o tamanho
transmitido no primeiro parâmetro até que o próximo anúncio seja retornado.
Carregar um anúncio de banner
Depois que o AdManagerBannerView
estiver em vigor, carregue
um anúncio com o método LoadAd()
na classe
AdManagerBannerView
. Ele usa um parâmetro que contém
informações de execução, como informações de segmentação, rótulos de exclusão e o ID fornecido
pelo editor.
/// <summary>
/// Creates the banner view and loads a banner ad.
/// </summary>
public void LoadAd()
{
// create an instance of a banner view first.
if(_bannerView == null)
{
CreateAdManagerBannerView();
}
// create our request used to load the ad.
var adRequest = new AdManagerAdRequest();
// send the request to load the ad.
Debug.Log("Loading banner ad.");
_bannerView.LoadAd(adRequest);
}
Ouvir eventos de visualização de banner
Para personalizar o comportamento do seu anúncio, você pode se conectar a vários eventos no ciclo de vida do anúncio, como carregamento, abertura ou fechamento. Para detectar esses eventos, registre um delegado:
/// <summary>
/// listen to events the banner view may raise.
/// </summary>
private void ListenToAdEvents()
{
// Raised when an ad is loaded into the banner view.
_bannerView.OnBannerAdLoaded += () =>
{
Debug.Log("Banner view loaded an ad with response : "
+ _bannerView.GetResponseInfo());
};
// Raised when an ad fails to load into the banner view.
_bannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
{
Debug.LogError("Banner view failed to load an ad with error : "
+ error);
};
// Raised when the ad is estimated to have earned money.
_bannerView.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Banner view paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
_bannerView.OnAdImpressionRecorded += () =>
{
Debug.Log("Banner view recorded an impression.");
};
// Raised when a click is recorded for an ad.
_bannerView.OnAdClicked += () =>
{
Debug.Log("Banner view was clicked.");
};
// Raised when an ad opened full screen content.
_bannerView.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Banner view full screen content opened.");
};
// Raised when the ad closed full screen content.
_bannerView.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Banner view full screen content closed.");
};
}
Destruir a visualização do banner
Ao terminar de usar a visualização de banner, chame Destroy()
para liberar
os recursos.
/// <summary>
/// Destroys the banner view.
/// </summary>
public void DestroyAd()
{
if (_bannerView != null)
{
Debug.Log("Destroying banner view.");
_bannerView.Destroy();
_bannerView = null;
}
}
Pronto! O app agora está pronto para mostrar anúncios em banner.
Atualizar um anúncio
Se você configurou o bloco de anúncios para atualização, não é necessário solicitar outro anúncio quando ele não é carregado. O SDK dos anúncios para dispositivos móveis do Google respeita qualquer taxa de atualização especificada na interface do Ad Manager. Se você não tiver ativado a atualização, faça uma nova solicitação. Para mais detalhes sobre a atualização de blocos de anúncios, como definir uma taxa de atualização, consulte Taxa de atualização dos anúncios em apps para dispositivos móveis.
Tamanhos de banner
A tabela abaixo lista os tamanhos de banner padrão.
Tamanho em dp (LxA) | Descrição | Disponibilidade | Constante AdSize |
---|---|---|---|
320 x 50 | Banner padrão | Telefones e tablets | BANNER |
320 x 100 | Banner grande | Telefones e tablets | LARGE_BANNER |
300 x 250 | Retângulo médio IAB | Telefones e tablets | MEDIUM_RECTANGLE |
468 x 60 | Banner de tamanho máximo do IAB | Tablets | FULL_BANNER |
728 x 90 | Placar de líderes do IAB | Tablets | LEADERBOARD |
Largura fornecida x Altura adaptável | Banner adaptativo | Telefones e tablets | N/A |
Largura da tela x 32|50|90 | Banner inteligente | Telefones e tablets | SMART_BANNER |
Saiba mais sobre os banners adaptativos, que substituem os banners inteligentes. |
Eventos de apps
Com os eventos de apps, você pode criar anúncios que enviam mensagens para o código do app. O app pode realizar ações com base nessas mensagens.
Você pode detectar eventos de app específicos do Ad Manager usando AppEvent
. Esses eventos
podem ocorrer a qualquer momento durante o ciclo de vida do anúncio, mesmo antes de o carregamento ser chamado.
namespace GoogleMobileAds.Api.AdManager;
/// The App event message sent from the ad.
public class AppEvent
{
// Name of the app event.
string Name;
// Argument passed from the app event.
string Value;
}
OnAppEventReceived
é gerado quando um evento do app ocorre em um anúncio. Confira um
exemplo de como processar esse evento no código:
_bannerview.OnAppEventReceived += (AppEvent args) =>
{
Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};
Confira um exemplo que mostra como mudar a cor de plano de fundo do app dependendo de um evento do app com um nome de cor:
_bannerview.OnAppEventReceived += (AppEvent args) =>
{
if (args.Name == "color")
{
Color color;
if (ColorUtility.TryParseColor(arg.Value, out color))
{
gameObject.GetComponent<Renderer>().material.color = color;
}
}
};
E este é o criativo correspondente que envia o evento do app de cores:
<html>
<head>
<script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Send a color=green event when ad loads.
admob.events.dispatchAppEvent("color", "green");
document.getElementById("ad").addEventListener("click", function() {
// Send a color=blue event when ad is clicked.
admob.events.dispatchAppEvent("color", "blue");
});
});
</script>
<style>
#ad {
width: 320px;
height: 50px;
top: 0px;
left: 0px;
font-size: 24pt;
font-weight: bold;
position: absolute;
background: black;
color: white;
text-align: center;
}
</style>
</head>
<body>
<div id="ad">Carpe diem!</div>
</body>
</html>
Outros recursos
- Exemplo HelloWorld: uma implementação mínima de todos os formatos de anúncio.