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 nicht mit mobiler Werbung vertraut sind, ist das ein guter Ausgangspunkt. Fallstudie
In diesem Leitfaden erfahren Sie, wie Sie Banneranzeigen von AdMob in eine Unity-App einbinden. Neben Code-Snippets und Anleitungen finden Sie hier auch Informationen zur richtigen Größenanpassung von Bannern und Links zu weiteren Ressourcen.
Voraussetzungen
- Arbeiten Sie den Startleitfaden durch.
BannerView erstellen
Der erste Schritt zum Anzeigen eines Banners besteht darin, ein BannerView
-Objekt in einem C#-Skript zu erstellen, das an eine GameObject
angehängt ist.
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 ein BannerView
hat die folgenden Parameter:
adUnitId
: die AdMob-Anzeigenblock-ID, über dieBannerView
Anzeigen laden sollAdSize
: die AdMob-Anzeigengröße, die Sie verwenden möchten. Weitere InformationenAdPosition
: Die Position, an der die Banneranzeige platziert werden soll. UnterAdPosition
sind die gültigen Werte für die Anzeigenposition aufgelistet.
Je nach Plattform ist zu beachten, wie unterschiedliche Anzeigenblöcke verwendet werden. Für Anzeigenanfragen auf iOS-Geräten ist ein iOS-Anzeigenblock und auf Android-Geräten ein Android-Anzeigenblock erforderlich.
(Optional) Benutzerdefinierte Anzeigenposition
Verwenden Sie den BannerView
-Konstruktor mit x- und y-Koordinaten als Parameter, um mehr Kontrolle darüber zu haben, wo ein BannerView
auf dem Bildschirm platziert wird, als mit den AdPosition
-Werten angeboten wird:
// 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 an den x- und y-Werten positioniert, die an den Konstruktor übergeben werden, wobei der Ursprung oben links auf dem Bildschirm ist.
(Optional) Benutzerdefinierte Anzeigengrößen
Neben der Verwendung einer AdSize-Konstante können Sie auch eine benutzerdefinierte Größe für die Anzeige angeben:
AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);
Immer mit Testanzeigen testen
Der Beispielcode oben enthält eine Anzeigenblock-ID und Sie können damit Anzeigen anfordern. Es wurde speziell so konfiguriert, dass für jede Anfrage Testanzeigen zurückgegeben werden, sodass es sicher verwendet werden kann.
Wenn Sie jedoch eine App in der AdMob-Benutzeroberfläche registrieren und Ihre eigenen Anzeigenblock-IDs für die Verwendung in Ihrer App erstellen, müssen Sie Ihr Gerät während der Entwicklung explizit als Testgerät konfigurieren. Das ist äußerst wichtig. Das Testen mit echten Anzeigen ist ein Verstoß gegen die AdMob-Richtlinien und kann dazu führen, dass Ihr Konto gesperrt wird. Dies gilt auch, wenn Sie sie noch nicht antippen. Unter Testanzeigen erfahren Sie, wie Sie dafür sorgen können, dass Sie bei der Entwicklung immer Testanzeigen erhalten.
Anzeige laden
Sobald die BannerView
instanziiert ist, wird im nächsten Schritt eine Anzeige geladen. Das wird mit der Methode loadAd()
in der Klasse BannerView
erreicht. Dazu wird das Argument AdRequest
verwendet, das Laufzeitinformationen (z. B. Targeting-Informationen) zu einer einzelnen Anzeigenanfrage enthält.
Hier ein Beispiel für das Laden 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 ausgeliefert werden.
Anzeigenereignisse
Um das Verhalten Ihrer Anzeige weiter anzupassen, können Sie eine Reihe von Ereignissen im Lebenszyklus der Anzeige nutzen: Laden, Öffnen, Schließen usw. Registrieren Sie für den entsprechenden EventHandler
wie unten gezeigt einen Bevollmächtigten, um auf diese Ereignisse zu warten.
... 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; // 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.LoadAdError.GetMessage()); } public void HandleOnAdOpened(object sender, EventArgs args) { MonoBehaviour.print("HandleAdOpened event received"); } public void HandleOnAdClosed(object sender, EventArgs args) { MonoBehaviour.print("HandleAdClosed event received"); } }
Das OnAdFailedToLoad
-Ereignis enthält spezielle Ereignisargumente. 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 das Laden einer Anzeige abgeschlossen ist. |
OnAdFailedToLoad |
Das Ereignis OnAdFailedToLoad wird aufgerufen, wenn das Laden einer Anzeige fehlschlägt. Der Parameter Message beschreibt den aufgetretenen Fehlertyp. |
OnAdOpening |
Diese Methode wird aufgerufen, wenn der Nutzer auf eine Anzeige tippt. Wenn Sie Klicks mit einem Analysepaket erfassen, sollten Sie diese Funktion erfassen. |
OnAdClosed |
Diese Methode wird aufgerufen, wenn ein Nutzer nach dem Aufrufen der Ziel-URL einer Anzeige zur App zurückkehrt. Ihre App kann damit wieder gesperrte Aktivitäten fortsetzen oder andere Aufgaben ausführen, die zur Interaktion bereit sind. |
Bannergrößen
In der folgenden Tabelle sind die Standardgrößen für Banner aufgeführt.
Größe in dp (BxH) | Beschreibung | Verfügbarkeit | AdSize-Konstante |
---|---|---|---|
320 × 50 | Normale Banner- | Smartphones und Tablets | BANNER |
320 × 100 | Großes Banner | Smartphones und Tablets | LARGE_BANNER |
300 × 250 | IAB-Medium Rectangle | Smartphones und Tablets | MEDIUM_RECTANGLE |
468 × 60 | IAB-Banner in Originalgröße | Tablets | FULL_BANNER |
728 × 90 | IAB-Leaderboard | Tablets | LEADERBOARD |
Angegebene Breite x Adaptive Höhe | Adaptives Banner | Smartphones und Tablets | – |
Bildschirmbreite x 32|50|90 | Smart-Banner | Smartphones und Tablets | SMART_BANNER |
Weitere Informationen zu adaptiven Bannern, die als Ersatz für Smart-Banner dienen |
Banneranzeigen bereinigen
Wenn Sie mit einer BannerView
fertig sind, rufen Sie die Methode Destroy()
auf, bevor Sie den Verweis darauf löschen:
bannerView.Destroy();
Dadurch wird das Plug-in darüber informiert, dass das Objekt nicht mehr verwendet wird und der belegte Arbeitsspeicher zurückgefordert werden kann. Wenn diese Methode nicht aufgerufen wird, treten Speicherlecks auf.