Formati di annunci nativi personalizzati

I publisher Ad Manager hanno la possibilità di creare i propri formati degli annunci nativi definendo elenchi personalizzati di asset. Si tratta dei formati degli annunci nativi personalizzati e possono essere utilizzati con gli annunci riservati. Gli annunci nativi personalizzati consentono ai publisher di trasmettere dati arbitrari di immagini e stringhe alle loro app. Questi dati sono rappresentati da un oggetto CustomNativeAd.

Caricare un annuncio nativo personalizzato

Gli annunci nativi personalizzati vengono caricati utilizzando oggetti AdLoader. Il metodo ForCustomNativeAd() configura AdLoader per gestire gli annunci nativi personalizzati. Esistono due parametri per questo metodo:

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

Gli annunci nativi personalizzati vengono caricati tramite la classe AdLoader, che ha la propria classe AdLoader.Builder per personalizzarli durante la creazione. Il metodo ForCustomNativeAd() configura AdLoader per gestire gli 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ù di un formato di annunci nativi personalizzati, ForCustomNativeAd() può essere chiamata più volte con ID formato diversi per preparare il caricamento degli annunci per più possibili formati di annunci nativi personalizzati.

Eventi degli annunci nativi personalizzati

La classe AdLoader fornisce eventi correlati agli annunci, di tipo EventHandler, per informarti sul ciclo di vita di un annuncio nativo personalizzato. L'esempio seguente mostra come registrarsi per gli eventi degli 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 evento, come mostrato di seguito:

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

Il metodo HandleCustomNativeAdFailedToLoad() contiene un parametro AdFailedToLoadEventArgs. Per accedere al messaggio di errore, chiama il metodo GetMessage nel 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);
}

Pubblicare formati degli annunci nativi personalizzati

Gli annunci nativi personalizzati supportano un numero illimitato di asset di testo e immagine definiti dall'utente. Per accedere a questi asset, utilizza la classe CustomNativeAd, che fornisce i metodi GetTexture2D() e GetText() che prendono l'ID variabile di un campo di formato come parametro.

Ecco un esempio di implementazione che accede agli asset da 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 l'annuncio nativo personalizzato, è la tua app a registrare le impressioni e a registrare gli eventi di clic nell'SDK.

Registrare le impressioni

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

customNativeAd.RecordImpression();

Clic sui report

Per segnalare all'SDK che si è verificato un clic su una risorsa, chiama il metodo PerformClick() su CustomNativeAd corrispondente e passa il nome della risorsa su cui è stato fatto clic. Ad esempio, se nel tuo formato personalizzato hai un asset denominato "MainImage" e vuoi registrare un clic sulla trama corrispondente a quell'asset, il codice sarà il seguente:

customNativeAd.PerformClick("MainImage");

Rispondere alle azioni personalizzate dei clic

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

  1. Individua un risolutore dei contenuti per l'URL del link diretto dell'annuncio e avvia il primo che risolve il problema.

  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 degli annunci nativi personalizzati anziché indirizzare l'utente a un link diretto o a un browser web, fornisci un valore facoltativo Action<CustomNativeAd, string> nel metodo AdLoader.Builder.ForCustomNativeAd(). Se imposti questa azione di clic personalizzata, hai la precedenza sul comportamento dei clic dell'SDK. Ecco 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.");
}