Anzeigen-Placements verwenden

In diesem Leitfaden erfahren Sie, wie Sie mit der Funktion „Anzeigen-Placements“ des Google Mobile Ads Unity-Plug-ins Anzeigen für Ihre App erstellen und ausliefern.

Vorbereitung

Google Mobile Ads SDK initialisieren

Initialisiere das Mobile Ads SDK vor dem Laden von Anzeigen, indem du MobileAds.Initialize() mit einem Action<InitializationStatus>-Callback aufrufst. Dies muss nur einmal durchgeführt werden, idealerweise beim Start der Anwendung.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

Anzeigen-Placements erstellen

Wenn Sie ein Banner mit Google Mobile Ads bereitstellen möchten, müssen Sie als Erstes ein Anzeigen-Placement erstellen und konfigurieren. Wählen Sie im Unity-Editor ein Anzeigen-Placement für Banner, Interstitials oder Anzeigen mit Prämie unter Assets > Google Mobile Ads > Anzeigen-Placements aus. Drei Demo-Anzeigen-Placements werden bereits eingerichtet und einsatzbereit.

Wenn Sie ein neues Anzeigen-Placement hinzufügen möchten, klicken Sie am Ende der Liste auf Neues Placement hinzufügen. Sie können das Anzeigen-Placement über die Inspector-Ansicht konfigurieren.

Konfiguration des Anzeigen-Placements

Jedes Placement hat folgende Eigenschaften:

Placement-Name
Der Name des Placements. Wird verwendet, um Placements beim Einrichten von Anzeigen in einer Szene zu identifizieren.
Anzeigenformat
Banner, Anzeige mit Prämie, Interstitial Der Typ der Anzeige.
Anzeigenblock-ID
Geben Sie die Anzeigenblock-ID für Android und iOS ein. Sie müssen mindestens eine Anzeigenblock-ID angeben.
Dauerhaft szenenübergreifend
Wenn diese Option aktiviert ist, bleibt das Banner unabhängig von den Szenenänderungen auf dem Bildschirm sichtbar (mit dem gleichen Verhalten wie bei DontDestroyOnLoad).
Automatisches Aufladen aktiviert
Wenn diese Option aktiviert ist, wird eine Anzeige automatisch geladen, wenn eine mit dem Anzeigen-Placement verknüpfte Szene geladen wird.

Im Screenshot unten sehen Sie ein Beispiel für das Anzeigen-Placement My Awesome Banner.

AdGameObject hinzufügen

Sie können ein AdGameObject für Banner-, Interstitial- oder Anzeigen mit Prämie in Ihre Szene mit GameObject > Google Mobile Ads im Unity-Editor einfügen. Wählen Sie das Format aus, in dem Sie der aktiven Szene ein Placement hinzufügen möchten.

Nachdem Sie der Szene ein AdGameObject hinzugefügt haben, sehen Sie ein GameObject, mit dem die Anzeige in der Hierarchieansicht des Unity-Editors dargestellt wird.

Sie können den Namen des Placements ändern, indem Sie den Namen des GameObject selbst ändern. Im folgenden Screenshot sehen Sie ein Beispiel für ein AdGameObject namens Banner Ad.

AdGameObject-Einstellungen

Sie können das AdGameObject in Ihrer Szene über die Einstellungen der Komponente Ad Game Object (Skript) konfigurieren.

Anzeigen-Placement

Wählen Sie in der Drop-down-Liste der konfigurierten Placements das Anzeigen-Placement aus. Die Liste enthält nur Anzeigenblöcke für das richtige Format. Über das Drop-down-Menü werden z. B. bei Anzeigenobjekten für Banneranzeigen nur konfigurierte Placements für Banneranzeigen angezeigt.

Konfiguration von BannerAdGameObject (nur Banner)

  • Größe: Wählen Sie die Größe des Banners aus, das Sie verwenden möchten.
    • Verankertes adaptives Banner bietet weitere Optionen:
      • Ausrichtung: Wähle die Geräteausrichtung aus, die zur Berechnung der Anzeigenhöhe verwendet wird.
      • Vollbildbreite verwenden: Wenn diese Option aktiviert ist, nimmt das Banner eine Vollbildbreite ein. Sie können die Bildschirmbreite in % (50~99%) anpassen, wenn Sie das Häkchen neben Vollbildbreite verwenden entfernen.
    • Bei der Option Benutzerdefiniert können Sie die Bannerbreite und -höhe festlegen.
  • Anzeigenposition: Wählen Sie die Position aus, an der das Banner platziert werden soll.

