Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche der Host-App verdecken. Sie werden normalerweise an natürlichen Übergangspunkten im Ablauf einer App eingeblendet, z. B. während der Pause zwischen den Levels eines Spiels. Wenn in einer App Interstitial-Anzeigen ausgeliefert werden, kann der Nutzer entweder auf die Anzeige tippen und zum Ziel gelangen oder sie schließen und zur App zurückkehren. Fallstudie
In diesem Leitfaden erfahren Sie, wie Sie Interstitial-Anzeigen in eine Unity-App integrieren.
Voraussetzungen
- Arbeiten Sie den Startleitfaden durch.
Always test with test ads
The sample code below contains an ad unit ID which you can use to request test ads. It's been specially configured to return test ads rather than production ads for every request, making it safe to use.
However, after you've registered an app in the AdMob web interface and created your own ad unit IDs for use in your app, explicitly configure your device as a test device during development.
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
Initialize the Mobile Ads SDK
Before loading ads, have your app initialize the Mobile Ads SDK by calling
MobileAds.Initialize()
. This needs to be done only once, ideally at app launch.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
If you're using mediation, wait until the callback occurs before loading ads as this will ensure that all mediation adapters are initialized.
Implementierung
Die wichtigsten Schritte zur Integration von Interstitial-Anzeigen sind:
- Interstitial-Anzeige laden
- Interstitial-Anzeige einblenden
- Ereignisse für Interstitial-Anzeigen überwachen
- Interstitial-Anzeige bereinigen
- Nächste Interstitial-Anzeige vorab laden
Interstitial-Anzeige laden
Das Laden einer Interstitial-Anzeige erfolgt mit der statischen Load()
-Methode in der Klasse InterstitialAd
. Für die Lademethode sind eine Anzeigenblock-ID, ein AdRequest
-Objekt und ein Abschluss-Handler erforderlich, der aufgerufen wird, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt. Das geladene InterstitialAd
-Objekt wird als Parameter im Abschluss-Handler bereitgestellt. Das folgende Beispiel zeigt, wie ein InterstitialAd
geladen wird.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
private string _adUnitId = "unused";
#endif
private _interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadLoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_interstitialAd != null)
{
_interstitialAd.Destroy();
_interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
// send the request to load the ad.
InterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_interstitialAd = ad;
});
}
Interstitial-Anzeige einblenden
Rufen Sie die Methode Show()
auf der Instanz InterstitialAd
auf, um eine geladene Interstitial-Anzeige auszuliefern. Anzeigen können einmal pro Ladevorgang ausgeliefert werden. Mit der Methode CanShowAd()
können Sie überprüfen, ob die Anzeige zur Auslieferung bereit ist.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
if (_interstitialAd != null && _interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
_interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Ereignisse für Interstitial-Anzeigen überwachen
Wenn Sie das Verhalten Ihrer Anzeige weiter anpassen möchten, können Sie verschiedene Ereignisse im Lebenszyklus der Anzeige festlegen. Sie können auf diese Ereignisse warten, indem Sie wie unten gezeigt einen Delegaten registrieren.
private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
// Raised when the ad is estimated to have earned money.
interstitialAd.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
interstitialAd.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
interstitialAd.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
interstitialAd.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Interstitial-Anzeige bereinigen
Wenn Sie mit einem InterstitialAd
fertig sind, müssen Sie die Methode Destroy()
aufrufen, bevor Sie den Verweis darauf löschen:
_interstitialAd.Destroy();
Dadurch wird das Plug-in darüber informiert, dass das Objekt nicht mehr verwendet wird und der von ihm belegte Arbeitsspeicher zurückgefordert werden kann. Wenn diese Methode nicht aufgerufen wird, treten Speicherlecks auf.
Nächste Interstitial-Anzeige vorab laden
Interstitial-Anzeigen sind ein Objekt zur einmaligen Verwendung. Das bedeutet, dass das Objekt nicht noch einmal verwendet werden kann, sobald eine Interstitial-Anzeige eingeblendet wird. Wenn Sie eine weitere Interstitial-Anzeige anfordern möchten, erstellen Sie ein neues InterstitialAd
-Objekt.
Um eine Interstitial-Anzeige für die nächste mögliche Impression vorzubereiten, laden Sie sie vorab, sobald das Anzeigenereignis OnAdFullScreenContentClosed
oder OnAdFullScreenContentFailed
ausgelöst wird.
private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
Best Practices
- Bestimmen Sie, ob Interstitial-Anzeigen der richtige Anzeigentyp für Ihre App sind.
- Interstitial-Anzeigen funktionieren am besten in Apps mit natürlichen Übergangspunkten. Der Abschluss einer Aufgabe innerhalb einer App, z. B. das Teilen eines Bildes oder das Abschließen eines Spiellevels, ist ein solcher Punkt. Überlegen Sie, an welchen Punkten im App-Ablauf sich Interstitial-Anzeigen am besten präsentieren und wie der Nutzer wahrscheinlich darauf reagiert.
- Pausieren Sie die Aktion, wenn eine Interstitial-Anzeige ausgeliefert wird.
- Es gibt verschiedene Arten von Interstitial-Anzeigen, z. B. Text-, Bild- oder Videoanzeigen. Wenn in Ihrer App eine Interstitial-Anzeige ausgeliefert wird, müssen auch einige Ressourcen gesperrt werden, damit die Anzeige davon profitieren kann. Wenn Sie beispielsweise eine Interstitial-Anzeige aufrufen, pausieren Sie die gesamte Audioausgabe Ihrer App. Sie können die Wiedergabe im
OnAdFullScreenContentClosed()
-Ereignis fortsetzen, das aufgerufen wird, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Darüber hinaus können Sie intensive Rechenaufgaben, z. B. eine Spielschleife, vorübergehend anhalten, während die Anzeige zu sehen ist. So wird verhindert, dass der Nutzer langsame oder nicht reagierende Grafiken oder ein stotterndes Video sieht. - Überfluten Sie den Nutzer nicht mit Anzeigen.
- Die Häufigkeit von Interstitial-Anzeigen in Ihrer App scheint eine gute Möglichkeit zu sein, um den Umsatz zu steigern. Das kann aber auch die Nutzerfreundlichkeit beeinträchtigen und die Klickrate senken. Achte darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie deine App nicht mehr nutzen können.
Weitere Ressourcen
- HelloWorld-Beispiel: Eine minimale Implementierung aller Anzeigenformate.