Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche ihrer Host-App überlagern. Sie werden in der Regel an natürlichen Übergangspunkten innerhalb einer App angezeigt, z. B. in den Pausen zwischen den Levels eines Spiels. Wenn in einer App eine Interstitial-Anzeige eingeblendet wird, kann der Nutzer entweder auf die Anzeige tippen und zum Ziel weitergeleitet werden oder sie schließen und zur App zurückkehren. Fallstudie
In diesem Leitfaden wird erläutert, wie Sie Interstitial-Anzeigen in eine Unity-App einbinden.
Vorbereitung
- Führen Sie die Schritte im Startleitfaden aus.
Interstitial-Anzeige erstellen
Der erste Schritt zum Einblenden eines Interstitials besteht darin, ein InterstitialAd
-Objekt in einem Script zu erstellen, das mit einem GameObject
verknüpft ist.
using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;
private void RequestInterstitial()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
string adUnitId = "unexpected_platform";
#endif
// Initialize an InterstitialAd.
this.interstitial = new InterstitialAd(adUnitId);
}
Der Konstruktor für InterstitialAd
hat den folgenden Parameter:
adUnitId
: Die AdMob-Anzeigenblock-ID, von der aus Anzeigen für dieInterstitialAd
geladen werden sollen.
Es ist wichtig zu beachten, wie verschiedene Anzeigenblöcke je nach Plattform verwendet werden. Sie müssen einen iOS-Anzeigenblock für Anzeigenanfragen auf iOS-Geräten und einen Android-Anzeigenblock für Anfragen auf Android-Geräten verwenden.
Verwenden Sie immer Testanzeigen
Der Beispielcode oben enthält eine Anzeigenblock-ID, mit der Sie Anzeigen anfordern können. Er wurde speziell so konfiguriert, dass für jede Anfrage Testanzeigen statt Produktionsanzeigen zurückgegeben werden. Das macht die Verwendung sicher.
Wenn Sie jedoch eine App in der AdMob-Benutzeroberfläche registrieren und eigene Anzeigenblock-IDs für die Verwendung in Ihrer App erstellen, müssen Sie Ihr Gerät während der Entwicklung ausdrücklich als Testgerät konfigurieren. Das ist extrem wichtig. Tests mit echten Anzeigen (auch wenn Sie nie darauf tippen) verstoßen gegen die AdMob-Richtlinien und können zur Sperrung Ihres Kontos führen. Unter Testanzeigen finden Sie Informationen dazu, wie Sie dafür sorgen können, dass Sie bei der Entwicklung immer Testanzeigen sehen.
Anzeige laden
Nachdem die InterstitialAd
instanziiert wurde, besteht der nächste Schritt darin, eine Anzeige zu laden.
Dazu wird die Methode loadAd()
in der Klasse InterstitialAd
verwendet. Es nimmt ein AdRequest
-Argument entgegen, das Laufzeitinformationen (z. B. Targeting-Informationen) zu einer einzelnen Anzeigenanfrage enthält.
Hier ein Beispiel für das Laden einer Anzeige:
using GoogleMobileAds.Api; ... private InterstitialAd interstitial; private void RequestInterstitial() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/1033173712"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/4411468910"; #else string adUnitId = "unexpected_platform"; #endif // Initialize an InterstitialAd. this.interstitial = new InterstitialAd(adUnitId); // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the interstitial with the request. this.interstitial.LoadAd(request); }
Anzeige ausliefern
Interstitial-Anzeigen sollten während natürlicher Pausen innerhalb einer App eingeblendet werden. Ein gutes Beispiel hierfür sind die Pausen zwischen den Levels eines Spiels oder nach Abschluss einer Aufgabe.
Wenn Sie ein Interstitial anzeigen möchten, prüfen Sie mit der Methode isLoaded()
, ob das Laden abgeschlossen ist, und rufen Sie dann show()
auf.
Die Interstitial-Anzeige aus dem vorherigen Codebeispiel kann am Ende eines Spiels eingeblendet werden, wie unten dargestellt.
private void GameOver()
{
if (this.interstitial.IsLoaded()) {
this.interstitial.Show();
}
}
Anzeigenereignisse
Sie können das Verhalten Ihrer Anzeige weiter anpassen, indem Sie eine Reihe von Ereignissen im Lebenszyklus der Anzeige verknüpfen, z. B. das Laden, Öffnen oder Schließen. Du kannst diese Ereignisse überwachen, indem du einen Delegaten für die entsprechende EventHandler
registrierst, wie unten gezeigt.
using GoogleMobileAds.Api; ... private InterstitialAd interstitial; private void RequestInterstitial() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/1033173712"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/4411468910"; #else string adUnitId = "unexpected_platform"; #endif // Initialize an InterstitialAd. this.interstitial = new InterstitialAd(adUnitId); // Called when an ad request has successfully loaded. this.interstitial.OnAdLoaded += HandleOnAdLoaded; // Called when an ad request failed to load. this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad; // Called when an ad is shown. this.interstitial.OnAdOpening += HandleOnAdOpening; // Called when the ad is closed. this.interstitial.OnAdClosed += HandleOnAdClosed; // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the interstitial with the request. this.interstitial.LoadAd(request); } public void HandleOnAdLoaded(object sender, EventArgs args) { MonoBehaviour.print("HandleAdLoaded event received"); } public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) { MonoBehaviour.print("HandleFailedToReceiveAd event received with message: " + args.Message); } public void HandleOnAdOpening(object sender, EventArgs args) { MonoBehaviour.print("HandleAdOpening event received"); } public void HandleOnAdClosed(object sender, EventArgs args) { MonoBehaviour.print("HandleAdClosed event received"); }
Das Ereignis OnAdFailedToLoad
enthält spezielle Ereignisargumente. Es wird eine Instanz von HandleAdFailedToLoadEventArgs
mit einem Message
übergeben, das den Fehler beschreibt:
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
print("Interstitial failed to load: " + args.Message);
// Handle the ad failed to load event.
}
Anzeigenereignis | Beschreibung |
---|---|
OnAdLoaded |
Das Ereignis OnAdLoaded wird ausgeführt, wenn das Laden einer Anzeige abgeschlossen ist. |
OnAdFailedToLoad |
Das Ereignis OnAdFailedToLoad wird aufgerufen, wenn eine Anzeige nicht geladen werden kann. Der Parameter Message beschreibt die Art des Fehlers, der aufgetreten ist. |
OnAdOpening |
Diese Methode wird aufgerufen, wenn die Anzeige eingeblendet wird und das Display des Geräts bedeckt. |
OnAdClosed |
Diese Methode wird aufgerufen, wenn die Interstitial-Anzeige geschlossen wird, weil der Nutzer auf das Schließensymbol getippt oder die Schaltfläche „Zurück“ verwendet hat. Wenn die Audioausgabe oder der Gameloop Ihrer App pausiert wurde, können Sie sie hier fortsetzen. |
Interstitial-Anzeigen bereinigen
Wenn Sie mit einer InterstitialAd
fertig sind, müssen Sie die Methode Destroy()
aufrufen, bevor Sie die Verknüpfung dazu aufheben:
interstitial.Destroy();
Dadurch wird das Plug-in darüber informiert, dass das Objekt nicht mehr verwendet wird und der belegte Arbeitsspeicher wieder freigegeben werden kann. Wenn diese Methode nicht aufgerufen wird, kommt es zu Speicherlecks.
Best Practices
- Überlegen Sie, ob Interstitial-Anzeigen die richtige Art von Anzeigen für Ihre App sind.
- Interstitial-Anzeigen funktionieren am besten in Apps mit natürlichen Übergangspunkten. Ein solcher Punkt wird durch den Abschluss einer Aufgabe in einer App erstellt, z. B. durch das Teilen eines Bilds oder das Abschließen eines Spiellevels. Da Nutzer eine Pause in der Aktion erwarten, ist es einfach, eine Interstitial-Anzeige einzublenden, ohne die Nutzererfahrung zu beeinträchtigen. Berücksichtigen Sie, an welchen Stellen im Workflow Ihrer App Sie Interstitial-Anzeigen schalten und wie Nutzer wahrscheinlich reagieren.
- Denken Sie daran, die Aktion zu pausieren, wenn eine Interstitial-Anzeige ausgeliefert wird.
- Es gibt verschiedene Arten von Interstitial-Anzeigen, z. B. Text-, Bild- und Videoanzeigen. Achten Sie darauf, dass die Verwendung einiger Ressourcen in Ihrer App ausgesetzt wird, wenn eine Interstitialanzeige eingeblendet wird, damit die Anzeige diese Ressourcen nutzen kann. Wenn Sie beispielsweise den Aufruf zum Anzeigen einer Interstitial-Anzeige starten, sollten Sie alle Audioausgaben Ihrer App pausieren. Sie können die Wiedergabe von Tönen im Ereignishandler
onAdClosed()
fortsetzen, der aufgerufen wird, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem sollten Sie alle intensiven Rechenaufgaben (z. B. einen Gameloop) vorübergehend anhalten, während die Anzeige ausgeliefert wird. So wird verhindert, dass die Grafiken zu langsam oder nicht reaktionsschnell sind oder das Video ruckelt. - Planen Sie ausreichend Zeit für das Laden ein.
- Achten Sie darauf, dass Sie Interstitial-Anzeigen zum richtigen Zeitpunkt präsentieren. Außerdem sollten Nutzer nicht lange auf das Laden der Anzeigen warten müssen. Wenn Sie die Anzeige im Voraus laden, indem Sie
loadAd()
aufrufen, bevor Sieshow()
aufrufen möchten, ist in Ihrer App eine vollständig geladene Interstitial-Anzeige verfügbar, wenn sie eingeblendet werden soll. - Überschütten Sie die Nutzer nicht mit Anzeigen.
- Die Häufigkeit von Interstitial-Anzeigen in Ihrer App zu erhöhen, mag zwar eine gute Möglichkeit sein, den Umsatz zu steigern, kann aber auch die Nutzerfreundlichkeit beeinträchtigen und die Klickrate senken. Achten Sie darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie Ihre App nicht mehr richtig nutzen können.
Zusätzliche Ressourcen
Beispiele
- HelloWorld-Beispiel: Minimale Implementierung aller Anzeigenformate