Verwenden von Anzeigenplatzierungen

In dieser Anleitung erfahren Sie, wie Sie die Anzeigenplatzierungsfunktion des Google Mobile Ads Unity-Plug-ins verwenden, um Anzeigen für Ihre App zu erstellen und anzuzeigen.

Voraussetzungen

Initialisieren Sie das Google Mobile Ads SDK

Initialisieren Sie vor dem Laden von Anzeigen das Mobile Ads SDK, indem MobileAds.Initialize() mit einem Action<InitializationStatus> -Callback aufrufen. Dies muss nur einmal durchgeführt werden, 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
        });
        ...
    }
}

Anzeigenplatzierungen erstellen

Der erste Schritt beim Anzeigen eines Banners mit Google Mobile Ads besteht darin, eine Anzeigenplatzierung zu erstellen und zu konfigurieren. Sie können eine Anzeigenplatzierung im Format Banner, Interstitial oder Prämie unter Assets > Google Mobile Ads > Anzeigenplatzierungen im Unity-Editor auswählen. Anschließend sind drei Demo-Werbeplatzierungen eingerichtet und einsatzbereit.

Um eine neue Anzeigenplatzierung hinzuzufügen, klicken Sie am Ende der Liste auf die Schaltfläche Neue Platzierung hinzufügen. Sie können die Anzeigenplatzierung in der Inspector-Ansicht konfigurieren.

Konfiguration der Anzeigenplatzierung

Jede Platzierung hat die folgenden Eigenschaften:

Platzierungsname
Name der Platzierung. Wird verwendet, um Platzierungen beim Einrichten von Anzeigen in einer Szene zu identifizieren.
Anzeigenformat
Banner, belohnt, interstitial. Art der Anzeige.
Anzeigenblock-ID
Geben Sie Ihre Banneranzeigenblock-ID für Android und iOS an. Sie müssen mindestens eine Anzeigenblock-ID angeben.
Beständig über Szenen hinweg
Wenn diese Option aktiviert ist, bleibt das Banner unabhängig von Szenenänderungen auf dem Bildschirm bestehen (gleiches Verhalten wie DontDestroyOnLoad ).
Automatisches Laden aktiviert
Wenn diese Option aktiviert ist, wird eine Anzeige automatisch geladen, wenn eine mit der Anzeigenplatzierung verknüpfte Szene geladen wird.

Der folgende Screenshot zeigt ein Beispiel für eine Anzeigenplatzierung namens My Awesome Banner .

Hinzufügen eines AdGameObject zur Szene

Sie können Ihrer Szene ein AdGameObject für Banner-, Interstitial- oder Rewarded-Formate hinzufügen, indem Sie GameObject > Google Mobile Ads im Unity-Editor verwenden. Wählen Sie das Format aus, um der aktiven Szene eine Platzierung hinzuzufügen.

Nachdem Sie der Szene ein AdGameObject hinzugefügt haben, sehen Sie ein GameObject, das die Anzeige in der Hierarchieansicht des Unity-Editors darstellt.

Sie können den Namen der Platzierung ändern, indem Sie den Namen des Spielobjekts selbst ändern. Der folgende Screenshot zeigt ein Beispiel für ein AdGameObject namens Banner Ad .

AdGameObject-Einstellungen

Sie können das AdGameObject in Ihrer Szene in der Inspector-Ansicht in den Einstellungen für die Komponente AdGame Object (Script) konfigurieren.

Anzeigenplatzierung

Wählen Sie die Anzeigenplatzierung aus der Dropdown-Liste der konfigurierten Platzierungen aus. Die Liste enthält nur Anzeigenblöcke für das richtige Format. Beispielsweise zeigt das Dropdown-Menü für Bannerwerbungs-Spielobjekte nur konfigurierte Bannerwerbungsplatzierungen.

