Formatos de anuncios nativos personalizados

Los publicadores de Google Ad Manager pueden crear sus propios formatos de anuncios nativos definiendo listas personalizadas de recursos. Estos formatos de anuncios nativos personalizados se pueden usar con anuncios reservados. Los formatos personalizados de anuncios nativos permiten a los publicadores pasar datos arbitrarios de imágenes y cadenas a sus aplicaciones. Estos datos se representan con un objeto CustomNativeTemplateAd.

Carga formatos de anuncios nativos personalizados

Los formatos de anuncios nativos personalizados se cargan con objetos AdLoader. El método forCustomTemplateAd() configura el objeto AdLoader para controlar formatos de anuncios nativos personalizados. Cada formato de anuncio nativo personalizado tiene un valor de ID de plantilla asociado. Debes especificar el ID de la plantilla del formato del anuncio nativo personalizado que tu app desea que solicite el objeto AdLoader. Busca los IDs de plantilla en la IU de Ad Manager para encontrar el ID de la plantilla del formato de anuncio nativo que deseas solicitar.

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

Dado que se puede configurar una sola unidad de anuncios para publicar más de una plantilla de creatividad, se puede llamar a forCustomTemplateAd() varias veces con diferentes IDs de plantilla para preparar el Adloader para más de un formato de anuncio nativo personalizado posible. En el siguiente fragmento de código, se muestra cómo preparar un AdLoader para varias plantillas de formato de anuncio 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 anuncios de formatos de anuncios nativos personalizados

La clase AdLoader proporciona eventos de anuncios de tipo EventHandler para notificarte sobre el ciclo de vida de un formato de anuncio nativo personalizado. En el siguiente ejemplo, se muestra cómo registrarse para recibir eventos de anuncios en formato de anuncios nativos personalizados:

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

El método HandleCustomNativeAdLoaded() contiene un parámetro CustomNativeEventArgs. Se puede acceder al formato de anuncio nativo personalizado que se cargó a través de este parámetro del evento, como se muestra a continuación:

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

Muestra formatos personalizados de anuncios nativos

Los formatos personalizados de los anuncios nativos admiten cualquier cantidad de recursos de imagen y texto definidos por el usuario. Se accede a estos recursos a través de la clase CustomNativeTemplateAd, que proporciona métodos GetTexture2D() y GetText() que toman el ID de variable de un campo de plantilla como parámetro.

En el siguiente ejemplo de implementación, se extraen recursos de un 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;
    ...
}

Controla los clics y las impresiones de los formatos de anuncios nativos personalizados

Con los formatos de anuncios nativos personalizados, tu app es responsable de registrar las impresiones y de informar los eventos de clic al SDK.

Registra impresiones

Para registrar una impresión de un formato de anuncio nativo personalizado, llama al método RecordImpression() en el CustomNativeTemplateAd correspondiente:

customNativeTemplateAd.RecordImpression();

Informa los clics

Para informar al SDK que se hizo clic en un recurso, llama al método PerformClick() en el CustomNativeTemplateAd correspondiente y pasa el nombre del recurso en el que se hizo clic. Por ejemplo, si tuvieras un recurso en tu formato de anuncio nativo personalizado llamado "MainImage" y quisieras informar un clic en la textura correspondiente a ese recurso, tu código se vería de la siguiente manera:

customNativeTemplateAd.PerformClick("MainImage");

Cuando se registra un clic en un anuncio de plantilla personalizada, el SDK puede responder de dos maneras posibles, que se intentan en este orden:

  1. Localiza un agente de resolución de contenido para la URL de vínculo directo del anuncio e inicie el primero que la resuelva.
  2. Abre un navegador y navega a la URL de destino tradicional del anuncio.

Acciones de clic personalizadas

Es posible que decidas administrar la acción de clic por tu cuenta para tus formatos de anuncios nativos personalizados en lugar de llevar al usuario a un vínculo directo o a un navegador web. Para ello, proporciona un Action<CustomNativeTemplateAd, string> opcional en el método AdLoader.Builder.forCustomTemplateAd(). Si configuras esta acción de clic personalizada, anularás el comportamiento de clic del SDK que se describió anteriormente. A continuación, se muestra un ejemplo que usa una acción de clic personalizada para registrar un clic en un recurso determinado:

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.");
}