Anzeigen mit Prämie sind Anzeigen, mit denen Nutzer im Austausch interagieren können. um In-App-Prämien zu erhalten. In diesem Leitfaden erfahren Sie, wie Sie Anzeigen mit Prämie AdMob in eine Unity-App integrieren.
Lesen Sie einige Erfolgsgeschichten von Kunden: Fallstudie 1, Fallstudie 2.In diesem Leitfaden erfahren Sie, wie Sie Anzeigen mit Prämie in eine Unity-App einbinden.
Vorbereitung
- Arbeiten Sie den Startleitfaden durch.
Immer mit Testanzeigen testen
Der folgende Beispielcode enthält eine Anzeigenblock-ID, mit der Sie zu testen. 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 und Erstellung eines eigenen Anzeigenblocks IDs zur Verwendung in Ihrer App – konfigurieren Sie Ihr Gerät explizit als Test. Gerät während Entwicklung.
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
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
Die wichtigsten Schritte zur Integration von Anzeigen mit Prämie:
- Anzeige mit Prämie laden
- [Optional] Callbacks für die serverseitige Überprüfung validieren
- Anzeige mit Prämie mit Prämienrückruf einblenden
- Ereignisse für Anzeigen mit Prämie beobachten
- Anzeige mit Prämie bereinigen
- Nächste Anzeige mit Prämie vorab laden
Anzeige mit Prämie laden
Das Laden einer Anzeige mit Prämie erfolgt mithilfe der statischen Load()
-Methode auf der
Klasse RewardedAd
. Das geladene RewardedAd
-Objekt wird als
im Abschluss-Handler. Das folgende Beispiel zeigt, wie ein
RewardedAd
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
private string _adUnitId = "unused";
#endif
private RewardedAd _rewardedAd;
/// <summary>
/// Loads the rewarded ad.
/// </summary>
public void LoadRewardedAd()
{
// Clean up the old ad before loading a new one.
if (_rewardedAd != null)
{
_rewardedAd.Destroy();
_rewardedAd = null;
}
Debug.Log("Loading the rewarded ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
// send the request to load the ad.
RewardedAd.Load(_adUnitId, adRequest,
(RewardedAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("Rewarded ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Rewarded ad loaded with response : "
+ ad.GetResponseInfo());
_rewardedAd = 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 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
Der Wert des Abfrageparameters „custom_data
“ ist im SSV-Callback nicht vorhanden.
Im folgenden Codebeispiel wird gezeigt, wie Sie die SSV-Optionen nach dem Anzeige mit Prämie wurde geladen.
// send the request to load the ad.
RewardedAd.Load(_adUnitId, adRequest, (RewardedAd ad, LoadAdError error) =>
{
// If the operation failed, an error is returned.
if (error != null || ad == null)
{
Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
return;
}
// If the operation completed successfully, no error is returned.
Debug.Log("Rewarded 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 das tun, bevor der Anzeige.
Anzeige mit Prämie mit Prämienrückruf einblenden
Wenn Sie Ihre Anzeige präsentieren, müssen Sie einen Callback angeben, um die Prämie für
Nutzenden. 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 Ausliefern einer Anzeige mit Prämie dar.
public void ShowRewardedAd()
{
const string rewardMsg =
"Rewarded ad rewarded the user. Type: {0}, amount: {1}.";
if (rewardedAd != null && rewardedAd.CanShowAd())
{
rewardedAd.Show((Reward reward) =>
{
// TODO: Reward the user.
Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount));
});
}
}
Ereignisse für Anzeigen mit Prämie beobachten
Zur weiteren Anpassung der Funktionsweise Ihrer Anzeige können Sie Ereignisse im Lebenszyklus der Anzeige zu sehen, z. B. das Öffnen oder Schließen. Warte auf Dazu registrieren Sie einen Bevollmächtigten, wie unten gezeigt.
private void RegisterEventHandlers(RewardedAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Rewarded ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Rewarded ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Rewarded ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Rewarded ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Rewarded ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded ad failed to open full screen content " +
"with error : " + error);
};
}
Anzeige mit Prämie bereinigen
Wenn Sie mit einem RewardedAd
fertig sind, denken Sie daran, die Destroy()
aufzurufen
bevor Sie den Verweis darauf löschen:
_rewardedAd.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 Anzeige mit Prämie vorab laden
RewardedAd
ist ein Objekt zur einmaligen Verwendung. Wenn also eine Anzeige
mit Prämie ausgeliefert wird,
Das Objekt kann nicht noch einmal verwendet werden. So fordern Sie eine weitere Anzeige mit Prämie an:
müssen Sie ein neues RewardedAd
-Objekt erstellen.
Um eine Anzeige mit Prämie für die nächste Impression vorzubereiten, laden Sie die
Anzeige mit Prämie sobald die OnAdFullScreenContentClosed
oder
OnAdFullScreenContentFailed
Anzeigenereignis wurde ausgelöst.
private void RegisterReloadHandler(RewardedAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Rewarded Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadRewardedAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadRewardedAd();
};
}
Zusätzliche Ressourcen
- HelloWorld-Beispiel: Eine minimale Implementierung aller Anzeigenformate.