Formatos de anuncios nativos personalizados

Los publicadores de Ad Manager tienen la opción de crear sus propios formatos de anuncios nativos definiendo listas personalizadas de elementos. Estos formatos se denominan formatos de anuncios nativos personalizados y se pueden usar con anuncios reservados. Los anuncios nativos personalizados permiten a los editores pasar imágenes arbitrarias y datos de strings a sus apps. Estos datos se representan con un objeto CustomNativeAd.

Cómo cargar un anuncio nativo personalizado

Los anuncios nativos personalizados se cargan con objetos AdLoader. El método ForCustomNativeAd() configura AdLoader para controlar anuncios nativos personalizados. Hay dos parámetros para este método:

  • Es el formatId del anuncio personalizado que debería solicitar el AdLoader. Cada formato de anuncio nativo personalizado tiene un valor de ID de formato asociado. Este parámetro indica qué formato desea que solicite tu AdLoader.
  • Un Action<CustomNativeAd, string> opcional que se invocará cuando el usuario haga clic en el anuncio

Los anuncios nativos personalizados se cargan a través de la clase AdLoader, que tiene su propia clase AdLoader.Builder para personalizarla durante la creación. El método ForCustomNativeAd() configura AdLoader para administrar anuncios nativos.

void LoadCustomNativeAd()
{
    AdLoader adLoader = new AdLoader.Builder("/6499/example/native")
            .ForCustomNativeAd("10063170")
            .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

Debido a que un solo bloque de anuncios se puede configurar para publicar más de un formato personalizado del anuncio nativo, se puede llamar a ForCustomNativeAd() varias veces con diferentes ID de formato con el fin de preparar el cargador de anuncios para más de un posible formato del anuncio nativo.

Eventos de anuncios nativos personalizados

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

private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

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

void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
    this.customNativeAd = args.nativeAd;
}

El método HandleCustomNativeAdFailedToLoad() contiene un parámetro AdFailedToLoadEventArgs. Para acceder al mensaje de error, llama al método GetMessage en el campo LoadAdError, como se muestra a continuación:

void HandleCustomNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    string message = args.LoadAdError.GetMessage();
    Debug.Log("Ad Loader fail event received with message: " + message);
}

Mostrar formatos de anuncios nativos personalizados

Los anuncios nativos personalizados proporcionan compatibilidad con la cantidad de elementos de imagen y texto definidos por el usuario. Se puede acceder a estos elementos a través de la clase CustomNativeAd, que proporciona los métodos GetTexture2D() y GetText() que toman el ID variable de un campo de formato como parámetro.

A continuación, se muestra un ejemplo de implementación que accede a elementos desde un anuncio 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;
    ...
}

Administrar impresiones y clics de anuncios nativos personalizados

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

Registrar impresiones

Para registrar una impresión para un anuncio personalizado, llama al método RecordImpression() en el CustomNativeAd correspondiente:

customNativeAd.RecordImpression();

Informar clics

Para informar al SDK que se produjo un clic en un elemento, llama al método PerformClick() en el CustomNativeAd correspondiente y pasa el nombre del elemento en el que se hizo clic. Por ejemplo, si tienes un elemento en tu formato personalizado llamado "MainImage" y deseas informar un clic en la textura que corresponde a ese elemento, tu código se vería así:

customNativeAd.PerformClick("MainImage");

Cómo responder a acciones de clics personalizados

Cuando se informa un clic en un anuncio personalizado, las respuestas posibles del SDK se intentan en este orden:

  1. Ubica un agente de resolución de contenido para la URL de vínculo directo del anuncio e inicia el primero que se resuelva.

  2. Abre un navegador y ve a la URL de destino tradicional del anuncio.

Si deseas manejar la acción de clic para tus formatos de anuncios nativos personalizados en lugar de llevar al usuario a un vínculo directo o un navegador web, proporciona un Action<CustomNativeAd, string> opcional en el método AdLoader.Builder.ForCustomNativeAd(). Cuando configuras esta acción de clic personalizada, anulas el comportamiento de clic del SDK. A continuación, te mostramos un ejemplo en el que se usa una acción de clic personalizada para registrar un clic en un elemento determinado:

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