Eine Möglichkeit, In‑App-Produkte und ‑Vorteile für Ihre Nutzer freizuschalten, besteht darin, Prämien zu erstellen. Das sind Artikel, die Nutzer erhalten, nachdem sie sich eine Video anzeige angesehen haben. Wenn Sie Prämien anbieten, können Nutzer In‑App-Prämien und ‑Vorteile erhalten, ohne direkt etwas kaufen zu müssen.
In diesem Dokument wird erläutert, wie Sie Funktionen implementieren, die speziell für Prämien vorgesehen sind. Im Abschnitt Workflow-Diagramm auf dieser Seite wird der Prozess veranschaulicht.
Prämien Ihrer App identifizieren
Prämien haben einen
SkuType von
INAPP.
Damit Nutzer sich mehrere Anzeigen ansehen und mehrere Prämien erhalten können, müssen die Produkte eingelöst werden.
Bevor Sie einem Nutzer eine Prämie anbieten können, müssen Sie die
SkuDetails für das
Produkt abrufen. Rufen Sie dazu
querySkuDetailsAsync()
mit SkuType.INAPP als Produkttyp auf.
Altersgerechte Anzeigen deklarieren
Damit Sie die rechtlichen Verpflichtungen in Bezug auf Kinder und minderjährige Nutzer einhalten können, einschließlich des US-Gesetzes zum Schutz der Privatsphäre von Kindern im Internet (Children's Online Privacy Protection Act, COPPA) und der Datenschutz-Grundverordnung (DSGVO), sollten Sie in Ihrer App deklarieren, welche Anzeigen in den USA als auf Kinder ausgerichtet behandelt werden sollen und welche Anzeigen sich an Nutzer richten, die in ihrem Land noch nicht das geltende Mindestalter erreicht haben. In der AdMob Hilfe wird erläutert, wann Sie Ihre Anzeigenanfragen als auf Kinder ausgerichtet kennzeichnen sollten und wann als für Nutzer unter dem Mindestalter kennzeichnen sollten und welche Auswirkungen dies hat.
Wenn Sie den Abrechnungsclient Ihrer App erstellen, sollten Sie überlegen, ob die Anzeigenanfragen für Anzeigen mit Prämie als auf Kinder ausgerichtet behandelt werden sollen oder ob sie sich an Nutzer richten sollen, die noch nicht das gültige Mindestalter erreicht haben. Wenn für die Anzeigenanfragen diese
Einschränkungen gelten sollen, rufen Sie die
setChildDirected()
und
setUnderAgeOfConsent()
Methoden auf und übergeben Sie die entsprechenden Werte an die einzelnen Methoden.
Das folgende Code-Snippet zeigt, wie Sie deklarieren, dass Videoanzeigen für Kinder oder für Nutzer unter dem gültigen Mindestalter geeignet sein sollen:
Kotlin
val billingClient = BillingClient.newBuilder(context) .setListener(this) .setChildDirected(ChildDirected.CHILD_DIRECTED) .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT) .build()
Java
BillingClient billingClient = BillingClient.newBuilder(context) .setListener(this) .setChildDirected(ChildDirected.CHILD_DIRECTED) .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT) .build();
Videoanzeigen laden
Bevor Sie dem Nutzer die Möglichkeit geben, sich eine Videoanzeige anzusehen, um eine Prämie zu erhalten, müssen Sie das Video laden. Erstellen Sie dazu ein
RewardLoadParams-Objekt und verknüpfen Sie es mit dem SkuDetails-Objekt, das
die Prämie darstellt. Rufen Sie dann die Methode
loadRewardedSku()
Ihres Abrechnungsclients auf und übergeben Sie das RewardLoadParams-Objekt und ein
RewardResponseListener
-Objekt.
Der Listener RewardResponseListener wird benachrichtigt, wenn das Video geladen wurde. Der Listener wird auch benachrichtigt, wenn das Video nicht verfügbar ist oder ein anderer Fehler auftritt, z. B. ein Server-Timeout.
Damit die Geräteleistung beim Laden der Videos, die mit den Prämien Ihrer App verknüpft sind, nicht beeinträchtigt wird, sollten Sie die folgenden Best Practices beachten:
- Laden Sie maximal drei SKUs für Prämien gleichzeitig.
- Versuchen Sie, die Videos zu laden, wenn der Nutzer Ihre App öffnet. So können Sie prüfen, ob die Videos noch geladen und verfügbar sind.
Wählen Sie beim Festlegen des Zeitpunkts für das Laden der Videos die Balance zwischen Bandbreitennutzung und Reaktionsfähigkeit der App, die für Ihren Anwendungsfall am besten geeignet ist:
- Laden Sie die Videos frühestens, nachdem Sie
getSkuDetails()für die zugehörige Prämie aufgerufen haben. Ihre App bleibt sehr reaktionsschnell, aber Sie verschwenden möglicherweise Netzwerkdaten, wenn Sie ein Video laden, das der Nutzer sich nie ansieht. - Laden Sie das Video spätestens, wenn der Nutzer zu der Seite navigiert, auf der das Video angezeigt werden soll. In diesem Fall verschwendet Ihre App selten Bandbreite, aber der Nutzer muss möglicherweise einige Augenblicke warten, bevor die Schaltfläche zum Ansehen des Videos angeklickt werden kann.
- Laden Sie die Videos frühestens, nachdem Sie
Das folgende Code-Snippet zeigt, wie Sie eine Videoanzeige laden, die abgespielt wird, bevor der Nutzer die Prämie erhält:
Kotlin
if (skuDetails.isRewarded()) { val params = RewardLoadParams.Builder() .setSkuDetails(skuDetails) .build() mBillingClient.loadRewardedSku(params.build(), object : RewardResponseListener { override fun onRewardResponse(@BillingResponse responseCode : Int) { if (responseCode == BillingResponse.OK) { // Enable the reward product, or make // any necessary updates to the UI. } } }) }
Java
if (skuDetails.isRewarded()) { RewardLoadParams.Builder params = RewardLoadParams.newBuilder(); params.setSkuDetails(skuDetails); mBillingClient.loadRewardedSku(params.build(), new RewardResponseListener() { @Override public void onRewardResponse(int responseCode) { if (responseCode == BillingResponse.OK) { // Enable the reward product, or make // any necessary updates to the UI. } } }); }
Prämien an Nutzer vergeben
Wenn die Google Play Billing Library das Video, das mit
einer Prämie verknüpft ist, erfolgreich lädt, d. h. wenn der RewardResponseListener einen
responseCode von
BillingResponse.OK erhält, können Sie den Abrechnungsablauf starten.
Sie starten die Wiedergabe von Anzeigen für eine Prämie, indem Sie
launchBillingFlow() aufrufen,
wie bei allen anderen Arten von In‑App-
Produkten. Auch wenn der Nutzer keinen direkten Kauf tätigt, um eine Prämie zu erhalten, müssen Sie den Abrechnungsablauf aktivieren, damit der Nutzer das Produkt erhalten und verwenden kann.
Kauf einlösen
Wenn Sie Ihren Abrechnungsclient benachrichtigen möchten, dass ein Nutzer eine Prämie
erhalten und eingelöst hat, verarbeiten Sie den
Kauf in der
Methode
onPurchasesUpdated()
des Abrechnungsclient-Listeners. Prämien müssen eingelöst werden.
Prämien testen
Wenn Sie testen möchten, wie Ihre App Videoanzeigen lädt und Nutzern Prämien zur Verfügung stellt, verwenden Sie lizenzierte Tester, die standardmäßig Testanzeigen anstelle von echten Anzeigen erhalten. Informationen zum Einrichten von Konten für diese Tester finden Sie unter Nutzertests einer Google Play Billing-App durchführen.
Eine weitere Testmethode besteht darin, die Produkt-ID android.test.reward zu verwenden. Dieses Produkt ist ein reservierter Name in Google Play Billing. Sie müssen es also nicht der Liste der In‑App-Produkte in der Play Console hinzufügen.
Achtung: Verwenden Sie beim Testen der Prämien Ihrer App keine echten Produkte. Andernfalls wird Ihr Konto möglicherweise als Spam- oder Betrugskonto gekennzeichnet.
Wenn Sie mit dem Testen fertig sind, müssen Sie
android.test.reward durch die Produkt-IDs Ihrer tatsächlichen Prämien
ersetzen, bevor Sie Ihre Produktions-App für Endnutzer bereitstellen.
Diagramm des Workflows für Prämien
Das folgende Sequenzdiagramm zeigt, wie der Nutzer, Ihre App und die Google Play Billing Library zusammenarbeiten, um eine Videoanzeige zu präsentieren und dem Nutzer Zugriff auf eine Prämie zu gewähren: