Interstitial mit Prämie ist eine Anzeigenformate, bei denen Sie Prämien für geschaltete Anzeigen automatisch an natürlichen App-Übergängen. Im Gegensatz zu Anzeigen mit Prämie müssen aktiviert werden, damit Sie ein Interstitial mit Prämie sehen können.
Vorbereitung
- Führen Sie die Schritte im Startleitfaden aus.
Verwenden Sie immer Testanzeigen
Der folgende Beispielcode enthält eine Anzeigenblock-ID, mit der Sie Testanzeigen anfordern können. Es wurde speziell so konfiguriert, dass Testanzeigen zurückgegeben werden, Produktionsanzeigen für jede Anfrage erstellen, damit sie sicher verwendet werden können.
Nachdem Sie jedoch eine App in der AdMob-Weboberfläche registriert und eigene Anzeigenblock-IDs für die Verwendung in Ihrer App erstellt haben, müssen Sie Ihr Gerät während der Entwicklung explizit als Testgerät konfigurieren.
Android
ca-app-pub-3940256099942544/5354046379
iOS
ca-app-pub-3940256099942544/6978759866
Mobile Ads SDK initialisieren
Bitten Sie Ihre App, das Mobile Ads SDK zu initialisieren, bevor Anzeigen geladen werden. Rufen Sie dazu
MobileAds.Initialize()
Dieser Vorgang muss nur einmal durchgeführt werden, idealerweise beim Start der App.
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.
});
}
}
Wenn Sie die Vermittlung verwenden, warten Sie, bis der Callback erfolgt, bevor Sie Anzeigen als Dadurch werden alle Vermittlungsadapter initialisiert.
Implementierung
So integrieren Sie Interstitials mit Prämie:
- Interstitial-Anzeige mit Prämie laden
- [Optional] Callbacks für die serverseitige Überprüfung validieren
- Interstitial-Anzeige mit Prämie mit Prämien-Callback ausliefern
- Auf Interstitial-Anzeigen mit Prämie warten
- Interstitial-Anzeige mit Prämie bereinigen
- Nächste Interstitial-Anzeige mit Prämie vorab laden
Interstitial-Anzeige mit Prämie laden
Zum Laden einer Interstitial-Anzeige mit Prämie wird die statische Methode Load()
der Klasse RewardedInterstitialAd
verwendet. 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 oder fehlgeschlagen ist. Das geladene
Das Objekt RewardedInterstitialAd
wird in der Vervollständigung als Parameter bereitgestellt.
-Handler. Das folgende Beispiel zeigt, wie eine RewardedInterstitialAd
geladen wird.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/5354046379";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/6978759866";
#else
private string _adUnitId = "unused";
#endif
private RewardedInterstitialAd _rewardedInterstitialAd;
/// <summary>
/// Loads the rewarded interstitial ad.
/// </summary>
public void LoadRewardedInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_rewardedInterstitialAd != null)
{
_rewardedInterstitialAd.Destroy();
_rewardedInterstitialAd = null;
}
Debug.Log("Loading the rewarded interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
adRequest.Keywords.Add("unity-admob-sample");
// send the request to load the ad.
RewardedInterstitialAd.Load(_adUnitId, adRequest,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("rewarded interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Rewarded interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_rewardedInterstitialAd = ad;
});
}
[Optional] Callbacks für die serverseitige Überprüfung validieren
Apps, für die zusätzliche Daten bei der serverseitigen Überprüfung erforderlich sind
Für Callbacks sollte die Funktion für benutzerdefinierte Daten von Interstitial-Anzeigen mit Prämie verwendet werden.
Jeder für ein Anzeigen mit Prämie festgelegte Stringwert wird an den custom_data
übergeben.
Suchparameter des SSV-Callbacks angeben. Wenn kein benutzerdefinierter Datenwert festgelegt ist, wird der Wert des Abfrageparameters custom_data
nicht in den SSV-Callback aufgenommen.
Im folgenden Codebeispiel wird gezeigt, wie Sie die SSV-Optionen festlegen, nachdem die Interstitial-Anzeige mit Prämie geladen wurde.
// send the request to load the ad.
RewardedInterstitialAd.Load(_adUnitId,
adRequest,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
// If the operation failed, an error is returned.
if (error != null || ad == null)
{
Debug.LogError("Rewarded interstitial ad failed to load an ad " +
" with error : " + error);
return;
}
// If the operation completed successfully, no error is returned.
Debug.Log("Rewarded interstitial ad loaded with response : " +
ad.GetResponseInfo());
// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
.Builder()
.SetCustomData("SAMPLE_CUSTOM_DATA_STRING")
.Build()
ad.SetServerSideVerificationOptions(options);
});
Wenn Sie den benutzerdefinierten Prämienstring festlegen möchten, müssen Sie dies vor dem Ausliefern der Anzeige tun.
Interstitial-Anzeige mit Prämie mit Prämien-Callback einblenden
Wenn Sie Ihre Anzeige präsentieren, müssen Sie einen Callback angeben, um die Prämie für den Nutzer zu verarbeiten. Anzeigen können nur einmal pro Ladevorgang ausgeliefert werden. Verwenden Sie die Methode CanShowAd()
, um
ob die Anzeige ausgeliefert werden kann.
Der folgende Code stellt die beste Methode zum Anzeigen von Interstitial-Anzeige.
public void ShowRewardedInterstitialAd()
{
const string rewardMsg =
"Rewarded interstitial ad rewarded the user. Type: {0}, amount: {1}.";
if (rewardedInterstitialAd != null && rewardedInterstitialAd.CanShowAd())
{
rewardedInterstitialAd.Show((Reward reward) =>
{
// TODO: Reward the user.
Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount));
});
}
}
Auf Interstitial-Anzeigen mit Prämie warten
Zur weiteren Anpassung des Anzeigenverhaltens können Sie Ereignisse im Lebenszyklus der Anzeige. Sie können diese Ereignisse überwachen, indem Sie wie unten gezeigt einen Delegaten registrieren.
private void RegisterEventHandlers(RewardedInterstitialAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Rewarded interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Rewarded interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Rewarded interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Rewarded interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Rewarded interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded interstitial ad failed to open " +
"full screen content with error : " + error);
};
}
Interstitial-Anzeige mit Prämie bereinigen
Wenn Sie mit einem RewardedInterstitialAd
fertig sind, rufen Sie die Methode
Destroy()
, bevor Sie den Verweis darauf löschen:
_rewardedInterstitialAd.Destroy();
Dadurch wird das Plug-in darüber informiert, dass das Objekt nicht mehr verwendet wird, und den Arbeitsspeicher belegt, können zurückgefordert werden. Wenn diese Methode nicht aufgerufen wird, treten Speicherlecks auf.
Nächste Interstitial-Anzeige mit Prämie vorab laden
RewardedInterstitialAd
ist ein Einmalobjekt. Sobald eine Anzeige mit Prämie
Interstitial-Anzeige zu sehen ist, kann das Objekt nicht erneut verwendet werden. So fordern Sie eine weitere an:
Interstitial-Anzeige mit Prämie verwenden, müssen Sie eine neue RewardedInterstitialAd
laden
-Objekt enthält.
Um eine Interstitial-Anzeige mit Prämie für die
nächste Impression vorzubereiten,
die Interstitial-Anzeige mit Prämie vorab laden, sobald OnAdFullScreenContentClosed
oder
OnAdFullScreenContentFailed
Anzeigenereignis wurde ausgelöst.
private void RegisterReloadHandler(RewardedInterstitialAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += ()
{
Debug.Log("Rewarded interstitial ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadRewardedInterstitialAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded interstitial ad failed to open " +
"full screen content with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadRewardedInterstitialAd();
};
}
Zusätzliche Ressourcen
- HelloWorld-Beispiel: Eine minimale Implementierung aller Anzeigenformate.