Mit dem Audience Network kannst du deine Android- und iOS-Apps mit Facebook-Werbeanzeigen zu Geld machen. Interstitial Ads sind eine Vollbild-Anzeigenerfahrung und können an Übergangspunkten im Fluss einer App verwendet werden, z. B. zwischen Aktivitäten oder während der Pause zwischen Levels in einem Spiel. Der Inhalt der Werbeanzeige kann aus Bildern, Videos oder Carousels bestehen. In diesem Leitfaden wird erklärt, wie du deiner App Interstitial Ads hinzufügst.
Stelle sicher, dass du die Leitfäden zu den ersten Schritten mit dem Audience Network und mit Unity abgeschlossen hast, bevor du fortfährst.
Zum Anzeigen einer Interstitial Ad musst du zunächst ein InterstitialAd
-Objekt in einem C#-Skript erstellen, das an ein GameObject
angehängt ist.
... using AudienceNetwork; ... public class InterstitialAdTest : MonoBehaviour { ... private InterstitialAd interstitialAd; private bool isLoaded; ... public void LoadInterstitial() { this.interstitialAd = new InterstitialAd("YOUR_PLACEMENT_ID"); this.interstitialAd.Register(this.gameObject); // Set delegates to get notified on changes or when the user interacts with the ad. this.interstitialAd.InterstitialAdDidLoad = (delegate() { Debug.Log("Interstitial ad loaded."); this.isLoaded = true; }); interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) { Debug.Log("Interstitial ad failed to load with error: " + error); }); interstitialAd.InterstitialAdWillLogImpression = (delegate() { Debug.Log("Interstitial ad logged impression."); }); interstitialAd.InterstitialAdDidClick = (delegate() { Debug.Log("Interstitial ad clicked."); }); this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); // Initiate the request to load the ad. this.interstitialAd.LoadAd(); } ... }
Der Konstruktor für eine InterstitialAd
weist die folgenden Parameter auf:
placementId
: Die Audience Network-Placement ID für diese Interstitial Ad-Einheit.Als Nächstes kannst du einige Rückrufe implementieren, um die Lebenszyklus-Events der Werbeanzeige zu abonnieren. Überwache diese Events, indem du einen Delegate für das Event registrierst, wie im folgenden Beispiel gezeigt:
... // Set delegates to get notified on changes or when the user interacts with the ad. this.interstitialAd.InterstitialAdDidLoad = (delegate() { Debug.Log("Interstitial ad loaded."); this.isLoaded = true; }); interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) { Debug.Log("Interstitial ad failed to load with error: " + error); }); interstitialAd.InterstitialAdWillLogImpression = (delegate() { Debug.Log("Interstitial ad logged impression."); }); interstitialAd.InterstitialAdDidClick = (delegate() { Debug.Log("Interstitial ad clicked."); }); this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); ...
Dies ist nur für Android relevant.
Zurzeit unterstützen Unity-Spiele für Android in der Unity-Haupt-Activity
als launchMode
nur singleTask
. Weitere Informationen findest du im Unity-Dokument für das Android-Manifest und im Android-Dokument für „activity“.
Da wir Activity
zum Anzeigen von Interstitial
und Rewarded Video
Ads verwenden, könnte die Anzeigenaktivität ohne ordnungsgemäßes Schließen zerstört werden, wenn ein Nutzer eine App in den Hintergrund stellt und dann mit dem Symbol neu startet, anstatt den App-Umschalter zu verwenden. Du kannst die folgenden Rückrufe verwenden und prüfen, ob die Werbeanzeige vom Nutzer geschlossen wurde:
Für Interstitial Ads:
this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); this.didClose = true; if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); #if UNITY_ANDROID /* * Only relevant to Android. * This callback will only be triggered if the Interstitial activity has * been destroyed without being properly closed. This can happen if an * app with launchMode:singleTask (such as a Unity game) goes to * background and is then relaunched by tapping the icon. */ this.interstitialAd.interstitialAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Interstitial activity destroyed without being closed first."); Debug.Log("Game should resume."); } }); #endif
Für Rewarded Video Ads:
this.rewardedVideoAd.rewardedVideoAdDidClose = (delegate() { Debug.Log("Rewarded video ad did close."); this.didClose = true; if (this.rewardedVideoAd != null) { this.rewardedVideoAd.Dispose(); } }); #if UNITY_ANDROID /* * Only relevant to Android. * This callback will only be triggered if the Rewarded Video activity * has been destroyed without being properly closed. This can happen if * an app with launchMode:singleTask (such as a Unity game) goes to * background and is then relaunched by tapping the icon. */ this.rewardedVideoAd.rewardedVideoAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Rewarded video activity destroyed without being closed first."); Debug.Log("Game should resume. User should not get a reward."); } }); #endif
Nachdem die InterstitialAd
instanziiert wurde, musst du im nächsten Schritt eine Werbeanzeige laden. Dazu verwendest du die loadAd()-Methode in der InterstitialAd
-Klasse.
Hier siehst du, wie im obigen Beispiel eine Werbeanzeige geladen wird:
... this.interstitialAd.LoadAd(); ...
Nachdem die Interstitial Ad geladen wurde, kannst du schließlich die Show
-Methode aufrufen, um die Interstitial Ad auf dem Bildschirm zu rendern. Du kannst beispielsweise eine Funktion für ShowInterstitial
aufrufen, wenn die Interstitial Ad gezeigt werden soll:
// Show button public void ShowInterstitial() { if (this.isLoaded) { this.interstitialAd.Show(); this.isLoaded = false; } else { Debug.Log("Interstitial Ad not loaded!"); } }
Folge unseren Leitfäden zur Integration verschiedener Anzeigenformate in deine Unity-App:
Wenn du bereit bist, deine App live zu schalten und zu Geld zu machen, stelle sicher, dass sie unsere Audience Network-Richtlinien und die Facebook-Gemeinschaftsstandards einhält, und reiche sie dann zur Überprüfung ein.