Eine Möglichkeit, In-App-Produkte und Vorteile für Ihre Nutzer freizuschalten, besteht darin, Prämien oder Artikel zu erstellen, die Nutzer erhalten, nachdem sie sich eine Videoanzeige angesehen haben. Wenn Sie Produkte mit Prämie anbieten, können Nutzer In-App-Belohnungen und Vorteile erhalten, ohne direkt etwas kaufen zu müssen.
In diesem Dokument wird beschrieben, wie Sie Funktionen implementieren, die speziell für Produkte mit Prämien gedacht sind. Im Abschnitt Workflow-Diagramm dieser Seite wird der Prozess veranschaulicht.
Prämienprodukte Ihrer App identifizieren
Prämien haben eine SkuType
von INAPP
.
Damit Nutzer mehrere Anzeigen ansehen und mehrere Prämien erhalten können, müssen die Produkte genutzt werden.
Bevor Sie einem Nutzer ein Produkt mit 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
Zur Einhaltung der gesetzlichen Verpflichtungen im Zusammenhang mit Kindern und minderjährigen Nutzern, 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), sollte in Ihrer App angegeben werden, welche Anzeigen in den USA als für Kinder bestimmt gelten und welche Anzeigen auf Nutzer ausgerichtet sind, die das in ihrem Land geltende Mindestalter für die Einwilligung noch nicht erreicht haben. In der AdMob-Hilfe erfahren Sie, wann Sie Ihre Anzeigenanfragen als Inhalte für Kinder und wann Sie sie als Inhalte für Minderjährige kennzeichnen sollten. Außerdem wird beschrieben, welche Auswirkungen das hat.
Wenn Sie den Abrechnungsclient Ihrer App erstellen, sollten Sie überlegen, ob die Anzeigenanfragen mit Prämie als an Kinder gerichtet behandelt werden sollen oder ob sie sich an Nutzer unter dem Mindestalter für die Einwilligung in die Datenverarbeitung richten sollen. Wenn für die Anzeigenanfragen diese Einschränkungen gelten sollen, rufen Sie die Methoden setChildDirected()
und setUnderAgeOfConsent()
auf und übergeben Sie jeweils die entsprechenden Werte.
Im folgenden Code-Snippet wird gezeigt, wie Sie angeben, dass Videoanzeigen für Kinder oder für Nutzer unter dem 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 Nutzern die Möglichkeit geben, sich eine Videoanzeige anzusehen, um ein Produkt mit 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 das belohnte Produkt darstellt. Rufen Sie dann die Methode loadRewardedSku()
Ihres Abrechnungsclients auf und übergeben Sie das RewardLoadParams
-Objekt und ein RewardResponseListener
-Objekt.
Der RewardResponseListener
-Listener wird benachrichtigt, wenn das Video vollständig geladen wurde. Der Listener wird auch benachrichtigt, wenn das Video nicht verfügbar ist oder ein anderer Fehler auftritt, z. B. eine Serverzeitüberschreitung.
Beachten Sie die folgenden Best Practices, um die Geräteleistung beim Laden der Videos zu erhalten, die mit den Prämienprodukten Ihrer App verknüpft sind:
- Laden Sie maximal drei SKUs für Prämienprodukte gleichzeitig.
- Versuchen Sie, die Videos jedes Mal zu laden, wenn der Nutzer Ihre App aufruft. So können Sie prüfen, ob die Videos noch geladen und verfügbar sind.
Entscheiden Sie, wann die Videos geladen werden sollen, und achten Sie dabei auf ein optimales Verhältnis zwischen Bandbreitennutzung und App-Resistenz:
- Laden Sie die Videos frühestens nach dem Aufruf von
getSkuDetails()
für das zugehörige Produkt mit Prämie. Ihre App reagiert weiterhin sehr reaktionsschnell, aber Sie verschwenden möglicherweise Netzwerkdaten, wenn Sie ein Video laden, das sich der Nutzer nie ansieht. - Laden Sie das Video spätestens dann, wenn der Nutzer die Seite aufruft, auf der es angezeigt werden soll. In diesem Fall verschwendet Ihre App selten Bandbreite, aber der Nutzer muss möglicherweise einige Augenblicke warten, bis die Schaltfläche zum Ansehen des Videos anklickbar wird.
- Laden Sie die Videos frühestens nach dem Aufruf von
Das folgende Code-Snippet veranschaulicht das Laden einer Videoanzeige, die abgespielt wird, bevor der Nutzer das Prämienprodukt 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. } } }); }
Nutzern Käufe mit Prämie anbieten
Wenn die Google Play Billing Library das mit einem Produkt mit Prämie verknüpfte Video erfolgreich geladen hat, d. h. wenn die RewardResponseListener
eine responseCode
von BillingResponse.OK
erhält, kannst du den Abrechnungsvorgang starten.
Anzeigen für ein Produkt mit Prämie werden gestartet, indem Sie launchBillingFlow()
aufrufen, wie bei allen anderen Arten von In-App-Produkten. Auch wenn der Nutzer kein Produkt direkt kauft, um ein Prämienprodukt zu erhalten, müssen Sie den Abrechnungsvorgang aktivieren, damit der Nutzer das Produkt erhalten und verwenden kann.
Kauf nutzen
Wenn du deinen Abrechnungsclient darüber informieren möchtest, dass ein Nutzer ein Produkt mit Prämie erhalten und genutzt hat, verarbeite den Kauf in der onPurchasesUpdated()
-Methode deines Abrechnungsclient-Listeners. Hinweis: Käufe mit Prämie müssen in Anspruch genommen werden.
Prämienprodukte testen
Wenn Sie testen möchten, wie in Ihrer App Videoanzeigen geladen und Nutzern Produkte mit Prämie präsentiert werden, können Sie lizenzierte Tester verwenden, die standardmäßig Testanzeigen statt echter Anzeigen sehen. Informationen zum Einrichten von Konten für diese Tester finden Sie unter Nutzertests einer Google Play Billing-App.
Sie können auch die Produkt-ID android.test.reward
verwenden. Da es sich bei diesem Produkt um einen reservierten Namen in der Google Play-Abrechnung handelt, müssen Sie es nicht der Liste Ihrer In-App-Produkte in der Play Console hinzufügen.
Achtung: Verwenden Sie beim Testen der Prämienprodukte Ihrer App keine tatsächlichen Produkte. Andernfalls wird Ihr Konto möglicherweise als Spam- oder betrügerisches Konto gekennzeichnet.
Ersetzen Sie android.test.reward
jedoch nach Abschluss der Tests durch die Produkt-IDs Ihrer tatsächlichen Produkte mit Prämie, bevor Sie Ihre Produktions-App für Endnutzer bereitstellen.
Diagramm zum Workflow für Produkte mit Prämie
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 ein Produkt mit Prämie zu gewähren: