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 ausliefern lassen.

Voraussetzungen

Google Mobile Ads SDK initialisieren

Bevor Sie Anzeigen laden, müssen Sie das Mobile Ads SDK initialisieren. Dazu müssen Sie MobileAds.Initialize() mit einem Action<InitializationStatus>-Callback aufrufen. Dies muss nur einmal geschehen, 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

Der erste Schritt bei der Auslieferung eines Banners mit Google Mobile Anzeigen besteht darin, ein Anzeigen-Placement zu erstellen und zu konfigurieren. Sie können im Unity-Editor unter Assets > Google Mobile Ads > Ad Placements (Anzeigen > Google Mobile Anzeigen > Anzeigen-Placements) das Anzeigen-Placement „Banner“, „Interstitial“ oder „Mit Prämie“ auswählen. Drei Demoanzeigen-Placements sind 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 die folgenden Eigenschaften:

Placement-Name
Name des Placements Wird verwendet, um Placements beim Einrichten von Anzeigen in einer Szene zu identifizieren.
Anzeigenformat
Banner, mit Prämie, Interstitial Art der Anzeige.
Anzeigenblock-ID
Geben Sie die Anzeigenblock-ID für Android und iOS an. Sie müssen mindestens eine Anzeigenblock-ID angeben.
Einheitliche Szenen
Wenn diese Option aktiviert ist, bleibt das Banner unabhängig von Szenenänderungen auf dem Bildschirm sichtbar (es gilt dasselbe Verhalten wie für DontDestroyOnLoad).
Automatisches Laden aktiviert
Wenn diese Option aktiviert ist, wird eine Anzeige automatisch geladen, wenn eine dem Anzeigen-Placement zugeordnete Szene geladen wird.

Im folgenden Screenshot ist ein Beispiel für ein Anzeigen-Placement mit dem Namen My Awesome Banner zu sehen:

AdGameObject zur Szene hinzufügen

Sie können Ihrer Szene ein AdGameObject für Banner-, Interstitial- oder Anzeigen mit Prämie hinzufügen, indem Sie im Unity-Editor GameObject > Google Mobile Ads auswählen. 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 angezeigt.

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-Objekt namens Banner Ad.

AdGameObject-Einstellungen

Sie können das AdGameObject in Ihrer Szene in den Einstellungen der Ad Game Object (Script)-Komponente in der Detailansicht konfigurieren.

Anzeigen-Placement

Wählen Sie in der Drop-down-Liste der ausgewählten Placements das Anzeigen-Placement aus. Die Liste enthält nur Anzeigenblöcke für das richtige Format. Für „Banner Game Game“-Objekte werden beispielsweise nur die konfigurierten Banneranzeigen-Placements angezeigt.

BannerAdGameObject-Konfiguration (nur Banner)

  • Größe: Wählen Sie die Größe des Banners aus, das Sie verwenden möchten.
    • Verankertes adaptives Banner bietet 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 Vollbildbreite ein. Sie können die Bildschirmbreite in % (50–99%) anpassen, wenn Sie das Häkchen aus dem Kästchen Vollbildbreite verwenden entfernen.
    • Bei der Option Benutzerdefiniert können Sie die Breite und Höhe für das Banner 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. 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 GameObject in der Szene an.

  3. Klicken Sie auf die Schaltfläche + und ziehen Sie dann 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 Anzeigen-Callback verknüpfen möchten. Wählen Sie für die parametrisierten Anzeigen-Callbacks die Funktion aus, die dynamische Variable zu akzeptieren, damit der Parameterwert vom SDK abgerufen werden kann.

AdGameObject aus dem Skript verwenden

AdGameObject-Instanz aus dem Skript abrufen

Alle AdGameObject-Objekte haben die Convenience-Methode LoadAd(). Dadurch wird eine Anzeige mit einem einfachen, nicht ausgerichteten AdRequest geladen. Wenn Sie das 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 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 BannerAdGameObject mit dem Namen BannerAd vorhanden ist, können Sie eine entsprechende Instanz abrufen:

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

