In diesem Leitfaden erfahren Sie, wie Sie mit dem Unity-Plug-in Placement-Funktion zum Erstellen und Schalten von Anzeigen für Ihre App
Vorbereitung
Unity 2017.4 oder höher.
Herunterladen und importieren Sie den ersten Build des GMA Unity-Plug-ins.
Legen Sie Ihre AdMob-App-ID in der Unity-Editor.
Google Mobile Ads SDK initialisieren
Initialisieren Sie das Mobile Ads SDK, bevor Sie Anzeigen laden. Rufen Sie dazu
MobileAds.Initialize()
mit einem Action<InitializationStatus>
-Callback. Dieses
muss nur einmal durchgeführt werden, idealerweise bei der Einführung 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 zur Schaltung eines Banners bei Google Mobile Anzeigen besteht darin, um ein Anzeigen-Placement zu konfigurieren. Sie können ein Anzeigen-Placement auswählen, Interstitial-Anzeigen oder Anzeigen mit Prämie unter Assets > Google Mobile Anzeigen > Anzeige Placements aus. Drei Demo-Anzeigen-Placements eingerichtet und einsatzbereit.
Um ein neues Anzeigen-Placement hinzuzufügen, klicken Sie auf die Schaltfläche Neues Placement hinzufügen am Ende der auf der Liste. Sie können das Anzeigen-Placement in der Ansicht „Inspector“ konfigurieren.
Konfiguration des Anzeigen-Placements
Jedes Placement hat folgende Eigenschaften:
- Placement-Name
- Name des Placements. Werden verwendet, um Placements beim Einrichten von Anzeigen in einer Szene.
- Anzeigenformat
- Banner, Anzeigen mit Prämie, Interstitial Der Typ der Anzeige.
- Anzeigenblock-ID
- Geben Sie die ID des Banneranzeigenblocks für Android und iOS an. Sie müssen unter mindestens eine Anzeigenblock-ID.
- Dauerhaft über alle Szenen hinweg
- Wenn diese Option aktiviert ist, ist das Banner unabhängig von der Szenerie auf dem Bildschirm zu sehen.
(das gleiche Verhalten wie
DontDestroyOnLoad
) - Automatisches Laden aktiviert
- Wenn diese Option aktiviert ist, wird automatisch eine Anzeige geladen, wenn eine Szene wird das Anzeigen-Placement geladen.
Im folgenden Screenshot ist ein Beispiel für ein Anzeigen-Placement mit dem Namen My Awesome-Banner.
AdGameObject zur Szene hinzufügen
Sie können ein AdGameObject für Banner-, Interstitial- oder Anzeigen mit Prämie mit GameObject > Google Mobile Ads aus. Wählen Sie das um der aktiven Szene ein Placement hinzuzufügen.
Sobald Sie ein AdGameObject zur Szene hinzugefügt haben, sehen Sie ein GameObject die die Anzeige in der Hierarchieansicht des Unity-Editors darstellt.
Sie können den Namen des Placements ändern, indem Sie den Namen des GameObjects ändern. selbst. Der folgende Screenshot zeigt ein Beispiel für ein AdGameObject Banneranzeige.
AdGameObject-Einstellungen
Sie können das AdGameObject in Ihrer Szene über den Inspector konfigurieren in den Einstellungen der Komponente Ad Game Object (Script) ansehen.
- Anzeigen-Placement
Wählen Sie das Anzeigen-Placement aus der Drop-down-Liste der konfigurierten Placements aus. Die enthält nur Anzeigenblöcke für das richtige Format. Für eine Banneranzeige Spielobjekte erscheinen im Drop-down-Menü nur konfigurierte Banneranzeigen-Placements.
BannerAdGameObject
-Konfiguration (nur Banner)
- Größe: Wählen Sie die Größe des Banners aus, das Sie verwenden möchten.
- Für das verankerte adaptive Banner sind weitere Optionen verfügbar:
<ph type="x-smartling-placeholder">
- </ph>
- Ausrichtung: Hier können Sie die Ausrichtung des Geräts auswählen, das für die Berechnung der Anzeige verwendet wird. Höhe.
- Vollbildbreite verwenden: Wenn diese Option aktiviert ist, nimmt das Banner die gesamte Bildschirmbreite aus. Sie können die Breite des Bildschirms (50–99 %) anpassen, wenn entfernen Sie das Häkchen bei der Option Vollbildbreite verwenden.
- Bei Benutzerdefiniert können Sie Breite und Höhe des Banners festlegen.
- Für das verankerte adaptive Banner sind weitere Optionen verfügbar:
<ph type="x-smartling-placeholder">
- Anzeigenposition: Wählen Sie die Position aus, an der das Banner platziert werden soll.
Callbacks
Sie können Funktionen implementieren, die Anzeigen-Callbacks entsprechen. Wenn beispielsweise wenn eine Banneranzeige nicht geladen werden kann:
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ängen Sie das Skript, das die obige Funktion enthält, an ein beliebiges GameObject im Szene.
Klicken Sie auf die Schaltfläche +, ziehen Sie dann das angehängte GameObject ablegen an das Skript.
Wählen Sie die Funktion aus, die Sie mit dem Anzeigen-Callback verknüpfen möchten. Für die parametrisierte Anzeigenrückrufe verwenden, wählen Sie die Funktion aus, um den Parameterwert aus dem SDK abzurufen.
AdGameObject aus Skript verwenden
AdGameObject-Instanz aus dem Skript abrufen
Alle AdGameObject
-Objekte haben die praktische Methode LoadAd()
. Diese wird geladen
eine Anzeige mit einer einfachen AdRequest
ohne Ausrichtung. Um Targeting anzuwenden,
LoadAd(AdRequest adRequest)
mit Ihrer eigenen konfigurierten Anzeigenanfrage.
Verwenden Sie zum Abrufen der Instanz eines AdGameObject die folgende Methode für jedes Format:
Banner
MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
Das zurückgegebene BannerAdGameObject
-Objekt verfügt auch über praktische Methoden.
Hide()
und Show()
.
Interstitial
MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");
Für das zurückgegebene InterstitialAdGameObject
-Objekt ist eine praktische Methode vorhanden.
ShowIfLoaded()
.
Verfügbar
MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");
Für das zurückgegebene RewardedAdGameObject
-Objekt ist eine praktische Methode vorhanden.
ShowIfLoaded()
.
Sie können z. B. eine BannerAdGameObject
-Instanz abrufen und so laden:
folgt:
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();
...
}
...
}
Gibt es eine BannerAdGameObject
namens BannerAd, können Sie eine Instanz von
so:
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 erstellen.
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
Hier sehen Sie ein Beispiel für die Konfiguration eines Spiels zum Laden und Einblenden einer Interstitial-Anzeige AdGameObject verwenden.
Fügen Sie ein InterstitialAdGameObject
zur Szene hinzu und aktivieren Sie die Funktion Automatisches Laden
aktiviert, damit die Anzeige automatisch geladen wird, wenn die Szene geladen wird.
Stellen Sie anschließend sicher, dass Sie das SDK wie folgt initialisiert haben: Beachten Sie, dass das Feld Automatisch Load in AdGameObject funktioniert nicht, wenn Sie vergessen, die SDK.
Schalten Sie dann zwischen einem Bildschirmübergang eine Interstitial-Anzeige, indem Sie die Methode
InterstitialAdGameObject.ShowIfLoaded()
. Der folgende Code zeigt ein
Beispiel für die Auslieferung einer Interstitial-Anzeige zwischen einem Szenenübergang.
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 Automatisches Laden im Anzeigen-Placement aktiviert haben, explizit eine Anzeige anfordern müssen. Wenn sich die Szene ändert, wird eine Interstitial-Anzeige wird angezeigt, sobald einer bereit ist.
Wenn Sie eine Anzeige manuell anfordern möchten, deaktivieren Sie die Funktion Automatisches Laden unter
das Anzeigen-Placement-Prüftool und rufen die InterstitialAdGameObject.LoadAd()
. Das folgende Code-Snippet zeigt, wie Sie
Anzeige.
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 „Anzeigen mit Prämie ansehen“ Schaltflächenstatus
Hier ist ein Beispiel für die Aktivierung von „Anzeigen mit Prämie ansehen“. auf die Schaltfläche Placements.
Fügen Sie der Szene ein Button-GameObject (in diesem Beispiel Button) hinzu. für die Auslieferung einer Anzeige mit Prämie verwendet. Diese Schaltfläche wird nur Anzeige mit Prämie verfügbar.
Ändern Sie in der Methode Start()
den aktiven Status der Schaltfläche in false
. Dieses
verschwindet die Schaltfläche aus der Szene.
public class MainScene : MonoBehaviour
{
...
void Start()
{
GameObject.Find("Button").SetActive(false);
...
}
}
Fügen Sie ein RewardedAdGameObject
hinzu und wählen Sie die Option AdMob-Demo mit Prämie mit Prämie aus.
Anzeigen-Placement aus.
Klicken Sie im RewardedAdGameObject
-Inspector im Abschnitt „Callbacks“ (Callbacks) 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, per Drag-and-drop
Das Feld None (Object) (Keine (Objekt)) Wählen Sie im Drop-down-Menü die Funktion aus, die aufgerufen werden soll.
Klicken Sie auf Keine Funktion > GameObject > SetActive(bool) ein und klicken Sie das Kästchen an,
wird true
als Parameter gesendet (SetActive(true)
).
In diesem Bereich „Callbacks“ 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.
Erstellen Sie als Nächstes die Schaltfläche, mit der eine Anzeige mit Prämie eingeblendet wird, wenn der Nutzer darauf klickt. Wählen Sie im Feld An Click() im Schaltflächenprüftool auf die Schaltfläche + und Ziehen Sie das GameObject namens Anzeigen mit Prämie (Beispiel) in das Feld None (Object) (Keine (Objekt)) hinzu.
Fügen Sie dann die RewardedAdGameObject.ShowIfLoaded()
-Funktion an das
On Click()-Rückruf.
Vergessen Sie nicht, das SDK zu initialisieren. Das folgende Code-Snippet enthält vollständigen 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, Die Anzeige mit Prämie wurde geladen und kann ausgeliefert werden.
Prämien-Callback für ein RewardAdGameObject konfigurieren
Hier sehen Sie ein Beispiel für die Konfiguration eines Callbacks mit Prämie für eine Anzeige mit Prämie -Placement, sodass Sie einem Nutzer eine Belohnung schenken können, wenn eine Callback-Funktion aufgerufen.
Erstellen Sie ein neues Skript und definieren Sie eine Funktion, die Reward
als Parameter akzeptiert
wie im Folgenden beschrieben.
using UnityEngine;
using GoogleMobileAds.Api;
class RewardedTestScript : MonoBehaviour {
...
public void OnUserEarnedReward(Reward reward) {
Debug.Log("OnUserEarnedReward: reward=" +
reward.Type + ", amount=" + reward.Amount);
}
...
}
RewardedTestScript
-Skript an ein GameObject (außer dem Ad-Server) anhängen
Placement GameObject) in der Szene platziert werden. In diesem Beispiel ist er am Haupt-
Camera GameObject aus.
Füge der Szene ein RewardedAdGameObject
hinzu. Im Bereich „Callbacks“ (Callbacks)
Klicken Sie im RewardedAdGameObject
-Inspector auf die Schaltfläche + für Auf Nutzer
Erzielte Prämie (Prämie), damit die Funktion aufgerufen werden kann, wenn eine Prämie
die einem Nutzer
zugewiesen wurden.
Ziehen Sie das Hauptkamera-GameObject, das Sie im vorherigen Schritt hinzugefügt haben, in das Feld None (Object) (Keine (Objekt)) hinzu. Wählen Sie eine Funktion aus der aus. Klicken Sie auf Keine Funktion > RewardTestScript > OnUserEarnedPrämie.
Sobald Sie das Projekt durchgeführt und
eine Anzeige mit Prämie angesehen haben,
RewardedTestScript.OnUserEarnedReward()
wird aufgerufen, wenn Sie
für die Interaktion mit der Anzeige belohnt werden.