Benutzerdefinierte native Anzeigenformate

Google Ad Manager-Publisher können eigene native Anzeigenformate erstellen, indem sie benutzerdefinierte Listen mit Assets definieren. Diese benutzerdefinierten nativen Anzeigenformate können mit reservierten Anzeigen verwendet werden. Mit benutzerdefinierten nativen Anzeigenformaten können Publisher beliebige Bild- und Stringdaten an ihre Apps übergeben. Diese Daten werden durch ein CustomNativeTemplateAd-Objekt dargestellt.

Benutzerdefinierte native Anzeigenformate laden

Benutzerdefinierte native Anzeigenformate werden mit AdLoader-Objekten geladen. Mit der Methode forCustomTemplateAd() wird die AdLoader für die Verarbeitung benutzerdefinierter nativer Anzeigenformate konfiguriert. Jedem benutzerdefinierten nativen Anzeigenformat ist ein Vorlagen-ID-Wert zugeordnet. Sie müssen die Vorlagen-ID des benutzerdefinierten nativen Anzeigenformats angeben, das von Ihrer App angefordert werden soll.AdLoader Suchen Sie in der Ad Manager-Benutzeroberfläche nach den Vorlagen-IDs für die Vorlagen-ID des nativen Anzeigenformats, das Sie anfordern möchten.

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

Da für einen einzelnen Anzeigenblock mehr als eine Creative-Vorlage eingerichtet werden kann, kann forCustomTemplateAd() mit verschiedenen Vorlagen-IDs mehrmals aufgerufen werden, um das Adloader für mehr als ein mögliches benutzerdefiniertes natives Anzeigenformat vorzubereiten. Das folgende Code-Snippet zeigt, wie Sie ein AdLoader für mehrere benutzerdefinierte Vorlagen für native Anzeigen vorbereiten.

void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170")
        .forCustomNativeAd("10063171")
        .forCustomNativeAd("10063172")
        .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

Anzeigenereignisse für benutzerdefinierte native Anzeigenformate

Die Klasse AdLoader stellt Anzeigenereignisse vom Typ EventHandler bereit, um Sie über den Lebenszyklus eines benutzerdefinierten nativen Anzeigenformats zu informieren. Im folgenden Beispiel sehen Sie, wie Sie sich für Anzeigenereignisse für benutzerdefinierte native Anzeigenformate registrieren:

adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

Die Methode HandleCustomNativeAdLoaded() enthält einen CustomNativeEventArgs-Parameter. Das geladene benutzerdefinierte native Anzeigenformat kann über diesen Ereignisparameter aufgerufen werden, wie unten dargestellt:

private boolean adLoaded;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
}

Benutzerdefinierte native Anzeigenformate präsentieren

Benutzerdefinierte native Anzeigenformate unterstützen eine beliebige Anzahl von benutzerdefinierten Bild- und Text-Assets. Auf diese Assets wird über die Klasse CustomNativeTemplateAd zugegriffen, die die Methoden GetTexture2D() und GetText() bereitstellt, die die Variablen-ID eines Vorlagenfelds als Parameter verwenden.

In der folgenden Beispielimplementierung werden Assets aus einem CustomNativeTemplateAd extrahiert:

public const int NATIVE_AD_TEMPLATE_1 = 10063170;
public const int NATIVE_AD_TEMPLATE_2 = 10063171;

private boolean adLoaded;
private Texture2d mainImageTexture;
private string headline;
private CustomNativeTemplateAd customNativeTemplateAd;
...

void Update()
{
    if(adLoaded)
    {
        mainImageTexture = customNativeTemplateAd.GetTexture2D("MainImage");
        headline = customNativeTemplateAd.GetText("Headline");

        string templateId = customNativeTemplateAd.GetCustomTemplateId();
        if (templateId == NATIVE_AD_TEMPLATE_1)
        {
            ...
        }
        else if (templateId == NATIVE_AD_TEMPLATE_2)
        {
            ...
        }
        ...
        adLoaded = false;
    }
}
...

void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
    ...
}

Klicks und Impressionen für benutzerdefinierte native Anzeigenformate verarbeiten

Bei benutzerdefinierten nativen Anzeigenformaten ist Ihre App dafür verantwortlich, Impressionen zu erfassen und Klickereignisse an das SDK zu melden.

Impressionen erfassen

Rufen Sie zum Erfassen einer Impression für ein benutzerdefiniertes natives Anzeigenformat die Methode RecordImpression() für das entsprechende CustomNativeTemplateAd auf:

customNativeTemplateAd.RecordImpression();

Klicks melden

Wenn Sie dem SDK melden möchten, dass auf ein Asset geklickt wurde, rufen Sie die Methode PerformClick() für das entsprechende CustomNativeTemplateAd auf und übergeben Sie den Namen des Assets, auf das geklickt wurde. Wenn Sie beispielsweise ein Asset in Ihrem benutzerdefinierten nativen Anzeigenformat mit dem Namen „MainImage“ haben und einen Klick auf die Textur melden möchten, die diesem Asset entspricht, sieht Ihr Code so aus:

customNativeTemplateAd.PerformClick("MainImage");

Wenn ein Klick auf eine Anzeige mit benutzerdefinierter Vorlage gemeldet wird, gibt es zwei mögliche Antworten vom SDK, die in dieser Reihenfolge versucht werden:

  1. Suchen Sie einen Content-Resolver für die Deeplink-URL der Anzeige und starten Sie den ersten, der aufgelöst wird.
  2. Öffnen Sie einen Browser und rufen Sie die herkömmliche Ziel-URL der Anzeige auf.

Benutzerdefinierte Klickaktionen

Möglicherweise möchten Sie die Klickaktion für Ihre benutzerdefinierten nativen Anzeigenformate selbst verarbeiten, anstatt den Nutzer zu einem Deeplink oder Webbrowser weiterzuleiten. Dazu können Sie in der Methode AdLoader.Builder.forCustomTemplateAd() ein optionales Action<CustomNativeTemplateAd, string> angeben. Wenn Sie diese benutzerdefinierte Klickaktion festlegen, überschreiben Sie das oben beschriebene Klickverhalten des SDK. Hier sehen Sie ein Beispiel, in dem mit einer benutzerdefinierten Klickaktion ein Klick für ein bestimmtes Asset protokolliert wird:

private void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170", HandleCustomNativeAdClicked)
        .Build();
    adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
    adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
    adLoader.LoadAd(createAdRequest());
}

private void HandleCustomNativeAdClicked(CustomNativeTemplateAd customNativeTemplateAd, string assetName)
{
    Debug.Log("Native ad asset with name " + assetName + " was clicked.");
}