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
Unity 2017.4 oder höher.
Laden Sie das Early Build des GMA Unity-Plug-ins herunter und importieren Sie es.
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.
- Verankertes adaptives Banner bietet weitere Optionen:
- 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:
Erstellen Sie eine Funktion, die mit dem Anzeigen-Callback kompatibel ist.
public void OnBannerAdFailedToLoad(string reason) { Debug.Log("Banner ad failed to load: " + reason); }
Hänge das Skript mit der oben genannten Funktion an jedes GameObject in der Szene an.
Klicken Sie auf die Schaltfläche + und ziehen Sie dann das GameObject, an das Sie das Skript angehängt haben, per Drag-and-drop.
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:
Banner
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.
Banner
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.