Banneranzeigen

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 die BannerView 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ählung AdPosition 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.
};
AnzeigenereignisBeschreibung
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.

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.

Weitere Informationen

Beispiele

Erfolgsgeschichten