Formati degli annunci nativi personalizzati

I publisher 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 ai publisher di trasmettere dati arbitrari su immagini e stringhe alle proprie 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 AdLoader dovrebbe richiedere. A ogni formato dell'annuncio nativo personalizzato è associato un valore ID formato. Questo parametro indica in quale formato l'app richiede il 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("/6499/example/native")
            .ForCustomNativeAd("10063170")
            .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

Poiché è possibile configurare una singola unità pubblicitaria 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 a creare più di un possibile formato dell'annuncio nativo.

Eventi degli annunci nativi personalizzati

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

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

Il metodo HandleCustomNativeAdLoaded() contiene un parametro CustomNativeAdEventArgs. Puoi accedere all'annuncio nativo personalizzato che è stato 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. Il messaggio di errore è accessibile 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);
}

Mostra formati degli annunci nativi personalizzati

Gli annunci nativi personalizzati supportano qualsiasi numero di asset di testo e immagine definiti dall'utente. Si accede a questi asset tramite la classe CustomNativeAd, che fornisce i metodi GetTexture2D() e GetText() che utilizzano l'ID variabile di un campo 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;
    ...
}

Gestire impressioni e clic degli annunci nativi personalizzati

Con l'annuncio nativo personalizzato, l'app è responsabile della registrazione delle impressioni e della generazione di report sugli eventi di clic nell'SDK.

Registra impressioni

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

customNativeAd.RecordImpression();

Clic su report

Per segnalare all'SDK che si è verificato un clic su un asset, chiama il metodo PerformClick() nell'elemento CustomNativeAd corrispondente e trasmetti il nome dell'asset su cui è stato fatto clic. Ad esempio, se avessi un asset nel formato personalizzato denominato "MainImage" e volessi segnalare un clic sulla texture che corrisponde a tale asset, il codice avrebbe il seguente aspetto:

customNativeAd.PerformClick("MainImage");

Rispondere alle azioni di clic personalizzati

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

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

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

Se vuoi gestire personalmente l'azione di clic per i formati di annunci nativi personalizzati anziché indirizzare l'utente a un link diretto o un browser web, fornisci un Action<CustomNativeAd, string> facoltativo nel metodo AdLoader.Builder.ForCustomNativeAd(). L'impostazione di questa azione di clic personalizzata sostituisce il 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("/6499/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.");
}