Formatos personalizados de anuncios nativos

Los publicadores de Ad Manager tienen la opción de crear sus propios formatos de anuncios nativos definiendo listas personalizadas de recursos. Estos se denominan formatos de anuncios nativos personalizados y se pueden usar con anuncios reservados. Los anuncios nativos personalizados permiten a los publicadores pasar datos arbitrarios de cadenas y de imágenes a sus aplicaciones. 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 los anuncios nativos personalizados. Existen dos parámetros para este método:

  • Es el formatId del anuncio personalizado que debe solicitar AdLoader. Cada formato de anuncio nativo personalizado tiene un valor de ID de formato asociado. Este parámetro indica qué formato desea que AdLoader solicite tu app.
  • 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 controlar los anuncios nativos.

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

Debido a que se puede configurar una sola unidad de anuncios para publicar más de un formato de anuncio nativo personalizado, se puede llamar a ForCustomNativeAd() varias veces con diferentes IDs de formato para preparar el cargador de anuncios para más de un formato de anuncio nativo personalizado posible.

Eventos de anuncios nativos personalizados

La clase AdLoader proporciona eventos de anuncios, de tipo EventHandler, para informarte sobre el ciclo de vida de un anuncio nativo personalizado. En el siguiente ejemplo, se muestra cómo registrar 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);
}

Cómo mostrar formatos personalizados de anuncios nativos

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

Este es un ejemplo de implementación que accede a recursos de 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;
    ...
}

Controla las impresiones y los clics de los anuncios nativos personalizados

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

Registra las impresiones

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

customNativeAd.RecordImpression();

Denunciar clics

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

customNativeAd.PerformClick("MainImage");

Cómo responder a acciones de clic personalizadas

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

  1. Busca un solucionador de contenido para la URL del vínculo directo del anuncio y comienza el primero que se resuelva.

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

Si deseas controlar la acción de clic de tus formatos de anuncios nativos personalizados en lugar de dirigir 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. Este es un ejemplo que usa una acción de clic personalizada para registrar un clic en un recurso determinado:

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