Anzeigen-Placements

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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 präsentieren.

Voraussetzungen

Google Mobile Ads SDK initialisieren

Initialisieren Sie vor dem Laden von Anzeigen das Mobile Ads SDK, indem Sie MobileAds.Initialize() mit einem Action<InitializationStatus>-Callback aufrufen. Dies muss nur einmal geschehen, idealerweise beim Start der App.

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

Der erste Schritt beim Ausliefern eines Banners mit Google Mobile Anzeigen besteht darin, ein Anzeigen-Placement zu erstellen und zu konfigurieren. Sie können ein Anzeigen-Placement im Format „Banner“, „Interstitial“ oder „Mit Prämie“ unter Assets > Google Mobile Ads > Anzeigen-Placements im Unity-Editor auswählen. Drei Demo-Anzeigen-Placements werden dann eingerichtet und einsatzbereit.

Wenn Sie ein neues Anzeigen-Placement hinzufügen möchten, klicken Sie am Ende der Liste auf die Schaltfläche Neues Placement hinzufügen. Sie können das Anzeigen-Placement in der Inspektionsansicht konfigurieren.

Konfiguration des Anzeigen-Placements

Jedes Placement hat folgende Eigenschaften:

Placement-Name
Name des Placements Wird verwendet, um Placements beim Einrichten von Anzeigen in einem Ambiente zu identifizieren.
Anzeigenformat
Banner, Anzeige mit Prämie, Interstitial Typ der Anzeige.
Anzeigenblock-ID
Geben Sie die Banneranzeigen-ID für Android und iOS an. Sie müssen mindestens eine Anzeigenblock-ID angeben.
Dauerhaft in Szenen
Wenn das Kästchen angeklickt ist, wird das Banner unabhängig von Szenenänderungen auf dem Bildschirm angezeigt (verhält sich wie DontDestroyOnLoad).
Automatisches Laden aktiviert
Wenn diese Option aktiviert ist, wird eine Anzeige automatisch geladen, sobald eine mit dem Anzeigen-Placement verknüpfte Szene geladen wird.

Der folgende Screenshot zeigt ein Beispiel für ein Anzeigen-Placement namens My Awesome Banner.

AdGameObject zur Szene hinzufügen

Mit GameObject > Google Mobile Ads im Unity-Editor können Sie Ihrer Szene ein AdGameObject für Banner-, Interstitial- oder Anzeigen mit Prämie-Anzeigen hinzufügen. Wählen Sie das Format aus, um der aktiven Szene ein Placement hinzuzufügen.

Nachdem Sie der Szene ein AdGameObject hinzugefügt haben, wird in der Hierarchieansicht des Unity-Editors ein GameObject für die Anzeige eingeblendet.

Sie können den Namen des Placements ändern, indem Sie den Namen des GameObjects selbst ändern. Der folgende Screenshot zeigt ein Beispiel für ein AdGameObject mit dem Namen Banner Ad.

AdGameObject-Einstellungen

Sie können das AdGameObject in Ihrer Szene in der Ansicht „Inspector“ in den Einstellungen für die Komponente Ad Game Object (Script) 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. Beispielsweise werden für Objekte von Banneranzeigen im Drop-down-Menü nur konfigurierte Placements für Banneranzeigen angezeigt.

BannerAdGameObject-Konfiguration (nur Banner)

  • Größe: Wählen Sie die Größe des Banners aus, das Sie verwenden möchten.
    • Verankerte adaptive Banner bieten einige weitere Optionen:
      • Ausrichtung: Wählen Sie die Geräteausrichtung aus, mit der die Anzeigenhöhe berechnet werden soll.
      • Vollbildbreite verwenden: Wenn diese Option aktiviert ist, nimmt das Banner die volle Breite des Bildschirms ein. Sie können die Bildschirmbreite in % (50–99%) anpassen, wenn Sie das Häkchen bei der Option Vollbildbreite verwenden entfernen.
    • Unter Benutzerdefiniert können Sie die Breite und Höhe des Banners angeben.
  • Anzeigenposition: Wählen Sie die Position aus, an der das Banner platziert werden soll.

Callbacks

Sie können Funktionen implementieren, die Anzeigen-Callbacks entsprechen. Gehen Sie beispielsweise so vor, 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ängen Sie das Skript, das die obige Funktion enthält, an ein beliebiges GameObject in der Szene an.

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

  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, die dynamische Variable zu akzeptieren, damit Sie den Parameterwert vom SDK abrufen können.

AdGameObject aus Skript verwenden

AdGameObject-Instanz aus dem Skript abrufen

