Anzeigen mit Prämie

Anzeigen mit Prämie sind Anzeigen, mit denen Nutzer im Austausch gegen In-App-Prämien interagieren können. In dieser Anleitung erfahren Sie, wie Sie Anzeigen mit Prämie von AdMob in eine Unity-App integrieren. Lesen Sie hier einige Erfolgsgeschichten von Kunden: Fallstudie 1 , Fallstudie 2 .

Voraussetzungen

  • Unity-Plugin 3.16.0 oder höher.
  • Komplette loszulegen . In Ihre Unity-App sollte das Google Mobile Ads Unity-Plug-in bereits importiert sein.

Erstellen Sie ein Anzeigenobjekt mit Prämie

Belohnt Anzeigen werden gebeten , und durch gezeigt RewardedAd Objekte. Der erste Schritt , eine Anzeige zeigen belohnt erforderlich ist , eine instanziieren RewardedAd durch Aufrufen des Konstruktors mit dem Anzeigenblock - ID - Objekt verwendet werden , um die Anzeige zu laden. Dies wird im folgenden Code-Snippet demonstriert:

Für eine einfachere Anzeigen Integration der Unity - Editor verwenden, versuchen Sie die neue Ad Platzierungen Beta .

using UnityEngine.Events;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine.UI;
using System;
using System.Collections.Generic;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        ...

        this.rewardedAd = new RewardedAd(adUnitId);
    }
}

Immer mit Testanzeigen testen

Stellen Sie beim Erstellen und Testen Ihrer Apps sicher, dass Sie Testanzeigen anstelle von Live-Produktionsanzeigen verwenden. Andernfalls kann Ihr Konto gesperrt werden.

Testanzeigen laden Sie am einfachsten mit unseren dedizierten Testanzeigenblock-IDs für Anzeigen mit Prämie für Android und iOS:

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

Sie wurden speziell so konfiguriert, dass für jede Anfrage Testanzeigen zurückgegeben werden, und Sie können sie beim Codieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Stellen Sie nur sicher, dass Sie sie durch Ihre eigene Anzeigenblock-ID ersetzen, bevor Sie Ihre App veröffentlichen.

Weitere Informationen darüber , wie das Mobile Ads SDK Testanzeigen arbeiten, siehe Testanzeigen .

Anzeige laden

Um eine belohnt Anzeige zu laden, rufen Sie das RewardedAd Objekt loadAd() Methode. Diese Methode erfordert eine Instanz von AdRequest als Argument.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        ...

        this.rewardedAd = new RewardedAd(adUnitId);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }
}

Anzeigenereignisse

Um das Verhalten Ihrer Anzeige weiter anzupassen, können Sie im Lebenszyklus der Anzeige verschiedene Ereignisse einbinden: Laden, Öffnen, Schließen usw. Lauschen Sie auf diese Ereignisse, indem Sie einen Delegaten für den entsprechenden Ereignishandler registrieren. Das wichtigste Ereignis ist OnUserEarnedReward , die aufgerufen wird , wenn der Benutzer für das Ansehen eines Videos belohnt wird. Sie können auch andere Anzeigenereignisse implementieren, wie unten gezeigt.

using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        string adUnitId;
        #if UNITY_ANDROID
            adUnitId = "ca-app-pub-3940256099942544/5224354917";
        #elif UNITY_IPHONE
            adUnitId = "ca-app-pub-3940256099942544/1712485313";
        #else
            adUnitId = "unexpected_platform";
        #endif

        this.rewardedAd = new RewardedAd(adUnitId);

        // Called when an ad request has successfully loaded.
        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        // Called when an ad request failed to load.
        this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
        // Called when an ad is shown.
        this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
        // Called when an ad request failed to show.
        this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
        // Called when the user should be rewarded for interacting with the ad.
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        // Called when the ad is closed.
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }

    public void HandleRewardedAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardedAdLoaded event received");
    }

    public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToLoad event received with message: "
                             + args.Message);
    }

    public void HandleRewardedAdOpening(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardedAdOpening event received");
    }

    public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToShow event received with message: "
                             + args.Message);
    }

    public void HandleRewardedAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardedAdClosed event received");
    }

    public void HandleUserEarnedReward(object sender, Reward args)
    {
        string type = args.Type;
        double amount = args.Amount;
        MonoBehaviour.print(
            "HandleRewardedAdRewarded event received for "
                        + amount.ToString() + " " + type);
    }
}

