Os publishers do Ad Manager têm a opção de criar os próprios formatos de anúncios nativos definindo listas de recursos personalizadas. Eles são conhecidos como formatos de anúncios nativos
personalizados e podem ser usados
com anúncios de reserva. Com os anúncios nativos personalizados, os publishers podem transmitir dados arbitrários de imagem
e string para os apps deles. Esses dados são representados por um objeto CustomNativeAd.
Carregar um anúncio nativo personalizado
Os anúncios nativos personalizados são carregados usando objetos AdLoader. O método ForCustomNativeAd()
configura o AdLoader para processar anúncios nativos personalizados. Há dois parâmetros para esse método:
- O
formatIddo anúncio personalizado que oAdLoaderprecisa solicitar. Cada formato tem um valor de ID associado a ele. Esse parâmetro indica o formato que o app quer que oAdLoadersolicite. - Um
Action<CustomNativeAd, string>opcional que será invocado quando o usuário clicar no anúncio.
Os anúncios nativos personalizados são carregados pela classe AdLoader, que tem a própria classe AdLoader.Builder para personalização durante a criação. O método
ForCustomNativeAd() configura o AdLoader para processar anúncios nativos.
void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.ForCustomNativeAd("10063170")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Já que um único bloco de anúncios pode ser configurado para veicular mais de um formato de anúncio nativo
personalizado, ForCustomNativeAd() pode ser chamado várias vezes com IDs de
formato diferentes para preparar o carregador de anúncios para mais de um formato de anúncio nativo
personalizado possível.
Eventos de anúncios nativos personalizados
A classe AdLoader fornece eventos de anúncio, do tipo EventHandler, para notificar você sobre o ciclo de vida de um anúncio nativo personalizado. O exemplo abaixo demonstra como
registrar eventos personalizados de anúncios nativos em um carregador de anúncios:
private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
O método HandleCustomNativeAdLoaded() contém um parâmetro CustomNativeAdEventArgs. O anúncio nativo personalizado carregado pode ser acessado por esse
parâmetro de evento, conforme mostrado abaixo:
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
this.customNativeAd = args.nativeAd;
}
O método HandleCustomNativeAdFailedToLoad() contém um
parâmetro AdFailedToLoadEventArgs. A mensagem de erro pode ser acessada chamando o método GetMessage no campo LoadAdError, conforme mostrado abaixo:
void HandleCustomNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
string message = args.LoadAdError.GetMessage();
Debug.Log("Ad Loader fail event received with message: " + message);
}
Exibir formatos de anúncios nativos personalizados
Os anúncios nativos personalizados oferecem suporte a qualquer número de recursos de imagem e texto definidos pelo usuário. Esses recursos são acessados pela classe CustomNativeAd, que
fornece métodos GetTexture2D() e GetText() que usam o ID da variável de um
campo de formato como parâmetro.
Confira um exemplo de implementação que acessa recursos de um anúncio nativo personalizado:
private bool adLoaded;
private Texture2D mainImageTexture;
private string headline;
private CustomNativeAd customNativeAd;
...
void Update()
{
if(adLoaded)
{
mainImageTexture = customNativeAd.GetTexture2D("MainImage");
headline = customNativeAd.GetText("Headline");
adLoaded = false;
}
}
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
customNativeAd = args.nativeAd;
adLoaded = true;
...
}
Processar impressões e cliques de anúncios nativos personalizados
Com anúncios nativos personalizados, seu app é responsável por registrar impressões e informar eventos de cliques ao SDK.
Registrar impressões
Para registrar uma impressão de um anúncio personalizado, chame o método RecordImpression() no
CustomNativeAd correspondente:
customNativeAd.RecordImpression();
Gerar relatórios de cliques
Para informar ao SDK que um recurso recebeu um clique, chame o
método PerformClick() no CustomNativeAd correspondente e passe o nome
do recurso que foi clicado. Por exemplo, se você tiver um recurso chamado "MainImage" no seu formato personalizado
e quiser informar um clique na textura correspondente a esse recurso, seu código vai ficar assim:
customNativeAd.PerformClick("MainImage");
Responder a ações de clique personalizadas
Quando um clique é informado em um anúncio personalizado, as respostas possíveis do SDK são tentadas nesta ordem:
Localizar um resolvedor de conteúdo para o URL de link direto do anúncio e iniciar o primeiro que conseguir resolver.
Abra um navegador e acesse o URL de destino tradicional do anúncio.
Se você quiser processar a ação de clique dos seus formatos de anúncio nativo personalizados
em vez de levar o usuário a um link direto ou navegador da Web, forneça um
Action<CustomNativeAd, string> opcional no
método AdLoader.Builder.ForCustomNativeAd(). Ao definir essa ação de clique personalizada, você substitui o comportamento de clique do SDK. Confira um exemplo que usa
uma ação de clique personalizada para registrar um clique em um determinado recurso:
private void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.ForCustomNativeAd("10063170", HandleCustomNativeAdClicked)
.Build();
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.LoadAd(createAdRequest());
}
private void HandleCustomNativeAdClicked(CustomNativeAd customNativeAd, string assetName)
{
Debug.Log("Custom Native ad asset with name " + assetName + " was clicked.");
}