1. Einführung
In diesem Codelab implementieren Sie eine AdMob-App-Start-Anzeige in einer Unity-App.
Aufgaben
In diesem Codelab erfahren Sie, wie Sie eine App-Start-Anzeige von AdMob in einer Unity-App mit dem Google Mobile Ads Unity-Plug-in implementieren.

Wenn Sie bei der Bearbeitung dieses Codelabs auf Probleme stoßen (z. B. Codefehler, Grammatikfehler oder unklare Formulierungen), melden Sie das Problem über den Link Fehler melden unten links im Codelab.
Lerninhalte
- Das Google Mobile Ads Unity-Plug-in konfigurieren
- Eine App-Start-Anzeige in einer Unity-App implementieren
Voraussetzungen
- Unity 2018.4 oder höher
- Xcode 12 oder höher und CocoaPods (für die Bereitstellung auf iOS-Geräten)
Wie würden Sie Ihre Erfahrung mit AdMob bewerten?
2. Entwicklungsumgebung einrichten
Code herunterladen
Nachdem Sie die ZIP-Datei heruntergeladen haben, extrahieren Sie ihren Inhalt. Sie haben einen Ordner mit dem Namen admob-appopen-unity-main.
Alternativ können Sie das GitHub-Repository über die Befehlszeile klonen:
$ git clone https://github.com/googlecodelabs/admob-appopen-unity
Das Repository enthält zwei Ordner:
starter:Der Startcode, auf dem Sie in diesem Codelab aufbauen.
complete:Der vollständige Code für dieses Codelab.
3. AdMob-App und ‑Anzeigenblöcke einrichten
Da Unity ein plattformübergreifendes SDK ist, müssen Sie in AdMob eine App und Anzeigenblöcke sowohl für Android als auch für iOS hinzufügen.
Für Android einrichten
Für die Einrichtung für Android müssen Sie eine Android-App hinzufügen und Anzeigenblöcke erstellen.
Android-App hinzufügen
- Klicken Sie in der AdMob-Konsole im Menü Apps auf APP HINZUFÜGEN.
- Wählen Sie Android als Plattform aus. Wenn Sie gefragt werden, ob die App in einem unterstützten App-Shop veröffentlicht wurde, klicken Sie auf NEIN.
- Geben Sie
AdMob app open adin das Feld für den Namen der App ein. - Die Aktivierung von Nutzermesswerten ist für dieses Codelab nicht erforderlich. Wir empfehlen Ihnen jedoch, dies zu tun, da Sie so das Nutzerverhalten besser nachvollziehen können. Klicken Sie auf HINZUFÜGEN, um den Vorgang abzuschließen.
Anzeigenblock erstellen
- Wählen Sie in der AdMob-Konsole im Menü Apps die App AdMob-App-Start-Anzeige (Android) aus.
- Klicken Sie auf das Menü Anzeigenblöcke.
|
|
Normalerweise dauert es einige Stunden, bis in einem neuen Anzeigenblock Anzeigen ausgeliefert werden können.
Wenn Sie das Verhalten der Anzeige sofort testen möchten, verwenden Sie die Test-App-ID und die Anzeigenblock-IDs, die in den Tabellen „Android-App-ID/Anzeigenblock-ID“ und „iOS-App-ID/Anzeigenblock-ID“ aufgeführt sind.
Für iOS einrichten
Für die Einrichtung für iOS müssen Sie eine iOS-App hinzufügen und Anzeigenblöcke erstellen.
iOS-App hinzufügen
- Klicken Sie in der AdMob-Konsole im Menü Apps auf APP HINZUFÜGEN.
- Wählen Sie iOS als Plattform aus. Wenn Sie gefragt werden, ob die App in einem unterstützten App-Shop veröffentlicht wurde, klicken Sie auf NEIN.
- Geben Sie
AdMob app open adin das Feld für den Namen der App ein. - Die Aktivierung von Nutzermesswerten ist für dieses Codelab nicht erforderlich. Wir empfehlen Ihnen jedoch, dies zu tun, da Sie so das Nutzerverhalten besser nachvollziehen können. Klicken Sie auf HINZUFÜGEN, um den Vorgang abzuschließen.
Anzeigenblock erstellen
- Wählen Sie in der AdMob-Konsole im Menü Apps die App AdMob-Inline-Anzeigen (iOS) aus.
- Klicken Sie auf das Menü Anzeigenblöcke.
|
|
Normalerweise dauert es einige Stunden, bis in einem neuen Anzeigenblock Anzeigen ausgeliefert werden können.
Wenn Sie das Verhalten der Anzeige sofort testen möchten, verwenden Sie die in der folgenden Tabelle aufgeführten Test-App-IDs und Anzeigenblock-IDs.
Optional: AdMob-Test-App und ‑Anzeigenblöcke verwenden
Wenn Sie das Codelab durcharbeiten möchten, ohne selbst eine neue Anwendung und Anzeigenblöcke zu erstellen, können Sie die in den folgenden Tabellen aufgeführten Test-IDs für AdMob-Apps und Anzeigenblöcke verwenden.
Android-App-ID/Anzeigenblock-ID
Posten | App-ID/Anzeigenblock-ID |
AdMob-App-ID |
|
Anzeigenblock-ID |
|
iOS-App-ID/Anzeigenblock-ID
Posten | App-ID/Anzeigenblock-ID |
AdMob-App-ID |
|
Anzeigenblock-ID |
|
Weitere Informationen zu Testanzeigen finden Sie in der Entwicklerdokumentation zu Android-Testanzeigen und iOS-Testanzeigen.
4. Google Mobile Ads Unity-Plug-in hinzufügen
Das Google Mobile Ads Unity-Plug-in ist der erste Schritt, um AdMob-Anzeigen einzublenden und Einnahmen zu erzielen.
Unity-Plug-in für mobile Anzeigen herunterladen
Mit dem Google Mobile Ads Unity-Plug-in können Unity-Entwickler ganz einfach Google Mobile Ads in Android- und iOS-Apps ausliefern. Das Plug-in bietet eine C#-Schnittstelle zum Anfordern von Anzeigen, die von C#-Skripts in Ihrem Unity-Projekt verwendet wird.
Über den Link unten können Sie das Unity-Paket für das Plug-in herunterladen.
Starterprojekt öffnen
- Starten Sie Unity Hub.
- Klicken Sie auf dem Tab Projekte auf die Schaltfläche HINZUFÜGEN.
- Wechseln Sie zu dem Ordner, in dem Sie den heruntergeladenen Code im Schritt „Entwicklungsumgebung einrichten“ extrahiert haben.
- Öffnen Sie den Ordner starter.
- Das Starter-Projekt wird in der Projektliste angezeigt. Klicken Sie auf das Projekt, um es im Unity-Editor zu öffnen.
Mobile Ads Unity-Plug-in importieren
- Wählen Sie im Unity-Editor im Menü Assets > Import Package > Custom Package aus.
- Wählen Sie die
GoogleMobileAds-{VERSION}.unitypackageaus, die Sie im vorherigen Schritt heruntergeladen haben. - Achten Sie darauf, dass alle Dateien ausgewählt sind, und klicken Sie auf Importieren.
AdMob-App-ID festlegen
- Wählen Sie im Unity-Editor im Menü Assets > Google Mobile Ads > Settings aus.
- Geben Sie Ihre Android- und iOS-AdMob-App-ID in die entsprechenden Felder ein. Wenn Sie das Codelab durcharbeiten möchten, ohne selbst eine neue Anwendung und Anzeigenblöcke zu erstellen, geben Sie die Test-App-ID für AdMob wie folgt ein.

