Ad Manager-Publisher haben die Möglichkeit, eigene native Anzeigenformate zu erstellen, indem sie benutzerdefinierte Listen von Assets definieren. Diese werden als benutzerdefinierte native Anzeigenformate bezeichnet und können mit reservierten Anzeigen verwendet werden. Mit benutzerdefinierten nativen Anzeigen können Publisher beliebige Bild- und Stringdaten an ihre Apps übergeben. Diese Daten werden durch ein CustomNativeAd-Objekt dargestellt.
Benutzerdefinierte native Anzeige laden
Benutzerdefinierte native Anzeigen werden mit AdLoader-Objekten geladen. Mit der Methode ForCustomNativeAd() wird die AdLoader für die Verarbeitung benutzerdefinierter nativer Anzeigen konfiguriert. Diese Methode hat zwei Parameter:
- Die
formatIdder benutzerdefinierten Anzeige, die vonAdLoaderangefordert werden soll. Jedem benutzerdefinierten nativen Anzeigenformat ist ein Format-ID-Wert zugeordnet. Dieser Parameter gibt an, in welchem Format Ihre App dieAdLoaderanfordern möchte. - Ein optionales
Action<CustomNativeAd, string>, das aufgerufen wird, wenn der Nutzer auf die Anzeige klickt.
Benutzerdefinierte native Anzeigen werden über die Klasse AdLoader geladen, die eine eigene Klasse AdLoader.Builder hat, um sie bei der Erstellung anzupassen. Mit der Methode
ForCustomNativeAd() wird AdLoader für die Verarbeitung nativer Anzeigen konfiguriert.
void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.ForCustomNativeAd("10063170")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Da ein einzelner Anzeigenblock für die Auslieferung von mehr als einem benutzerdefinierten nativen Anzeigenformat eingerichtet werden kann, kann ForCustomNativeAd() mehrmals mit verschiedenen Format-IDs aufgerufen werden, um das Ladeprogramm für Anzeigen für mehr als ein mögliches benutzerdefiniertes natives Anzeigenformat vorzubereiten.
Benutzerdefinierte native Anzeigenereignisse
Die Klasse AdLoader stellt Anzeigenereignisse vom Typ EventHandler bereit, um Sie über den Lebenszyklus einer benutzerdefinierten nativen Anzeige zu informieren. Im folgenden Beispiel sehen Sie, wie Sie benutzerdefinierte Ereignisse für native Anzeigen in einem Anzeigen-Loader registrieren:
private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
Die HandleCustomNativeAdLoaded()-Methode enthält einen CustomNativeAdEventArgs-Parameter. Auf die geladene benutzerdefinierte native Anzeige kann über diesen Ereignisparameter zugegriffen werden, wie unten gezeigt:
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
this.customNativeAd = args.nativeAd;
}
Die HandleCustomNativeAdFailedToLoad()-Methode enthält einen AdFailedToLoadEventArgs-Parameter. Sie können auf die Fehlermeldung zugreifen, indem Sie die Methode GetMessage für das Feld LoadAdError aufrufen, wie unten dargestellt:
void HandleCustomNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
string message = args.LoadAdError.GetMessage();
Debug.Log("Ad Loader fail event received with message: " + message);
}
Benutzerdefinierte native Anzeigenformate präsentieren
Benutzerdefinierte native Anzeigen unterstützen eine beliebige Anzahl von nutzerdefinierten Bild- und Text-Assets. Auf diese Assets wird über die CustomNativeAd-Klasse zugegriffen, die die Methoden GetTexture2D() und GetText() bereitstellt, die die Variablen-ID eines Formatfelds als Parameter verwenden.
Hier ist ein Beispiel für eine Implementierung, die auf Assets aus einer benutzerdefinierten nativen Anzeige zugreift:
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;
...
}
Impressionen und Klicks benutzerdefinierter nativer Anzeigen verarbeiten
Bei benutzerdefinierten nativen Anzeigen ist Ihre App für das Erfassen von Impressionen und das Melden von Klickereignissen an das SDK verantwortlich.
Impressionen aufzeichnen
Rufen Sie zum Erfassen einer Impression für eine benutzerdefinierte Anzeige die Methode RecordImpression() für das entsprechende CustomNativeAd auf:
customNativeAd.RecordImpression();
Berichtsklicks
Wenn Sie dem SDK melden möchten, dass auf ein Asset geklickt wurde, rufen Sie die Methode PerformClick() für das entsprechende CustomNativeAd auf und übergeben Sie den Namen des Assets, auf das geklickt wurde. Angenommen, Sie haben ein Asset in Ihrem benutzerdefinierten Format namens „MainImage“ und möchten einen Klick auf die Textur melden, die diesem Asset entspricht. Ihr Code würde dann so aussehen:
customNativeAd.PerformClick("MainImage");
Auf benutzerdefinierte Klickaktionen reagieren
Wenn ein Klick auf eine benutzerdefinierte Anzeige gemeldet wird, werden die möglichen Antworten des SDK in dieser Reihenfolge versucht:
Suchen Sie einen Content-Resolver für die Deeplink-URL der Anzeige und starten Sie den ersten, der aufgelöst wird.
Öffnen Sie einen Browser und rufen Sie die herkömmliche Ziel-URL der Anzeige auf.
Wenn Sie die Klickaktion für Ihre benutzerdefinierten nativen Anzeigenformate selbst verarbeiten möchten, anstatt den Nutzer zu einem Deeplink oder Webbrowser weiterzuleiten, geben Sie in der Methode AdLoader.Builder.ForCustomNativeAd() ein optionales Action<CustomNativeAd, string> an. Wenn Sie diese benutzerdefinierte Klickaktion festlegen, überschreiben Sie das Klickverhalten des SDK. Hier ist ein Beispiel, in dem eine benutzerdefinierte Klickaktion verwendet wird, um einen Klick für ein bestimmtes Asset zu erfassen:
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.");
}