Formatos de anúncios nativos personalizados

Os publishers do Google Ad Manager podem criar os próprios formatos de anúncio nativo definindo listas personalizadas de recursos. Esses formatos de anúncios nativos personalizados podem ser usados com anúncios de reserva. Com os formatos de 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 CustomNativeTemplateAd.

Carregar formatos de anúncios nativos personalizados

Os formatos de anúncios nativos personalizados são carregados usando objetos AdLoader. O método forCustomTemplateAd() configura o AdLoader para processar formatos de anúncios nativos personalizados. Cada formato de anúncio nativo personalizado tem um valor de ID de modelo associado a ele. Você precisa especificar o ID do modelo do formato de anúncio nativo personalizado que o app quer que o AdLoader solicite. Pesquise os IDs de modelo na interface do Ad Manager para encontrar o ID do formato de anúncio nativo que você quer solicitar.

void LoadCustomNativeTemplateAd()
{
    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 modelo de criativo, forCustomTemplateAd() pode ser chamado várias vezes com IDs de modelo diferentes para preparar o Adloader para mais de um formato de anúncio nativo personalizado possível. O snippet de código abaixo demonstra como preparar um AdLoader para vários modelos de formato de anúncio nativo personalizado.

void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170")
        .forCustomNativeAd("10063171")
        .forCustomNativeAd("10063172")
        .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

Eventos de anúncio de formato de anúncio nativo personalizado

A classe AdLoader fornece eventos de anúncio do tipo EventHandler para notificar você sobre o ciclo de vida de um formato de anúncio nativo personalizado. O exemplo abaixo demonstra como se inscrever para eventos de anúncios nativos personalizados:

adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

O método HandleCustomNativeAdLoaded() contém um parâmetro CustomNativeEventArgs. O formato de anúncio nativo personalizado carregado pode ser acessado usando este parâmetro de evento, conforme mostrado abaixo:

private boolean adLoaded;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
}

Exibir formatos de anúncios nativos personalizados

Os formatos de 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 CustomNativeTemplateAd, que fornece métodos GetTexture2D() e GetText() que usam o ID da variável de um campo de modelo como parâmetro.

O exemplo de implementação a seguir extrai recursos de um CustomNativeTemplateAd:

public const int NATIVE_AD_TEMPLATE_1 = 10063170;
public const int NATIVE_AD_TEMPLATE_2 = 10063171;

private boolean adLoaded;
private Texture2d mainImageTexture;
private string headline;
private CustomNativeTemplateAd customNativeTemplateAd;
...

void Update()
{
    if(adLoaded)
    {
        mainImageTexture = customNativeTemplateAd.GetTexture2D("MainImage");
        headline = customNativeTemplateAd.GetText("Headline");

        string templateId = customNativeTemplateAd.GetCustomTemplateId();
        if (templateId == NATIVE_AD_TEMPLATE_1)
        {
            ...
        }
        else if (templateId == NATIVE_AD_TEMPLATE_2)
        {
            ...
        }
        ...
        adLoaded = false;
    }
}
...

void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
    ...
}

Processar cliques e impressões de formatos de anúncios nativos personalizados

Com os formatos de anúncios nativos personalizados, seu app é responsável por registrar as impressões e informar os eventos de cliques ao SDK.

Registrar impressões

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

customNativeTemplateAd.RecordImpression();

Gerar relatórios de cliques

Para informar ao SDK que um recurso recebeu um clique, chame o método PerformClick() no CustomNativeTemplateAd correspondente e transmita o nome do recurso que foi clicado. Por exemplo, se você tiver um recurso chamado "MainImage" no seu formato de anúncio nativo personalizado e quiser informar um clique na textura correspondente a esse recurso, seu código vai ficar assim:

customNativeTemplateAd.PerformClick("MainImage");

Quando um clique é informado em um anúncio de modelo personalizado, há duas respostas possíveis do SDK, que são executadas nesta ordem:

  1. Localizar um resolvedor de conteúdo para o URL de link direto do anúncio e iniciar o primeiro que conseguir resolver.
  2. Abra um navegador e acesse o URL de destino tradicional do anúncio.

Ações de clique personalizadas

Você pode decidir processar a ação de clique por conta própria nos seus formatos de anúncios nativos personalizados em vez de levar o usuário a um link direto ou navegador da Web. Para isso, forneça um Action<CustomNativeTemplateAd, string> opcional no método AdLoader.Builder.forCustomTemplateAd(). Ao definir essa ação de clique personalizada, você substitui o comportamento de clique do SDK descrito acima. Confira um exemplo que usa uma ação de clique personalizada para registrar um clique em um determinado recurso:

private void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170", HandleCustomNativeAdClicked)
        .Build();
    adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
    adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
    adLoader.LoadAd(createAdRequest());
}

private void HandleCustomNativeAdClicked(CustomNativeTemplateAd customNativeTemplateAd, string assetName)
{
    Debug.Log("Native ad asset with name " + assetName + " was clicked.");
}