5. Utility-Klasse erstellen
Erstellen Sie im Ordner Scripts eine neue Klasse mit dem Namen AppOpenAdManager. Diese Klasse verwaltet eine Instanzvariable, um eine geladene Anzeige und die Anzeigenblock-ID für jede Plattform zu erfassen.
AppOpenAdManager.cs
using System;
using GoogleMobileAds.Api;
using UnityEngine;
public class AppOpenAdManager
{
#if UNITY_ANDROID
// Test ad unit ID: ca-app-pub-3940256099942544/3419835294
private const string AD_UNIT_ID = "<YOUR_ANDROID_APPOPEN_AD_UNIT_ID>";
#elif UNITY_IOS
// Test ad unit ID: ca-app-pub-3940256099942544/5662855259
private const string AD_UNIT_ID = "<YOUR_IOS_APPOPEN_AD_UNIT_ID>";
#else
private const string AD_UNIT_ID = "unexpected_platform";
#endif
private static AppOpenAdManager instance;
private AppOpenAd ad;
private bool isShowingAd = false;
public static AppOpenAdManager Instance
{
get
{
if (instance == null)
{
instance = new AppOpenAdManager();
}
return instance;
}
}
private bool IsAdAvailable
{
get
{
return ad != null;
}
}
public void LoadAd()
{
// TODO: Load an app open ad.
}
}
Anzeige laden
Das Laden einer Anzeige erfolgt mit der statischen Methode AppOpenAd.LoadAd(). Für die Methode „load“ sind eine Anzeigenblock-ID, ein ScreenOrientation-Modus, ein AdRequest-Objekt und ein Completion-Handler erforderlich, der aufgerufen wird, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt.
Das geladene AppOpenAd-Objekt wird als Parameter im Abschluss-Handler bereitgestellt. Implementieren Sie die Methode LoadAd() so:
AppOpenAdManager.cs
public class AppOpenAdManager
{
...
public void LoadAd()
{
AdRequest request = new AdRequest.Builder().Build();
// Load an app open ad for portrait orientation
AppOpenAd.LoadAd(AD_UNIT_ID, ScreenOrientation.Portrait, request, ((appOpenAd, error) =>
{
if (error != null)
{
// Handle the error.
Debug.LogFormat("Failed to load the ad. (reason: {0})", error.LoadAdError.GetMessage());
return;
}
// App open ad is loaded.
ad = appOpenAd;
}));
}
}
Anzeige einblenden
Bevor die Anzeige ausgeliefert wird, müssen Sie sich für jeden Event-Handler registrieren, um auf jedes Anzeigenereignis zu reagieren.
AppOpenAdManager.cs
public class AppOpenAdManager
{
...
public void ShowAdIfAvailable()
{
if (!IsAdAvailable || isShowingAd)
{
return;
}
ad.OnAdDidDismissFullScreenContent += HandleAdDidDismissFullScreenContent;
ad.OnAdFailedToPresentFullScreenContent += HandleAdFailedToPresentFullScreenContent;
ad.OnAdDidPresentFullScreenContent += HandleAdDidPresentFullScreenContent;
ad.OnAdDidRecordImpression += HandleAdDidRecordImpression;
ad.OnPaidEvent += HandlePaidEvent;
ad.Show();
}
private void HandleAdDidDismissFullScreenContent(object sender, EventArgs args)
{
Debug.Log("Closed app open ad");
// Set the ad to null to indicate that AppOpenAdManager no longer has another ad to show.
ad = null;
isShowingAd = false;
LoadAd();
}
private void HandleAdFailedToPresentFullScreenContent(object sender, AdErrorEventArgs args)
{
Debug.LogFormat("Failed to present the ad (reason: {0})", args.AdError.GetMessage());
// Set the ad to null to indicate that AppOpenAdManager no longer has another ad to show.
ad = null;
LoadAd();
}
private void HandleAdDidPresentFullScreenContent(object sender, EventArgs args)
{
Debug.Log("Displayed app open ad");
isShowingAd = true;
}
private void HandleAdDidRecordImpression(object sender, EventArgs args)
{
Debug.Log("Recorded ad impression");
}
private void HandlePaidEvent(object sender, AdValueEventArgs args)
{
Debug.LogFormat("Received paid event. (currency: {0}, value: {1}",
args.AdValue.CurrencyCode, args.AdValue.Value);
}
}
Ablauf von Anzeigen berücksichtigen
Anzeigenreferenzen in App-Start-Anzeigen laufen nach vier Stunden ab. Anzeigen, die mehr als vier Stunden nach dem Zeitpunkt der Anfrage gerendert werden, sind nicht länger gültig und erzielen möglicherweise keine Einnahmen.
Ändern Sie die IsAdAvailable-Property des AppOpenAdManager, um zu prüfen, wie lange es her ist, dass Ihre Anzeige geladen wurde, damit keine abgelaufene Anzeige ausgeliefert wird. Prüfen Sie dann mit dieser Methode, ob die Anzeige noch gültig ist.
AppOpenAdManager.cs
public class AppOpenAdManager
{
...
// TODO: Add loadTime field
private DateTime loadTime;
private bool IsAdAvailable
{
get
{
// TODO: Consider ad expiration
return ad != null && (System.DateTime.UtcNow - loadTime).TotalHours < 4;
}
}
public void LoadAd()
{
if (IsAdAvailable)
{
return;
}
AdRequest request = new AdRequest.Builder().Build();
AppOpenAd.LoadAd(AD_UNIT_ID, ScreenOrientation.Portrait, request, ((appOpenAd, error) =>
{
if (error != null)
{
Debug.LogFormat("Failed to load the ad. (reason: {0})", error.LoadAdError.GetMessage());
return;
}
ad = appOpenAd;
Debug.Log("App open ad loaded");
// TODO: Keep track of time when the ad is loaded.
loadTime = DateTime.UtcNow;
}));
}
}
6. Szene aktualisieren, damit die Anzeige geladen/ausgeliefert wird
Aktualisieren Sie die Start()-Methode in der MainScene-Klasse, um beim Start der Szene eine App-Open-Anzeige zu laden.
Wenn Sie über Ereignisse zum Wechsel in den Vordergrund benachrichtigt werden möchten, empfehlen wir, auf das Singleton „AppStateEventNotifier“ zu warten. Durch die Implementierung des AppStateEventNotifier.AppStateChanged-Delegaten wird Ihre App über App-Start- und Vordergrundereignisse informiert und kann die Anzeige einblenden.
MainScene.cs
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine;
public class MainScene : MonoBehaviour
{
public void Start()
{
// TODO: Request an app open ad.
MobileAds.Initialize((initStatus) =>
{
AppOpenAdManager.Instance.LoadAd();
AppStateEventNotifier.AppStateChanged += OnAppStateChanged;
});
}
public void OnAppStateChanged(AppState state)
{
if (state == AppState.Foreground)
{
// TODO: Show an app open ad if available.
AppOpenAdManager.Instance.ShowAdIfAvailable();
}
}
}
Geschafft! Erstellen Sie das Projekt und führen Sie es auf einem Gerät oder einem Emulator aus. Warten Sie nach dem Starten der App einige Sekunden, damit die Anzeige vollständig geladen werden kann.
Wenn Sie dann von anderen Apps oder dem Startbildschirm zur App zurückkehren, wird die App-Start-Anzeige wie unten dargestellt eingeblendet.

7. Fertig!
Sie haben das Codelab abgeschlossen. Den vollständigen Code für dieses Codelab finden Sie im Ordner
complete.