BannerAdGameObject Konfiguration (nur Banner)

  • Größe – Wählen Sie die Größe des Banners aus, das Sie verwenden möchten.
    • Das verankerte adaptive Banner bietet einige weitere Optionen:
      • Ausrichtung – Wählen Sie die Geräteausrichtung aus, die zur Berechnung der Anzeigenhöhe verwendet wird.
      • Volle Bildschirmbreite verwenden – Wenn diese Option aktiviert ist, nimmt das Banner die gesamte Bildschirmbreite ein. Sie können die prozentuale Breite des Bildschirms (50 bis 99 %) anpassen, wenn Sie die Option Volle Bildschirmbreite verwenden deaktivieren.
    • Benutzerdefiniert ermöglicht es Ihnen, die Breite und Höhe des Banners anzugeben.
  • Anzeigenposition - Wählen Sie die Position aus, an der das Banner platziert werden soll.

Rückrufe

Sie können Funktionen implementieren, die Anzeigenrückrufen entsprechen. Wenn Sie beispielsweise behandeln möchten, wenn eine Banneranzeige nicht geladen wird:

  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 dann das GameObject, an das Sie das Skript angehängt haben, per Drag & Drop.

  4. Wählen Sie die Funktion aus, die Sie mit dem Anzeigen-Callback verknüpfen möchten. Wählen Sie für die parametrisierten Anzeigenrückrufe die Funktion aus, um die dynamische Variable zu akzeptieren, damit Sie den Parameterwert aus dem SDK abrufen können.

Verwenden Sie AdGameObject aus dem Skript

Rufen Sie die AdGameObject-Instanz aus dem Skript ab

Alle AdGameObject Objekte haben die Convenience-Methode LoadAd() . Dadurch wird eine Anzeige mit einer einfachen, nicht AdRequest . Um das Targeting anzuwenden, sollten Sie LoadAd(AdRequest adRequest) mit Ihrer eigenen konfigurierten Anzeigenanforderung verwenden.

Um die Instanz eines AdGameObject abzurufen, verwenden Sie die folgende Methode für jedes Format:

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

Das zurückgegebene BannerAdGameObject Objekt hat auch praktische Methoden Hide() und Show() .

Zwischenraum

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

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

Belohnt

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

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

Beispielsweise können Sie eine Instanz eines BannerAdGameObject und wie folgt 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 wie folgt erhalten:

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

Greifen Sie auf das zugrunde liegende Anzeigenobjekt in AdGameObject zu

Diese Snippets zeigen, wie auf das zugrunde liegende Anzeigenobjekt zugegriffen wird, das dem AdGameObject zugeordnet ist.

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

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

Zwischenraum

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

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

Belohnt

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

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

Beispiele

Zeigen Sie eine Interstitial-Anzeige

Hier ist ein Beispiel für die Konfiguration eines Spiels zum Laden und Anzeigen einer Interstitial-Werbung mit einem AdGameObject.

Fügen Sie der Szene ein InterstitialAdGameObject hinzu und aktivieren Sie die Funktion „Automatisches Laden aktiviert “, sodass die Anzeige automatisch geladen wird, wenn die Szene geladen wird.

Stellen Sie als Nächstes sicher, dass Sie das SDK wie folgt initialisiert haben. Beachten Sie, dass die Funktion zum automatischen Laden in AdGameObject nicht funktioniert, wenn Sie vergessen, das SDK zu initialisieren.

Zeigen Sie dann eine Interstitial-Anzeige zwischen einem Bildschirmübergang an, indem Sie die Funktion InterstitialAdGameObject.ShowIfLoaded() aufrufen. Der folgende Code zeigt ein Beispiel für die Anzeige einer Interstitial-Anzeige zwischen einem Szenenwechsel.

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 die Funktion zum automatischen Laden in der Anzeigenplatzierung aktiviert haben, müssen Sie eine Anzeige nicht explizit anfordern. Wenn sich die Szene ändert, erscheint eine Interstitial-Werbung, wenn eine bereit ist.