Alle AdGameObject-Objekte haben die Convenience-Methode LoadAd(). Dadurch wird eine Anzeige mit einem einfachen AdRequest ohne Targeting geladen. Zum Anwenden des Targetings 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 Convenience-Methoden Hide() und Show().

Interstitial

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

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

Verfügbar

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

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

Sie können 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 dieser Art erhalten:

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

Auf zugrunde liegendes Anzeigenobjekt in AdGameObject zugreifen

Diese Snippets veranschaulichen, wie Sie auf das zugrunde liegende Anzeigenobjekt zugreifen können, das dem AdGameObject zugeordnet 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

In diesem Beispiel wird beschrieben, wie Sie ein Spiel konfigurieren, um eine Interstitial-Anzeige mit einem AdGameObject zu laden und auszuliefern.

Fügen Sie der Szene ein InterstitialAdGameObject hinzu und aktivieren Sie die Funktion Automatisches Laden aktiviert, damit die Anzeige beim Laden der Szene automatisch geladen wird.

Prüfen Sie als Nächstes, ob Sie das SDK mithilfe der folgenden Schritte initialisiert haben. Die Funktion Automatisches Laden in AdGameObject funktioniert nicht, wenn Sie vergessen, das SDK zu initialisieren.

Stellen Sie dann eine Interstitial-Anzeige zwischen einem Bildschirmübergang bereit, indem Sie die Funktion InterstitialAdGameObject.ShowIfLoaded() aufrufen. Im folgenden Codebeispiel wird eine Interstitial-Anzeige zwischen einem Szenenübergang dargestellt.

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");
    }
}

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

Wenn Sie eine Anzeige manuell anfordern möchten, deaktivieren Sie im Anzeigen-Placement-Prüftool die Funktion Automatisches Laden und rufen Sie stattdessen die Funktion InterstitialAdGameObject.LoadAd() auf. Im folgenden Code-Snippet sehen Sie, wie Sie manuell eine Anzeige anfordern.

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();
        });
    }
    ...
}

Umgang mit der Schaltfläche „Ansehen einer Anzeige mit Prämie“

Im folgenden Beispiel sehen Sie, wie die Schaltfläche „Anzeigen mit Prämie“ über Anzeigen-Placements aktiviert wird.

Fügen Sie der Szene ein ButtonGame-Objekt (in diesem Beispiel Button) hinzu, das für die Auslieferung einer 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 der Szene ein RewardedAdGameObject hinzu und wählen Sie im Drop-down-Menü das Anzeigen-Placement AdMob Demo mit Prämie aus.

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

Ziehen Sie die im vorherigen Schritt hinzugefügte Schaltfläche „GameObject“ in das Feld None (Object) (Keines (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 (aufruft SetActive(true)).

In diesem Abschnitt für Callbacks können Sie 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, damit nach dem Anklicken eine Anzeige mit Prämie eingeblendet wird. Klicken Sie im Schaltflächenprüftool im Abschnitt On Click()-Callbacks auf die Schaltfläche +. Ziehen Sie dann das GameObject mit Prämie (in diesem Beispiel Anzeigen mit Prämie) in das Feld None (Object).

Hängen Sie dann die Funktion RewardedAdGameObject.ShowIfLoaded() an den On Click()-Callback 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");
        });
    }
}

Sobald das Projekt ausgeführt wird, sehen Sie die Schaltfläche im Ambiente, wenn eine Anzeige mit Prämie geladen und bereit ist.

Callback für Prämien für ein RewardedAdGameObject konfigurieren

Hier ein Beispiel für die Konfiguration eines Callbacks mit Prämie für ein Anzeigen-Placement mit Prämie, damit du einem Nutzer beim Aufruf einer Callback-Funktion eine Prämie schenken kannst.

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 Game Ad Object GameObject) in der Szene an. In diesem Beispiel ist es an das Hauptobjekt der Hauptkamera angehängt.

Füge der Szene ein RewardedAdGameObject-Element hinzu. Klicken Sie dann im Abschnitt „Callbacks“ im Abschnitt RewardedAdGameObject auf die Schaltfläche + von On User Rewarded Reward (Prämie), um die Funktion aufzurufen, wenn einem Nutzer eine Prämie gewährt wird.

Ziehen Sie das Hauptobjekt der Kamera, das Sie im vorherigen Schritt hinzugefügt haben, in das Feld Keine (Objekt). Wählen Sie im Drop-down-Menü eine Funktion aus, die aufgerufen werden soll. Klicken Sie auf Keine Funktion > RewardedTestScript > OnUserRewardedReward.

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