Formati degli annunci nativi personalizzati

I publisher di Ad Manager hanno la possibilità di creare i propri formati degli annunci nativi definendo elenchi personalizzati di asset. Questi sono chiamati formati degli annunci nativi personalizzati e possono essere utilizzati con gli annunci basati su prenotazione. 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.

Carica un annuncio nativo personalizzato

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

  • L'elemento formatId dell'annuncio personalizzato che l'elemento AdLoader deve richiedere. A ogni formato dell'annuncio nativo personalizzato è associato un valore ID formato. Questo parametro indica il formato che la tua app vuole che venga richiesto da AdLoader.
  • 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 personalizzarla 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 dell'annuncio nativo personalizzato, ForCustomNativeAd() può essere chiamato più volte con ID formato diversi per preparare il caricatore di annunci per più di un possibile formato dell'annuncio nativo personalizzato.

Eventi degli annunci nativi personalizzati

La classe AdLoader fornisce eventi relativi agli annunci, di tipo EventHandler, per informarti sul ciclo di vita di un annuncio nativo personalizzato. L'esempio seguente mostra come registrarsi agli eventi degli annunci nativi personalizzati su 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 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);
}

Formati degli annunci nativi personalizzati display

Gli annunci nativi personalizzati supportano un numero qualsiasi di asset immagine e di testo definiti dall'utente. L'accesso a questi asset avviene 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 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;
    ...
}

Gestisci le impressioni e i clic degli annunci nativi personalizzati

Con l'annuncio nativo personalizzato, la tua app è responsabile della registrazione delle impressioni e della segnalazione degli eventi di clic all'SDK.

Registra 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 è stato fatto clic su un asset, chiama il metodo PerformClick() sull'oggetto CustomNativeAd corrispondente e passa il nome dell'asset su cui è stato fatto clic. Ad esempio, se nel tuo formato personalizzato avevi un asset denominato "MainImage" e volevi generare un report su un clic sulla texture corrispondente a quell'asset, il codice sarebbe simile al seguente:

customNativeAd.PerformClick("MainImage");

Rispondi 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 deep link dell'annuncio e avvia il primo che risolve.

  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 deep link o a un browser web, fornisci un Action<CustomNativeAd, string> facoltativo nel metodo AdLoader.Builder.ForCustomNativeAd(). Impostando questa azione di clic personalizzata, esegui l'override del comportamento di 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.");
}