Hinzufügen von Interstitial Ads zu einer Unity-App

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.

Schritte zur Erstellung von Interstitial Ads

Schritt 1: Interstitial Ad-Objekt erstellen

Schritt 2: Callback-Events hinzufügen

Schritt 3: Werbeanzeige laden

Schritt 4: Werbeanzeige präsentieren

Schritt 1: Interstitial Ad-Objekt erstellen

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.

Schritt 2: Callback-Events hinzufügen

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();
    }
});
...

Rückruf für zerstörte Werbeanzeigen-Aktivität in Unity (Android)

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 

Schritt 3: Werbeanzeige laden

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();
...

Schritt 4: Werbeanzeige präsentieren

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!");
    }
}

Nächste Schritte

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.