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 solicitarAdLoader
. Cada formato de anuncio nativo personalizado tiene un valor de ID de formato asociado. Este parámetro indica qué formato desea queAdLoader
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:
Busca un solucionador de contenido para la URL del vínculo directo del anuncio y comienza el primero que se resuelva.
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.");
}