Wenn Sie eine Anzeige manuell anfordern möchten, deaktivieren Sie die Funktion zum automatischen Laden im Anzeigenplatzierungsinspektor und rufen Sie stattdessen die Funktion InterstitialAdGameObject.LoadAd() auf. Das folgende Code-Snippet zeigt, wie Sie eine Anzeige manuell 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();
        });
    }
    ...
}

Behandeln Sie den Zustand der Schaltfläche „Anzeige mit Prämie ansehen“.

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

Fügen Sie der Szene ein Button GameObject (in diesem Beispiel Button genannt) hinzu, das verwendet wird, um eine Anzeige mit Prämie anzuzeigen. Wir stellen diese Schaltfläche nur zur Verfügung, wenn eine Anzeige mit Prämie verfügbar ist.

Ändern Sie in der Start() -Methode den aktiven Zustand des Buttons in false . Dadurch verschwindet der Button 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 die AdMob Demo Rewarded Ad Ad Placement aus der Dropdown-Liste aus.

Klicken Sie im Bereich „Callbacks“ im RewardedAdGameObject Inspektor auf die Schaltfläche „ + “ von „On Ad Loaded()“ , um zu aktivieren, dass die Funktion aufgerufen wird, wenn eine Anzeige mit Prämie geladen wird.

Ziehen Sie das Button GameObject, das Sie im vorherigen Schritt hinzugefügt haben, in das Feld None (Object) und legen Sie es dort ab. Wählen Sie eine aufzurufende Funktion aus der Dropdown-Liste aus. Klicken Sie auf Keine Funktion > GameObject > SetActive(bool) und dann auf das Kontrollkästchen, damit es true als Parameter sendet (ruft SetActive(true) ).

In diesem Abschnitt Callbacks können Sie auch ein Ereignis verknüpfen, das aufgerufen wird, wenn das Ereignis RewardedAd.OnUserEarnedReward ausgelöst wird. Weitere Einzelheiten finden Sie in diesem Abschnitt .

Erstellen Sie als Nächstes die Schaltfläche, um eine Anzeige mit Prämie anzuzeigen, wenn darauf geklickt wird. Klicken Sie im Bereich „On Click() Callbacks“ im Schaltflächeninspektor auf die Schaltfläche „ + “ und ziehen Sie das GameObject „Rewarded Ad Placement“ (in diesem Beispiel „ Rewarded Ad “) in das Feld „Keine (Objekt)“ .

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

Vergessen Sie zuletzt 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 Sie das Projekt ausgeführt haben, wird die Schaltfläche in der Szene angezeigt, wenn eine Anzeige mit Prämie geladen und zur Anzeige bereit ist.

Konfigurieren Sie einen Prämienrückruf für ein RewardedAdGameObject

Hier ist ein Beispiel dafür, wie Sie einen Rückruf mit Prämie für eine Anzeigenplatzierung mit Prämie konfigurieren, sodass Sie einem Benutzer eine Prämie geben können, wenn eine Rückruffunktion aufgerufen wird.

Erstellen Sie ein neues Skript und definieren Sie eine Funktion, die Reward wie folgt 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 beliebiges GameObject (außer dem Ad Placement GameObject) in der Szene an. In diesem Beispiel ist es an das Main Camera GameObject angehängt.

Fügen Sie der Szene ein RewardedAdGameObject hinzu. Klicken Sie dann unter dem Abschnitt Callbacks im RewardedAdGameObject Inspektor auf die Schaltfläche „ + “ bei On User Earned Reward (Reward) , um zu aktivieren, dass die Funktion aufgerufen wird, wenn einem Benutzer eine Belohnung gewährt wird.

Ziehen Sie das Hauptkamera-GameObject, das Sie im vorherigen Schritt hinzugefügt haben, per Drag & Drop in das Feld None (Object) . Wählen Sie eine aufzurufende Funktion aus der Dropdown-Liste aus. Klicken Sie auf Keine Funktion > RewardedTestScript > OnUserEarnedReward .

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