Callbacks

Sie können Funktionen implementieren, die Anzeigen-Callbacks entsprechen. Das wäre beispielsweise der Fall, wenn eine Banneranzeige nicht geladen werden soll:

  1. Erstellen Sie eine Funktion, die mit dem Anzeigen-Callback kompatibel ist.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Hänge das Skript mit der oben genannten Funktion an jedes GameObject in der Szene an.

  3. Klicken Sie auf die Schaltfläche + und ziehen Sie dann das GameObject, an das Sie das Skript angehängt haben, per Drag-and-drop.

  4. Wählen Sie die Funktion aus, die Sie mit dem Callback der Anzeige verknüpfen möchten. Wählen Sie für die parametrisierten Anzeigen-Callbacks die Funktion aus, um die dynamische Variable zu akzeptieren. So erhalten Sie den Parameterwert vom SDK.

AdGameObject aus Skript verwenden

AdGameObject-Instanz aus dem Skript abrufen

Alle AdGameObject-Objekte haben die willkürliche Methode LoadAd(). Dadurch wird eine Anzeige mit dem einfachen Wert AdRequest ohne Targeting geladen. Wenn Sie Targeting anwenden möchten, sollten Sie LoadAd(AdRequest adRequest) mit Ihrer eigenen konfigurierten Anzeigenanfrage verwenden.

Verwenden Sie die folgende Methode für jedes Format, um die Instanz eines AdGameObjects abzurufen:

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

Das zurückgegebene BannerAdGameObject-Objekt hat auch die Praxismethoden Hide() und Show().

Interstitial

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

Das zurückgegebene InterstitialAdGameObject-Objekt hat die praktische Methode ShowIfLoaded().

Verfügbar

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

Das zurückgegebene RewardedAdGameObject-Objekt hat die praktische Methode ShowIfLoaded().

Du kannst beispielsweise eine Instanz von BannerAdGameObject abrufen und so laden:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

Wenn es ein BannerAdGameObject mit dem Namen BannerAd gibt, können Sie eine Instanz davon erhalten:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

Auf das zugrunde liegende Anzeigenobjekt in AdGameObject zugreifen

Diese Snippets veranschaulichen, wie auf das zugrunde liegende Anzeigenobjekt zugegriffen wird, das mit dem AdGameObject verknüpft ist.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

Interstitial

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

Verfügbar

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

Beispiele

Interstitial-Anzeige einblenden

Im Folgenden finden Sie ein Beispiel für die Konfiguration eines Spiels zum Laden und Darstellen einer Interstitial-Anzeige mit einem AdGameObject.

Fügen Sie der Szene ein InterstitialAdGameObject hinzu und aktivieren Sie die Funktion Automatisch laden, damit die Anzeige automatisch geladen wird.

Prüfen Sie als Nächstes, ob das SDK wie unten beschrieben initialisiert wurde. Hinweis: Die Funktion Automatisches Laden in AdGameObject funktioniert nicht, wenn du vergessen, das SDK zu initialisieren.

Durch Aufrufen der Funktion InterstitialAdGameObject.ShowIfLoaded() wird dann eine Interstitial-Anzeige zwischen den Bildschirmübergängen eingeblendet. Im folgenden Code sehen Sie ein Beispiel für die Darstellung einer Interstitial-Anzeige zwischen den Szenenübergängen.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

Weil Sie die Funktion Automatisches Laden im Anzeigen-Placement aktiviert haben, müssen Sie keine Anzeige explizit anfordern. Wenn sich die Szene ändert, erscheint eine Interstitial-Anzeige, sofern eine fertig ist.

Wenn Sie eine Anzeige manuell anfordern möchten, deaktivieren Sie die Funktion Auto Load aus dem Anzeigen-Placement-Prüftool und rufen Sie stattdessen die Funktion InterstitialAdGameObject.LoadAd() auf. Im folgenden Code-Snippet sehen Sie, wie eine Anzeige manuell angefordert wird.

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

