Anzeigen mit Prämie bieten Nutzern die Möglichkeit, im Gegenzug mit ihnen zu interagieren. um In-App-Prämien zu erhalten. In diesem Leitfaden erfahren Sie, wie Sie Anzeigen mit Prämie Android- und iOS-Apps, die das Google Mobile Ads C++ SDK verwenden
Lesen Sie einige Erfolgsgeschichten von Kunden: Fallstudie 1, Fallstudie 2.
Vorbereitung
- Schließen Sie Jetzt starten ab.
- (Nur Android) Vorkenntnisse im Umgang mit JNI-
jobject
-Referenzen (siehe Tipps zu Android JNI).
Immer mit Testanzeigen testen
Verwenden Sie beim Entwickeln und Testen Ihrer Apps nur Testanzeigen, Live-Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.
Die einfachste Methode zum Laden von Testanzeigen ist die Verwendung unserer speziellen Test-Anzeigenblock-ID für Anzeigen mit Prämie (variiert je nach Geräteplattform):
- Android:
ca-app-pub-3940256099942544/5224354917
- iOS:
ca-app-pub-3940256099942544/1712485313
Sie wurden speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. können Sie es beim Programmieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Ersetzen Sie sie jedoch vor dem Veröffentlichen Ihrer
Weitere Informationen zur Funktionsweise von Testanzeigen des Mobile Ads SDK finden Sie unter Testanzeigen:
Implementierung
Die wichtigsten Schritte zur Integration von Anzeigen mit Prämie:
- Laden Sie eine Anzeige.
- Registrieren Sie sich für Rückrufe.
- Blenden Sie die Anzeige ein und bearbeiten Sie das Prämienereignis.
RewardedAd
konfigurieren
Anzeigen mit Prämie werden in RewardedAd
Objekten angezeigt. Der erste Schritt zur
zur Integration von Anzeigen mit Prämie in Ihre App
ist das Erstellen und Initialisieren einer Instanz,
von RewardedAd
.
Fügen Sie dem C++-Code Ihrer App den folgenden Header hinzu:
#include "firebase/gma/rewarded_ad.h"
Deklarieren und instanziieren Sie ein
RewardedAd
-Objekt:firebase::gma::RewardedAd* rewarded_ad; rewarded_ad = new firebase::gma::RewardedAd();
Initialisieren Sie die Instanz
RewardedAd
mithilfe Ihrer übergeordneten Ansicht, die in einen TypAdParent
. Die übergeordnete Ansicht ist eine JNI-jobject
-Referenz zu einem Android-Activity
oder einen Zeiger auf ein iOS-UIView
.// my_ad_parent is a jobject reference to an Android Activity or // a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future<void> result = rewarded_ad->Initialize(ad_parent);
Anstatt das Future als Variable beizubehalten, können Sie den Status des Initialisierungsvorgangs durch Aufrufen von
InitializeLastResult()
für dasRewardedAd
-Objekt. Das könnte hilfreich sein zur Nachverfolgung des Initialisierungsprozesses in deiner globalen Spielschleife.// Monitor the status of the future in your game loop: firebase::Future<void> result = rewarded_ad->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }
Weitere Informationen zur Arbeit mit firebase::Future
finden Sie unter
Mit Futures den Abschlussstatus der Methode überwachen
Anrufe
Anzeige laden
Das Laden einer Anzeige erfolgt mit der Methode LoadAd()
auf einem RewardedAd
-Objekt enthält. Für die Lademethode ist es erforderlich, dass RewardedAd
initialisiert wurde.
Außerdem müssen Sie eine Anzeigenblock-ID und ein AdRequest
-Objekt haben. A
firebase::Future
wird zurückgegeben, mit dem Sie den Status und das Ergebnis überwachen können.
des Ladevorgangs.
Der folgende Code zeigt, wie eine Anzeige geladen wird, nachdem RewardedAd
erfolgreich initialisiert:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = rewarded_ad->LoadAd(rewarded_ad_unit_id, ad_request);
Für Rückrufe registrieren
Sie müssen die FullScreenContentListener
-Klasse erweitern, um
Benachrichtigungen zur Präsentation von Anzeigen mit Prämie und zu Lebenszyklus-Ereignissen Ihr individuelles
Die abgeleitete FullScreenContentListener
-Klasse kann über die
RewardedAd::SetFullScreenContentListener()
an und es wird
Rückrufe, wenn die Anzeige erfolgreich oder nicht geschaltet wird, sowie
wird er geschlossen.
Der folgende Code zeigt, wie die Klasse erweitert und der Anzeige zugewiesen wird:
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* example_full_screen_content_listener = new ExampleFullScreenContentListener(); rewarded_ad->SetFullScreenContentListener(example_full_screen_content_listener);
RewardedAd
ist ein Objekt zur einmaligen Verwendung. Sobald eine Anzeige mit Prämie
angezeigt wird, kann er nicht erneut angezeigt werden. Es empfiehlt sich, eine weitere
Anzeige mit Prämie zu laden,
in der Methode OnAdDismissedFullScreenContent()
Ihres
FullScreenContentListener
, damit die nächste Anzeige mit Prämie sofort geladen wird
da die vorherige geschlossen wird.
Anzeige einblenden und Prämienereignis abwickeln
Bevor Nutzern eine Anzeige mit Prämie präsentiert wird, müssen Sie eine ausdrückliche Wahlmöglichkeit, sich Inhalte von Anzeigen mit Prämie als Gegenleistung für eine Prämie anzusehen. Anzeigen mit Prämie müssen immer optional sein.
Bei der Präsentation Ihrer Anzeige müssen Sie ein UserEarnedReward
-Objekt zur Verarbeitung angeben
die Belohnung für die Nutzenden.
Der folgende Code zeigt, wie ein RewardedAd
angezeigt wird:
// A simple listener track UserEarnedReward events.
class ExampleUserEarnedRewardListener :
public firebase::gma::UserEarnedRewardListener {
public:
ExampleUserEarnedRewardListener() { }
void OnUserEarnedReward(const firebase::gma::AdReward& reward) override {
// Reward the user!
}
};
ExampleUserEarnedRewardListener* user_earned_reward_listener =
new ExampleUserEarnedRewardListener();
firebase::Future<void> result = rewarded_ad->Show(user_earned_reward_listener);
FAQ
- Gibt es eine Zeitüberschreitung für den Initialisierungsaufruf?
- Nach 10 Sekunden schließt das Google Mobile Ads C++ SDK
firebase::Future
hat vonInitialize()
zurückgegeben, auch wenn ein Vermittlungsnetzwerk immer noch hat die Initialisierung nicht abgeschlossen. - Was passiert, wenn einige Vermittlungsnetzwerke nicht bereit sind, wenn ich den Initialisierungs-Callback erhalte?
Es wird empfohlen, Anzeigen zu laden, nachdem die SDK-Initialisierung abgeschlossen ist. Auch wenn kein Vermittlungsnetzwerk bereit ist, wird das Google Mobile Ads C++ SDK das Netzwerk dennoch um eine Anzeige bitten. Wenn ein Vermittlungsnetzwerk nach dem Zeitlimit initialisiert werden, können zukünftige Anzeigenanfragen weiterhin verarbeitet werden, Sitzung.
Sie können den Initialisierungsstatus aller Adapter durchgehend abfragen App-Sitzung durch Aufrufen von
GetInitializationStatus()
.- Wie finde ich heraus, warum ein bestimmtes Vermittlungsnetzwerk nicht bereit ist?
AdapterStatus.description()
beschreibt, warum ein Adapter nicht einsatzbereit ist Anzeigenanfragen. Siehe den Quellcode unserer Beispiel-Kurzanleitungs-App in GitHub ein Beispiel für das Logging des Vermittlungsadapterstatus.
Zusätzliche Ressourcen
Beispiel in GitHub
- Quellcode des Beispiels ansehen Kurzanleitung in GitHub.