Banneranzeigen sind rechteckige Bild- oder Textanzeigen, die einen Platz auf dem Bildschirm einnehmen. Sie bleiben auf dem Bildschirm, während Nutzer mit der App interagieren, und können nach einer bestimmten Zeit automatisch aktualisiert werden. Wenn Sie noch keine Erfahrung mit mobiler Werbung haben, sind sie ein guter Ausgangspunkt. Fallstudie
In diesem Leitfaden erfahren Sie, wie Sie Banneranzeigen aus AdMob in einer Unity-App einbinden. Neben Code-Snippets und Anleitungen finden Sie hier auch Informationen zur korrekten Größenanpassung von Bannern sowie Links zu zusätzlichen Ressourcen.
Vorbereitung
Jetzt starten In Ihrer Unity-App sollte das Google Mobile Ads Unity-Plug-in bereits importiert sein.
BannerView erstellen
Der erste Schritt beim Anzeigen eines Banners ist das Erstellen eines BannerView
-Objekts in einem C#-Skript, das an ein GameObject
angehängt ist.
Mit dem neuen Ad Placements-Beta lassen sich Anzeigen leichter mit dem Unity-Editor einbinden.
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
private BannerView bannerView;
...
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(initStatus => { });
this.RequestBanner();
}
private void RequestBanner()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/6300978111";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/2934735716";
#else
string adUnitId = "unexpected_platform";
#endif
// Create a 320x50 banner at the top of the screen.
this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
}
}
Der Konstruktor für eine BannerView
hat die folgenden Parameter:
adUnitId
– Die AdMob-Anzeigenblock-ID, über dieBannerView
Anzeigen laden soll.AdSize
: Die zu verwendende AdMob-Anzeigengröße. Weitere Informationen finden Sie hier.AdPosition
: die Position, an der die Banneranzeigen platziert werden sollen. Die AufzählungAdPosition
listet die gültigen Werte für die Anzeigenposition auf.
Je nach Plattform wird verwendet, wie die verschiedenen Anzeigenblöcke verwendet werden. Für Anzeigenanfragen auf iOS-Geräten ist ein iOS-Anzeigenblock und für Android-Anzeigen ein Anzeigenblock erforderlich.
Optional: Benutzerdefinierte Anzeigenposition
Wenn Sie mehr Kontrolle darüber haben möchten, wo ein BannerView
auf dem Bildschirm platziert wird, als das von den AdPosition
-Werten bietet, verwenden Sie den BannerView
-Konstruktor mit x- und y-Koordinaten als Parameter:
// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);
Die linke obere Ecke von BannerView
wird bei den X- und Y-Werten platziert, die an den Konstruktor übergeben werden. Dabei ist die Quelle die obere linke Seite des Bildschirms.
(Optional) Benutzerdefinierte Anzeigengrößen
Zusätzlich zu einer AdSize-Konstante können Sie auch eine benutzerdefinierte Größe für Ihre Anzeige festlegen:
AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);
Immer mit Testanzeigen testen
Der obige Beispielcode enthält eine Anzeigenblock-ID und Sie können damit Anzeigen anfordern. Sie wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen statt Produktionsanzeigen zurückgegeben werden.
Sobald Sie jedoch eine App in der AdMob-Benutzeroberfläche registriert haben und Ihre eigenen Anzeigenblock-IDs für die Verwendung in Ihrer App erstellt haben, müssen Sie Ihr Gerät beim Entwickeln explizit als Testgerät konfigurieren. Das ist äußerst wichtig. Tests mit echten Anzeigen verstoßen gegen die AdMob-Richtlinien und können dazu führen, dass Ihr Konto gesperrt wird. Dies gilt auch, wenn Sie die entsprechenden Anzeigen niemals antippen. Unter Testanzeigen erfährst du, wie du dafür sorgst, dass du bei der Entwicklung immer Testanzeigen erhältst.
Anzeige laden
Sobald der BannerView
-Instanz instanziiert ist, wird im nächsten Schritt eine Anzeige geladen. Dies wird mit der loadAd()
-Methode in der BannerView
-Klasse ausgeführt. Dazu wird ein AdRequest
-Argument verwendet, das Laufzeitinformationen (z. B. Targeting-Informationen) zu einer einzelnen Anzeigenanfrage enthält.
Hier ein Beispiel für einen Ladevorgang einer Anzeige:
... private void RequestBanner() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/6300978111"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/2934735716"; #else string adUnitId = "unexpected_platform"; #endif // Create a 320x50 banner at the top of the screen. this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top); // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the banner with the request. this.bannerView.LoadAd(request); } ...
Fertig! In Ihrer App können jetzt Banneranzeigen von AdMob präsentiert werden.
Anzeigenereignisse
Du kannst die Funktionsweise deiner Anzeige weiter anpassen, indem du verschiedene Ereignisse im Lebenszyklus der Anzeige nutzt: Laden, Öffnen, Schließen usw. Beobachten Sie diese Ereignisse, indem Sie wie unten gezeigt einen Bevollmächtigten für den entsprechenden EventHandler
registrieren.
... using System; using UnityEngine; using GoogleMobileAds.Api; ... public class GoogleMobileAdsDemoScript : MonoBehaviour { private BannerView bannerView; public void Start() { this.RequestBanner(); } private void RequestBanner() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/6300978111"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/2934735716"; #else string adUnitId = "unexpected_platform"; #endif this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top); // Called when an ad request has successfully loaded. this.bannerView.OnAdLoaded += this.HandleOnAdLoaded; // Called when an ad request failed to load. this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad; // Called when an ad is clicked. this.bannerView.OnAdOpening += this.HandleOnAdOpened; // Called when the user returned from the app after an ad click. this.bannerView.OnAdClosed += this.HandleOnAdClosed; // Called when the ad click caused the user to leave the application. this.bannerView.OnAdLeavingApplication += this.HandleOnAdLeavingApplication; // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the banner with the request. this.bannerView.LoadAd(request); } public void HandleOnAdLoaded(object sender, EventArgs args) { MonoBehaviour.print("HandleAdLoaded event received"); } public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) { MonoBehaviour.print("HandleFailedToReceiveAd event received with message: " + args.Message); } public void HandleOnAdOpened(object sender, EventArgs args) { MonoBehaviour.print("HandleAdOpened event received"); } public void HandleOnAdClosed(object sender, EventArgs args) { MonoBehaviour.print("HandleAdClosed event received"); } public void HandleOnAdLeavingApplication(object sender, EventArgs args) { MonoBehaviour.print("HandleAdLeavingApplication event received"); } }
Das Ereignis OnAdFailedToLoad
enthält Argumente für besondere Ereignisse. Sie übergibt eine Instanz von HandleAdFailedToLoadEventArgs
mit einer Message
, die den Fehler beschreibt:
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
MonoBehaviour.print("Banner failed to load: " + args.Message);
// Handle the ad failed to load event.
};
Anzeigenereignis | Beschreibung |
---|---|
OnAdLoaded |
Das Ereignis OnAdLoaded wird ausgeführt, wenn eine Anzeige vollständig geladen wurde. |
OnAdFailedToLoad |
Das Ereignis OnAdFailedToLoad wird aufgerufen, wenn eine Anzeige nicht geladen werden kann. Der Parameter Message beschreibt die Art des Fehlers. |
OnAdOpening |
Diese Methode wird aufgerufen, wenn der Nutzer auf eine Anzeige tippt. Wenn Sie ein Analysepaket zum Erfassen von Klicks verwenden, ist dies ein guter Ort, um ein Tracking aufzuzeichnen. |
OnAdClosed |
Wird mit der App ein Nutzer aufgerufen, nachdem er sich die Ziel-URL einer Anzeige angesehen hat, wird diese Methode aufgerufen. Ihre Anwendung kann sie verwenden, um gesperrte Aktivitäten fortzusetzen oder andere Schritte auszuführen, die zur Interaktion bereit sind. |
OnAdLeavingApplication |
Diese Methode wird nach dem onAdOpened aufgerufen, wenn ein Nutzer auf eine andere App klickt, z. B. den Google Play Store, und die aktuelle App im Hintergrund ausgeführt wird. |
Bannergrößen
In der folgenden Tabelle sind die Standardgrößen von Bannern aufgeführt.
Größe in dp (BxH) | Beschreibung | Verfügbarkeit | AdSize-Konstante |
---|---|---|---|
320 × 50 | Normale Banner- | Telefone und Tablets | BANNER |
320 × 100 | Großes Banner | Telefone und Tablets | LARGE_BANNER |
300 x 250 | IAB-Medium Rectangle | Telefone und Tablets | MEDIUM_RECTANGLE |
468 × 60 | IAB-Banner in Originalgröße | Tablets | FULL_BANNER |
728 x 90 | IAB-Bestenliste | Tablets | LEADERBOARD |
Angegebene Breite x Adaptive Höhe | Adaptives Banner | Telefone und Tablets | – |
Bildschirmbreite x 32|50|90 | Smart-Banner | Telefone und Tablets | SMART_BANNER |
Weitere Informationen zu adaptiven Bannern, die eine Alternative zu Smart-Bannern bieten |
Banneranzeigen bereinigen
Wenn Sie mit dem Befehl BannerView
fertig sind, müssen Sie die Methode Destroy()
aufrufen, bevor Sie den Verweis zur Instanz löschen:
bannerView.Destroy();
Dadurch wird das Plug-in darüber informiert, dass das Objekt nicht mehr verwendet wird und dass der von ihm belegte Arbeitsspeicher zurückzufordern ist. Wenn diese Methode nicht aufgerufen wird, können Speicherlecks auftreten.