Formatos de anúncios nativos personalizados

Os editores do Ad Manager têm a opção de criar seus próprios formatos de anúncios nativos definindo listas personalizadas de recursos. Eles são chamados de formatos de anúncio nativo personalizados e podem ser usados com anúncios reservados. Os anúncios nativos personalizados permitem que os editores transmitam dados de imagem e string arbitrários 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 a AdLoader precisa solicitar. Cada formato de anúncio nativo personalizado tem um valor de ID de formato associado a ele. Esse parâmetro indica qual formato o app quer que a AdLoader solicite.
  • Um Action<CustomNativeAd, string> opcional para 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());
}

Como um único bloco de anúncio 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 possível formato de anúncio nativo personalizado.

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 se registrar para 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 usando 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);
}

Mostrar 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 oferece 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 o anúncio nativo personalizado, seu app é responsável por registrar impressões e relatar eventos de clique ao SDK.

Impressões de registro

Para registrar uma impressão de um anúncio personalizado, chame o método RecordImpression() no CustomNativeAd correspondente:

customNativeAd.RecordImpression();

Informar cliques

Para informar ao SDK que um clique ocorreu 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 formato personalizado "MainImage" e quisesse informar um clique na textura que corresponde a esse recurso, seu código seria assim:

customNativeAd.PerformClick("MainImage");

Responder a ações de clique personalizadas

Quando um clique é informado em um anúncio personalizado, as possíveis respostas do SDK são tentadas nesta ordem:

  1. Localize um solucionador de conteúdo para o URL do link direto do anúncio e inicie o primeiro que for resolvido.

  2. Abra um navegador e navegue até o URL de destino tradicional do anúncio.

Se você quiser processar a ação de clique nos seus formatos de anúncios nativos personalizados em vez de direcionar 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.");
}