Schaltfläche zum Ansehen einer Anzeige mit Prämie

Hier sehen Sie ein Beispiel dafür, wie Sie mit Anzeigen-Placements eine Schaltfläche für Anzeigen mit Prämie aktivieren können.

Fügen Sie der Szene ein Button-GameObject mit dem Namen Button hinzu, damit eine Anzeige mit Prämie verwendet wird. Diese Schaltfläche wird nur verfügbar, wenn eine Anzeige mit Prämie verfügbar ist.

Ändern Sie in der Methode Start() den aktiven Status der Schaltfläche in false. Dadurch wird die Schaltfläche aus der Szene entfernt.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

Fügen Sie dem Fenster eine RewardedAdGameObject hinzu und wählen Sie im Drop-down-Menü Anzeigen-Demo mit Prämie von AdMob aus.

Klicken Sie im RewardedAdGameObject-Prüftool im Abschnitt „Callbacks“ auf + von On Ad Loaded(), damit die Funktion aufgerufen wird, wenn eine Anzeige mit Prämie geladen wird.

Ziehen Sie die im vorherigen Schritt hinzugefügte Button GameObject in das Feld Keine (Objekt). Wählen Sie im Drop-down-Menü eine Funktion aus, die aufgerufen werden soll. Klicken Sie auf Keine Funktion > GameObject > SetActive(bool) und dann auf das Kästchen, damit true als Parameter gesendet wird (ruft SetActive(true) auf).

In diesem Bereich von Callbacks kannst du auch ein Ereignis verknüpfen, das beim Auslösen des Ereignisses RewardedAd.OnUserEarnedReward aufgerufen wird. Weitere Informationen finden Sie in diesem Abschnitt.

Als Nächstes klicken Sie auf die Schaltfläche, um nach dem Klick eine Anzeige mit Prämie auszuliefern. Klicken Sie im Schaltflächen-Prüftool im Abschnitt OnClick()-Callbacks auf die Schaltfläche + und ziehen Sie das GameObject mit Prämie (in diesem Beispiel Anzeigen mit Prämie in das Feld) in das Feld None (Object).

Hängen Sie dann die Funktion RewardedAdGameObject.ShowIfLoaded() an den Callback On Click() der Schaltfläche an.

Vergessen Sie nicht, das SDK zu initialisieren. Das folgende Code-Snippet ist der vollständige Code für die in diesem Beispiel verwendete Szene:

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

Wenn das Projekt ausgeführt wird, ist die Schaltfläche zu sehen, wenn die Anzeige mit Prämie geladen wird und eingeblendet werden kann.

Prämienrückruf für ein BelohnungenAdGameObject konfigurieren

Hier sehen Sie ein Beispiel dafür, wie Sie einen Callback für Anzeigen mit Prämie konfigurieren, damit Nutzer eine Prämie erhalten, wenn eine Callback-Funktion aufgerufen wird.

Erstellen Sie ein neues Skript und definieren Sie eine Funktion, die Reward als Parameter akzeptiert.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

Hänge das Skript RewardedTestScript an ein GameObject (außer AdAd GameObject) in der Szene an. In diesem Beispiel ist es an das GameObject „Hauptkamera“ angehängt.

Füge ein RewardedAdGameObject-Objekt zur Szene hinzu. Klicken Sie dann im Abschnitt „Callbacks“ im RewardedAdGameObject-Prüftool auf die Schaltfläche + für Bei Nutzerprämie (Prämie), damit die Funktion aufgerufen wird, wenn einem Nutzer eine Prämie gewährt wird.

Ziehen Sie das im vorherigen Schritt hinzugefügte Hauptkamera-GameObject in das Feld Keine (Objekt). Wählen Sie im Drop-down-Menü eine Funktion aus, die aufgerufen werden soll. Klicken Sie auf Keine Funktion > BelohnungenTestScript > OnUserReceivedReward.

Sobald Sie das Projekt ausführen und sich eine Anzeige mit Prämie ansehen, wird RewardedTestScript.OnUserEarnedReward() aufgerufen, wenn Sie für die Interaktion mit der Anzeige belohnt werden.