Os editores do Ad Manager têm a opção de criar os próprios formatos de anúncios nativos definindo listas personalizadas de recursos. Eles são chamados de formatos de anúncios nativos personalizados e podem ser usados com anúncios reservados. Os anúncios nativos personalizados permitem que os editores transmitam dados arbitrários de imagem e string para os apps. 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
formatId
do anúncio personalizado que oAdLoader
precisa solicitar. Cada formato de anúncio nativo personalizado tem um valor de ID de formato associado. Esse parâmetro indica o formato que seu app quer que aAdLoader
solicite. - Uma
Action<CustomNativeAd, string>
opcional que será invocada quando o usuário clicar no anúncio.
Os anúncios nativos personalizados são carregados pela classe AdLoader
, que tem uma classe
AdLoader.Builder
própria para personalizá-la durante a criação. O método
ForCustomNativeAd()
configura o AdLoader
para processar anúncios nativos.
void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/6499/example/native")
.ForCustomNativeAd("10063170")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Como 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 possível
de anúncio nativo personalizado.
Eventos de anúncio nativo personalizados
A classe AdLoader
fornece eventos de anúncios do tipo EventHandler
para notificar
você sobre o ciclo de vida de um anúncio nativo personalizado. O exemplo abaixo demonstra como
registrar-se em eventos de anúncios nativos personalizados 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 meio desse 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
. Para acessar a mensagem de erro, chame 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 vários recursos de imagem e
texto definidos pelo usuário. Esses recursos são acessados pela classe CustomNativeAd
, que
fornece os métodos GetTexture2D()
e GetText()
, que usam o ID da variável de um
campo de formato como parâmetro.
Veja 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 o anúncio nativo personalizado, o app é responsável por registrar impressões e relatar eventos de clique ao SDK.
Registrar impressões
Para registrar uma impressão de um anúncio personalizado, chame o método RecordImpression()
na
CustomNativeAd
correspondente:
customNativeAd.RecordImpression();
Informar cliques
Para informar ao SDK que ocorreu um clique em um recurso, chame o método PerformClick()
no CustomNativeAd
correspondente e transmita o nome do recurso que foi clicado. Por exemplo, se você tivesse um recurso no seu formato
personalizado chamado "quot;MainImage" e quisesse informar um clique na textura que
correspondia a esse recurso, o código seria assim:
customNativeAd.PerformClick("MainImage");
Responda a ações de clique personalizadas
Quando um clique é relatado em um anúncio personalizado, as possíveis respostas do SDK são tentadas nesta ordem:
Localize um resolvedor de conteúdo para o URL do link direto do anúncio e inicie o primeiro que for resolvido.
Abra um navegador e acesse o URL de destino tradicional do anúncio.
Caso queira processar a ação de clique para seus formatos de anúncios nativos personalizados
em vez de direcionar o usuário para um link direto ou navegador da Web, forneça uma
Action<CustomNativeAd, string>
opcional no método
AdLoader.Builder.ForCustomNativeAd()
. Ao definir essa ação de clique
personalizada, você substitui o comportamento de cliques do SDK. Este é um exemplo que usa uma ação de clique personalizado para registrar um clique para um determinado recurso:
private void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/6499/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.");
}