In diesem Leitfaden erfahren Sie, wie Sie das Add-on für native Anzeigen verwenden, um native AdMob-Anzeigen zu implementieren. Anzeigen in einer Unity-App sowie einige wichtige Punkte, die Sie dabei berücksichtigen sollten.
Form und Funktion nativer Anzeigen entsprechen dem Kontext, in dem sie eingebettet sind. Sie passen auch zum visuellen Design der App, in der sie enthalten sind. Mit nativen AdMob-Anzeigen können Publisher Anzeigen nahtlos rendern, mit Inhalten. Mit dieser Technologie können Sie stark angepasste Renderings implementieren. die den nativen Code in Unity-Apps optimal nutzen.
Native Anzeigen werden mit denselben GameObjects
-Typen ausgeliefert, die Sie bereits verwenden
und können so formatiert werden, dass sie dem Design
die User Experience, in der sie leben. Wenn eine native Anzeige geladen wird,
erhält ein natives Objekt, das seine Assets und die Unity-App enthält, anstatt
des SDK) werden sie angezeigt.
Vorbereitung
- Google Mobile Ads Unity-Plug-in Version 7.0.0 oder höher
- Arbeiten Sie den Startleitfaden durch.
- Herunterladen und installieren Sie das Add-on für native Anzeigen.
Native Anzeigenformate laden
Native Anzeigen werden über die Klasse AdLoader
geladen, die eine eigene
AdLoader.Builder
, um sie bei der Erstellung anzupassen. Das ForNativeAd()
konfiguriert das AdLoader für die Verarbeitung nativer Anzeigen.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
Für AdLoader-Anzeigenereignisse registrieren
Wenn Sie benachrichtigt werden möchten, wenn eine native Anzeige geladen wird oder das Laden fehlschlägt, fügen Sie der AdLoader
-Klasse für die unten aufgeführten Ereignisse delegiert hinzu.
OnNativeAdLoaded
Wird aufgerufen, wenn eine native Anzeige erfolgreich geladen wurde. Für dieses Ereignis ist ein delegierter Code erforderlich, um auf die geladene Anzeige zuzugreifen.
OnAdFailedToLoad
Wird aufgerufen, wenn beim Laden einer nativen Anzeige ein Fehler auftritt.
Anzeige laden
Wenn Sie einen AdLoader
erstellt haben, rufen Sie seine LoadAd()
-Methode auf,
Anzeige anfordern:
adLoader.LoadAd(new AdRequest.Builder().Build());
Anzeigenanfrage zusammenstellen
Das folgende Code-Snippet zeigt, wie ein AdLoader
erstellt wird, das
die zum Anfordern nativer Anzeigen konfiguriert sind, und legt Bevollmächtigte für erfolgreiche und fehlgeschlagene Anzeigen fest.
lädt und stellt eine Anzeigenanfrage.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Fehler beim Laden von Anzeigen
Das OnAdFailedToLoad
-Ereignis hat den Typ EventHandle<AdFailedToLoadEventArgs>
.
Unten sehen Sie, wie Sie den Grund für ein fehlgeschlagenes Anzeigenladen aus diesem Ereignis analysieren.
private void RequestNativeAd() {
...
adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}
private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("Native ad failed to load: " + args.Message);
}
Native Anzeige ausliefern
Wenn eine native Anzeige geladen wird, wird das Anzeigenereignis für das entsprechende Anzeigenformat aufgerufen. Ihre App ist dann für die Schaltung der Anzeige verantwortlich, obwohl sie unbedingt sofort tun müssen.
Anzahl der Anzeigen verwalten
Das OnNativeAdLoaded
-Ereignis hat den Typ EventHandler<NativeAdEventArgs>
. Die Anzeige, die in einem NativeAd
-Objekt gekapselt ist, kann wie unten gezeigt aus NativeAdEventArgs
abgerufen werden:
private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
}
Assets für native Anzeigen abrufen
Nachdem die Anzeigen geladen wurden, können Sie wie unten gezeigt auf ihre Assets zugreifen. Grafik-Assets werden als Texture2D
-Objekte und Text-Assets als string
-Objekte zurückgegeben.
private bool nativeAdLoaded;
private NativeAd nativeAd;
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for the icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
// Get string for headline asset of native ad.
string headline = this.nativeAd.GetHeadlineText();
}
}
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}
Anzeigen-Assets sollten nur im Hauptthread aufgerufen werden, z. B.
aus der Methode Update()
eines Unity-Skripts. Die folgenden Assets sind nicht immer vorhanden und sollten vor der Anzeige geprüft werden:
GetStarRating()
GetStore()
GetPrice()
GetAdvertiser()
GetIconTexture()
AdChoices-Asset
Das AdChoices-Anzeigen-Asset muss als Teil der nativen Anzeige präsentiert werden. Außerdem muss das AdChoices-Anzeigen-Asset gut zu erkennen sein. Wählen Sie daher entsprechende Hintergrundfarben und -bilder aus.
GameObjects für Anzeigen-Assets registrieren
Sie müssen das GameObject
registrieren, damit das Anzeigen-Asset in Ihrer Unity-Anwendung angezeigt werden kann. Bei erfolgreicher Registrierung gibt die Methode, die zum Registrieren des GameObject
verwendet wurde, ein bool
zurück. Bei einer List<GameObject>
gibt die Methode eine int
zurück, die die Anzahl der erfolgreich registrierten GameObject
angibt.
Wenn die Registrierung eines Anzeigen-Assets fehlschlägt, wird die zugehörige native Anzeige nicht erkannt.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
Das GameObject
, das für ein Anzeigen-Asset registriert ist, muss eine konvexe Collider-Komponente haben, die die Größe und Form des GameObject
repräsentiert. Wenn
Bei GameObject
Objekten, die für Anzeigen-Assets registriert sind, fehlen Collider
-Komponenten
oder falsch konfiguriert ist, funktionieren native Anzeigen nicht richtig.
Im folgenden Code-Snippet wird ein BoxCollider
zu GameObject
hinzugefügt, das einen
TextMesh
, um das Anzeigentitel-Asset einer nativen Anzeige einzublenden. Sobald die
BoxCollider
ist an GameObject
angehängt und wird automatisch auf
den Text der Komponente TextMesh
ein.
// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;
// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;
// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();
Demo
Der folgende Code zeigt, wie das Symbol-Asset eines erfolgreich abgerufen wird.
native Anzeige geladen wurde, können Sie das Symbol-Anzeigen-Asset darstellen, indem Sie die Textur eines Quad
festlegen,
und registrieren Sie die GameObject
, die zum Anzeigen des Assets verwendet werden soll. Dieser Prozess
das Abrufen des Anzeigen-Assets und das Registrieren mit der Klasse für native Anzeigen erfolgen sollte.
für jedes der in der App angezeigten Assets wiederholt wird.
private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
icon.transform.position = new Vector3(1, 1, 1);
icon.transform.localScale = new Vector3(1, 1, 1);
icon.GetComponent<Renderer>().material.mainTexture = iconTexture;
// Register GameObject that will display icon asset of native ad.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register ad asset.
}
}
}
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}