Auf zugrunde liegendes 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

Hier sehen Sie ein Beispiel für die Konfiguration eines Spiels zum Laden und Schalten einer Interstitial-Anzeige mit einem AdGameObject.

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 dann, ob Sie das SDK mit folgendem Befehl initialisiert haben: Die Funktion Automatisches Laden in AdGameObject funktioniert nicht, wenn Sie das SDK initialisieren.

Schalten Sie dann zwischen dem Bildschirmübergang eine Interstitial-Anzeige, indem Sie die Funktion InterstitialAdGameObject.ShowIfLoaded() aufrufen. Im folgenden Codebeispiel sehen Sie, wie eine Interstitial-Anzeige zwischen einem Szenenwechsel eingeblendet wird.

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 die Anzeige nicht explizit anfordern. Wenn sich die Szene ändert, erscheint eine Interstitial-Anzeige, sobald sie fertig ist.

Wenn Sie eine Anzeige manuell anfordern möchten, deaktivieren Sie die Funktion Automatisch laden im Anzeigenprüftool und rufen Sie stattdessen die Funktion InterstitialAdGameObject.LoadAd() auf. Das folgende Code-Snippet zeigt, 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();
        });
    }
    ...
}

Schaltflächenstatus „Anzeigen mit Prämie ansehen“

Hier ist ein Beispiel dafür, wie Sie die Schaltfläche „Anzeige mit Prämie ansehen“ mithilfe von Anzeigen-Placements aktivieren.

Fügen Sie der Szene ein Schaltflächen-GameObject hinzu, in diesem Beispiel Button, mit dem eine Anzeige mit Prämie eingeblendet wird. Diese Schaltfläche ist 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 verschwindet die Schaltfläche aus der Szene.

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ü die Option Anzeigendemo für Anzeigen mit Prämie aus.

Klicken Sie im RewardedAdGameObject-Inspector im Abschnitt „Callbacks“ auf die Schaltfläche + von On Ad Loaded(), damit die Funktion beim Laden einer Anzeige mit Prämie aufgerufen wird.

Ziehen Sie die Schaltfläche GameObject, die Sie im vorherigen Schritt hinzugefügt haben, 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 Callback-Abschnitt können Sie auch ein Ereignis verknüpfen, das aufgerufen wird, wenn das RewardedAd.OnUserEarnedReward-Ereignis ausgelöst wird. Weitere Informationen finden Sie in diesem Abschnitt.

Als Nächstes klicken Sie auf die Schaltfläche, damit beim Anklicken eine Anzeige mit Prämie eingeblendet wird. Klicken Sie im Schaltflächenprüftool unter On Click()-Callbacks auf die Schaltfläche + und ziehen Sie das GameObject mit Prämie (in diesem Beispiel Anzeigen mit Prämie) in das Feld None (Object).

Fügen Sie dann die Funktion RewardedAdGameObject.ShowIfLoaded() an den On Click()-Callback der Schaltfläche an.

Vergiss nicht, das SDK zu initialisieren. Das folgende Code-Snippet ist der vollständige Code der in diesem Beispiel verwendeten 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, ist die Schaltfläche in der Szene zu sehen, sobald eine Anzeige mit Prämie geladen wurde.

Callback für Prämie für ein Anzeigenobjekt mit Prämie konfigurieren

Im folgenden Beispiel sehen Sie, wie ein Callback für Anzeigen mit Prämie konfiguriert wird, damit Nutzer, die eine Callback-Funktion aufrufen, eine entsprechende Prämie erhalten können.

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ängen Sie das RewardedTestScript-Skript an ein GameObject mit Ausnahme des Anzeigen-Placement-GameObjects in der Szene an. In diesem Beispiel ist es an das GameObject für Hauptkameras angehängt.

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

Ziehen Sie das Hauptkamera-GameObject, das Sie im vorherigen Schritt hinzugefügt haben, 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 > Test mit Prämie > OnUser verdientReward.

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.