Aggiungere funzionalità specifiche dei prodotti premio

Un metodo per sbloccare i prodotti in-app e i vantaggi per i tuoi utenti è creare prodotti con premio o articoli che gli utenti ricevono dopo aver guardato un video pubblicità. Se fornisci prodotti premio, consenti agli utenti di ricevere contenuti in-app premi e vantaggi senza che debbano effettuare acquisti diretti.

Questo documento spiega come implementare funzionalità specifiche per gli annunci con premio prodotti di big data e machine learning. La sezione Diagramma del flusso di lavoro di questa pagina illustra il processo.

Identifica i prodotti premio della tua app

I prodotti premio hanno un SkuType di INAPP. Per garantire che gli utenti possano guardare più annunci e ricevere più premi, il i prodotti devono essere consumati.

Prima di poter offrire un prodotto premio a un utente, devi ottenere il SkuDetails per prodotto. A questo scopo, chiama querySkuDetailsAsync() con SkuType.INAPP come tipo di prodotto.

Dichiarare annunci adatti all'età

Per facilitare il rispetto degli obblighi di legge relativi a bambini e ragazzi e a utenti minorenni, incluso il Children's Online Privacy Protection Act (COPPA) e il Regolamento generale sulla protezione dei dati (GDPR), la tua app deve dichiarare quali annunci devono essere trattati come destinati ai minori negli Stati Uniti gli stati e gli annunci indirizzati agli utenti che non hanno raggiunto l'età del consenso digitale applicabile in il proprio paese. L'account Il Centro assistenza spiega quando codificare le richieste di annunci per contenuti destinati ai minori sperimentale e quando dovresti taggali per contenuti sotto l'età del consenso , nonché gli effetti di questa operazione.

Durante la creazione del client di fatturazione per la tua app, valuta se l'annuncio con premio le richieste devono essere trattate come rivolte ai minori o se devono essere indirizzate per gli utenti al di sotto dell'età del consenso digitale. Se le richieste di annunci devono avere questi restrizioni in vigore, chiama setChildDirected() e setUnderAgeOfConsent() trasferendo i valori appropriati in ciascun metodo.

Il seguente snippet di codice mostra come dichiarare che gli annunci video devono essere adatti a bambini e ragazzi o a utenti che non hanno raggiunto l'età del consenso digitale:

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();

Carica annunci video

Prima di mostrare all'utente la possibilità di guardare un annuncio video al fine di ricevere un prodotto premio, devi caricare il video. Per farlo, crea un RewardLoadParams, associandolo all'oggetto SkuDetails che rappresenta il prodotto premio. Quindi, chiama il numero loadRewardedSku() , passando l'oggetto RewardLoadParams e un RewardResponseListener .

Il listener RewardResponseListener riceve una notifica al termine del video Caricamento in corso. L'ascoltatore viene inoltre avvisato se il video non è disponibile o se un altro come un timeout del server.

Per mantenere le prestazioni del dispositivo durante il caricamento dei video associati al tuo tieni presenti le best practice riportate di seguito:

  • Carica al massimo tre SKU di prodotti premio alla volta.
  • Tenta di caricare i video ogni volta che l'utente accede alla tua app. Questo passaggio ti consente puoi controllare se i video sono ancora caricati e disponibili.
  • Quando decidi quando caricare i video, scegli il giusto equilibrio tra la larghezza di banda utilizzo e reattività dell'app più adatti al tuo caso d'uso:

    • Carica i video immediatamente dopo aver chiamato getSkuDetails() per prodotto premio associato. La tua app rimane molto reattiva, ma potresti sprecare dati di rete caricando un video che l'utente non guarda mai.
    • Al termine, carica il video quando l'utente accede alla pagina in cui viene visualizzato il video. In questo caso la tua app raramente spreca larghezza di banda, ma l'utente potrebbe dover attendere qualche istante prima che il pulsante per guardare il video diventa cliccabile.

Il seguente snippet di codice illustra la procedura per caricare un annuncio video che vengono riprodotti prima che l'utente riceva il prodotto premio:

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.
                  }
            }
        });
}

Offrire acquisti con premio agli utenti

Se la Libreria Fatturazione Google Play carica correttamente il video associato a un prodotto premio, ovvero se RewardResponseListener riceve responseCode di BillingResponse.OK—tu avviare il flusso di fatturazione.

Inizi a riprodurre gli annunci relativi a un prodotto premio chiamando il numero launchBillingFlow(), come per tutti gli altri tipi di contenuti in-app, prodotti. Anche se utente non effettua un acquisto diretto per ricevere un prodotto premio, abilitare il flusso di fatturazione in modo che l'utente possa ottenere e utilizzare prodotto.

Consuma l'acquisto

Per informare il cliente di fatturazione che un utente ha ricevuto e utilizzato un premio prodotto, gestisci le acquisto nel tuo listener del cliente di fatturazione onPurchasesUpdated(): . Tieni presente che gli acquisti con premio devono essere consumati.

Testare i prodotti premio

Per testare il modo in cui la tua app carica gli annunci video e fornisce agli utenti prodotti premio, si avvale di tester con licenza che, per impostazione predefinita, visualizzano annunci di prova anziché quelli. Per informazioni su come configurare gli account per questi tester, consulta l'articolo Eseguire il test degli utenti di un App Fatturazione Play.

Un altro metodo di test prevede l'uso del prodotto android.test.reward ID. Questo prodotto specifico è un nome riservato in Fatturazione Google Play, quindi non è necessario aggiungerlo all'elenco dei prodotti in-app in Play Console.

Attenzione: quando testi i prodotti premio della tua app, non utilizzare prodotti effettivi; altrimenti il tuo account potrebbe essere contrassegnato come spam o account fraudolento.

Al termine del test, tuttavia, assicurati di sostituire android.test.reward con gli ID prodotto del tuo premio effettivo dei prodotti prima di eseguire il deployment dell'app di produzione agli utenti finali.

Diagramma del flusso di lavoro dei prodotti premio

Il seguente diagramma di sequenza mostra in che modo l'utente, la tua app e La Libreria Fatturazione Google Play collabora per mostrare un annuncio video e concedere l'accesso degli utenti a un prodotto premio:

Diagramma di sequenza che mostra il protocollo dei prodotti premio
Figura 1. Passaggi per completare l'acquisto di un prodotto premio utilizzando Fatturazione Google Play
.