Die OnUserEarnedReward Veranstaltung bietet spezielle Ereignisargumente. Es geht um eine Instanz von Reward mit einer Type und Amount der Belohnung für den Benutzer gegeben beschreiben:

public void HandleUserEarnedReward(object sender, Reward args)
{
    string type = args.Type;
    double amount = args.Amount;
     MonoBehaviour.print(
          "HandleRewardedAdRewarded event received for "
              + amount.ToString() + " " + type);
}

Verfügbare Anzeigenereignisse

OnAdLoaded
Wird aufgerufen, wenn das Laden einer Anzeige abgeschlossen ist.
OnAdFailedToLoad
Wird aufgerufen, wenn eine Anzeige nicht geladen werden kann. Die Message Eigenschaft des bereitgestellten AdErrorEventArgs beschreibt die Art des Fehlers, der aufgetreten ist .
OnAdOpening
Wird aufgerufen, wenn die Anzeige angezeigt wird und den Bildschirm des Geräts bedeckt. Dies ist ein guter Ort, um bei Bedarf die Audioausgabe Ihrer App oder die Spielschleife zu pausieren.
OnAdFailedToShow
Wird aufgerufen, wenn eine Anzeige nicht angezeigt wird. Die Message Eigenschaft des bereitgestellten AdErrorEventArgs beschreibt die Art des Fehlers, der aufgetreten ist .
OnUserEarnedReward
Wird aufgerufen, wenn ein Benutzer für das Ansehen eines Videos belohnt werden soll. Die Reward Parameter die Belohnung beschreibt den Benutzer präsentiert werden.
OnAdClosed
Wird aufgerufen, wenn die Videoanzeige mit Prämie geschlossen wird, weil der Nutzer auf das Schließen-Symbol tippt oder die Zurück-Schaltfläche verwendet. Wenn Ihre App die Audioausgabe oder Spielschleife angehalten hat, ist dies ein großartiger Ort, um sie fortzusetzen.

Anzeige anzeigen

Bevor Nutzern eine Anzeige mit Prämie angezeigt wird, muss ihnen ausdrücklich die Möglichkeit geboten werden, Inhalte von Anzeigen mit Prämie im Austausch gegen eine Prämie anzuzeigen. Anzeigen mit Prämie müssen immer ein Opt-in-Erlebnis sein.

Um eine Anzeige belohnt zu zeigen, überprüfen Sie die IsLoaded() Methode , um zu überprüfen , dass es fertig geladen, dann rufen Sie show() . Hier ist ein Beispiel dafür:

private void UserChoseToWatchAd()
{
  if (this.rewardedAd.IsLoaded()) {
    this.rewardedAd.Show();
  }
}

Verwenden OnAdClosed die nächste Rewarded Anzeige vorzuladen

RewardedAd ist eine einmalige Verwendung Objekt. Das heißt, sobald eine Anzeige mit Prämie geschaltet wird, kann das Objekt nicht mehr zum Laden einer anderen Anzeige verwendet werden. Um eine weitere belohnt Anzeige anfordern, müssen Sie ein neues erstellen RewardedAd Objekt.

Eine bewährte Methode ist eine andere belohnt Anzeige in der laden OnAdClosed Anzeige Ereignis , so dass die nächste Rewarded ad Laden beginnt , sobald die vorherige Feldes verwiesen:

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void CreateAndLoadRewardedAd()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/5224354917";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/1712485313";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.rewardedAd = new RewardedAd(adUnitId);

        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }

...

    public void HandleRewardedAdClosed(object sender, EventArgs args)
    {
        this.CreateAndLoadRewardedAd();
    }
}

Laden mehrerer Anzeigen mit Prämie

Um mehrere belohnt Anzeigen zu laden, befolgen Sie die Anweisungen in der erstellen eine belohnt Anzeige Objekt und laden eine Anzeige Abschnitte für jede Anzeige , die Sie laden möchten. Das folgende Code-Snippet zeigt, wie Sie zwei Anzeigen mit Prämie für zwei unterschiedliche Anzeigen-Placements laden.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd gameOverRewardedAd;
    private RewardedAd extraCoinsRewardedAd;
    ...
    public void Start()
    {
        ...

        this.gameOverRewardedAd = CreateAndLoadRewardedAd(adUnitId);
        this.extraCoinsRewardedAd = CreateAndLoadRewardedAd(adUnitId);
    }

    public RewardedAd CreateAndLoadRewardedAd(string adUnitId)
    {
        RewardedAd rewardedAd = new RewardedAd(adUnitId);

        rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        rewardedAd.LoadAd(request);
        return rewardedAd;
    }
}

Proben