Formati degli annunci nativi personalizzati

Gli editori di Ad Manager hanno la possibilità di creare i propri formati di annunci nativi definendo elenchi personalizzati di asset. Questi sono chiamati formati di annunci nativi personalizzati, e possono essere utilizzati con gli annunci riservati. Gli annunci nativi personalizzati consentono agli editori di trasmettere dati di immagini e stringhe arbitrari alle loro app. Questi dati sono rappresentati da un oggetto CustomNativeAd.

Caricare un annuncio nativo personalizzato

Gli annunci nativi personalizzati vengono caricati utilizzando gli oggetti AdLoader. Il metodo ForCustomNativeAd() configura AdLoader per la gestione degli annunci nativi personalizzati. Questo metodo ha due parametri:

  • formatId dell'annuncio personalizzato che AdLoader deve richiedere. Ogni formato dell'annuncio nativo personalizzato ha un valore ID formato associato. Questo parametro indica il formato che l'app vuole che AdLoader richieda.
  • Action<CustomNativeAd, string> facoltativo da richiamare quando l'utente fa clic sull'annuncio.

Gli annunci nativi personalizzati vengono caricati tramite la AdLoader classe, che ha la propria AdLoader.Builder classe per personalizzarla durante la creazione. Il metodo ForCustomNativeAd() configura AdLoader per la gestione degli annunci nativi.

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

Poiché una singola unità pubblicitaria può essere configurata per pubblicare più formati di annunci nativi personalizzati, ForCustomNativeAd() può essere chiamato più volte con ID formato diversi per preparare il caricatore di annunci per più formati di annunci nativi personalizzati possibili.

Eventi di annunci nativi personalizzati

La classe AdLoader fornisce eventi di annunci, di tipo EventHandler, per informarti sul ciclo di vita di un annuncio nativo personalizzato. L'esempio seguente mostra come registrarsi per gli eventi di annunci nativi personalizzati in un caricatore di annunci:

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

Il metodo HandleCustomNativeAdLoaded() contiene un parametro CustomNativeAdEventArgs. È possibile accedere all'annuncio nativo personalizzato caricato tramite questo parametro dell'evento, come mostrato di seguito:

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

Il metodo HandleCustomNativeAdFailedToLoad() contiene un parametro AdFailedToLoadEventArgs. È possibile accedere al messaggio di errore chiamando il metodo GetMessage sul campo LoadAdError, come mostrato di seguito:

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

Visualizzare i formati di annunci nativi personalizzati

Gli annunci nativi personalizzati supportano un numero qualsiasi di asset di immagini e testo definiti dall'utente. È possibile accedere a questi asset tramite la classe CustomNativeAd, che fornisce i metodi GetTexture2D() e GetText() che accettano l'ID variabile di un campo di formato come parametro.

Di seguito è riportato un esempio di implementazione che accede agli asset di un annuncio nativo personalizzato:

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

Gestire le impressioni e i clic degli annunci nativi personalizzati

Con gli annunci nativi personalizzati, la tua app è responsabile della registrazione delle impressioni e della segnalazione degli eventi di clic all'SDK.

Registrare le impressioni

Per registrare un'impressione per un annuncio personalizzato, chiama il metodo RecordImpression() sul CustomNativeAd corrispondente:

customNativeAd.RecordImpression();

Segnalare i clic

Per segnalare all'SDK che si è verificato un clic su un asset, chiama il metodo PerformClick() sul CustomNativeAd corrispondente e trasmetti il nome dell'asset su cui è stato fatto clic. Ad esempio, se nel formato personalizzato è presente un asset denominato "MainImage" e vuoi segnalare un clic sulla texture corrispondente a quell'asset, il codice sarà simile al seguente:

customNativeAd.PerformClick("MainImage");

Rispondere alle azioni di clic personalizzate

Quando viene segnalato un clic su un annuncio personalizzato, le possibili risposte dell'SDK vengono tentate in questo ordine:

  1. Individua un resolver di contenuti per l'URL del link diretto dell'annuncio e avvia il primo che viene risolto.

  2. Apri un browser e vai all'URL di destinazione tradizionale dell'annuncio.

Se vuoi gestire autonomamente l'azione di clic per i tuoi formati di annunci nativi personalizzati anziché indirizzare l'utente a un link diretto o a un browser web, fornisci un facoltativo Action<CustomNativeAd, string> nel AdLoader.Builder.ForCustomNativeAd() metodo. Se imposti questa azione di clic personalizzata, sostituisci il comportamento di clic dell'SDK. Di seguito è riportato un esempio che utilizza un'azione di clic personalizzata per registrare un clic per un determinato asset:

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