इनाम वाले प्रॉडक्ट से जुड़ी खास सुविधाएं जोड़ें

उपयोगकर्ताओं के लिए, ऐप्लिकेशन में खरीदारी के लिए उपलब्ध प्रॉडक्ट और फ़ायदे अनलॉक करने का एक तरीका यह है कि इनाम वाले प्रॉडक्ट बनाए जाएं. ये ऐसे आइटम होते हैं जो उपयोगकर्ताओं को वीडियो विज्ञापन देखने के बाद मिलते हैं. इनाम वाले प्रॉडक्ट उपलब्ध कराने से, उपयोगकर्ताओं को ऐप्लिकेशन में इनाम और फ़ायदे पाने का मौका मिलता है. इसके लिए, उन्हें सीधे तौर पर खरीदारी करने की ज़रूरत नहीं पड़ती.

इस दस्तावेज़ में, इनाम वाले प्रॉडक्ट से जुड़ी सुविधाओं को लागू करने का तरीका बताया गया है. इस पेज के वर्कफ़्लो डायग्राम सेक्शन में, इस प्रोसेस के बारे में बताया गया है.

अपने ऐप्लिकेशन में इनाम वाले प्रॉडक्ट की पहचान करना

इनाम में मिलने वाले प्रॉडक्ट का SkuType, INAPP है. यह पक्का करने के लिए कि उपयोगकर्ता कई विज्ञापन देख सकें और उन्हें कई इनाम मिल सकें, प्रॉडक्ट का इस्तेमाल करना ज़रूरी है.

किसी उपयोगकर्ता को इनाम में मिलने वाला प्रॉडक्ट ऑफ़र करने से पहले, आपको उस प्रॉडक्ट के लिए SkuDetails हासिल करना होगा. इसके लिए, प्रॉडक्ट टाइप के तौर पर SkuType.INAPP का इस्तेमाल करके, querySkuDetailsAsync() को कॉल करें.

एलान करें कि उम्र के हिसाब से सही विज्ञापन दिखाए जा रहे हैं

बच्चों और कम उम्र के उपयोगकर्ताओं से जुड़ी कानूनी जवाबदेही का पालन करने में मदद पाने के लिए, आपके ऐप्लिकेशन को यह जानकारी देनी होगी कि अमेरिका में किन विज्ञापनों को बच्चों के लिए बने विज्ञापन के तौर पर माना जाना चाहिए. साथ ही, यह भी बताना होगा कि किन विज्ञापनों को उन उपयोगकर्ताओं के लिए टारगेट किया गया है जिनकी उम्र उनके देश में सहमति देने की मान्य उम्र से कम है. इसमें चिल्ड्रंस ऑनलाइन प्राइवसी प्रोटेक्शन ऐक्ट (कोपा) और जनरल डेटा प्रोटेक्शन रेगुलेशन (जीडीपीआर) जैसे कानून शामिल हैं. AdMob के सहायता केंद्र में बताया गया है कि आपको अपने विज्ञापन अनुरोधों को बच्चों को ध्यान में रखते हुए व्यवहार/बर्ताव के लिए कब टैग करना चाहिए और सहमति लेने की कानूनी उम्र से कम उम्र के लोगों को ध्यान में रखते हुए व्यवहार/बर्ताव के लिए कब टैग करना चाहिए. साथ ही, ऐसा करने के नतीजों के बारे में भी बताया गया है.

अपने ऐप्लिकेशन के लिए बिलिंग क्लाइंट बनाते समय, यह तय करें कि इनाम वाले विज्ञापन दिखाने के अनुरोधों को बच्चों के लिए प्रोसेस किया जाना चाहिए या उन्हें सहमति देने की मान्य उम्र से कम उम्र के उपयोगकर्ताओं को टारगेट करना चाहिए. अगर विज्ञापन अनुरोधों पर ये पाबंदियां लागू होनी चाहिए, तो setChildDirected() और setUnderAgeOfConsent() तरीकों को कॉल करें. साथ ही, हर तरीके में सही वैल्यू पास करें.

नीचे दिए गए कोड स्निपेट में बताया गया है कि वीडियो विज्ञापनों को बच्चों या सहमति देने की मान्य उम्र से कम उम्र के लोगों के लिए सही कैसे माना जाए:

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

वीडियो विज्ञापन लोड करना

उपयोगकर्ता को इनाम में मिलने वाला प्रॉडक्ट पाने के लिए, वीडियो विज्ञापन देखने का विकल्प दिखाने से पहले, आपको वीडियो लोड करना होगा. इसके लिए, RewardLoadParams ऑब्जेक्ट बनाएं और उसे SkuDetails ऑब्जेक्ट से जोड़ें. यह ऑब्जेक्ट, इनाम में मिलने वाले प्रॉडक्ट को दिखाता है. इसके बाद, बिलिंग क्लाइंट के loadRewardedSku() तरीके को कॉल करें. इसमें RewardLoadParams ऑब्जेक्ट और RewardResponseListener ऑब्जेक्ट पास करें.

वीडियो लोड हो जाने पर, RewardResponseListener लिसनर को सूचना दी जाती है. अगर वीडियो उपलब्ध नहीं है या कोई अन्य गड़बड़ी होती है, जैसे कि सर्वर का टाइम आउट होना, तो सुनने वाले को भी इसकी सूचना दी जाती है.

आपके ऐप्लिकेशन के इनाम वाले प्रॉडक्ट से जुड़े वीडियो लोड करते समय, डिवाइस की परफ़ॉर्मेंस को बनाए रखने के लिए, यहां दिए गए सबसे सही तरीके ध्यान में रखें:

  • एक बार में ज़्यादा से ज़्यादा तीन इनाम में मिलने वाले प्रॉडक्ट के एसकेयू लोड करें.
  • जब भी कोई व्यक्ति आपका ऐप्लिकेशन खोले, तब वीडियो लोड करने की कोशिश करें. इससे आपको यह पता लगाने में मदद मिलती है कि वीडियो अब भी लोड हैं और उपलब्ध हैं.
  • वीडियो लोड करने का समय तय करते समय, बैंडविथ के इस्तेमाल और ऐप्लिकेशन की परफ़ॉर्मेंस के बीच ऐसा तालमेल बिठाएं जो आपके इस्तेमाल के उदाहरण के लिए सबसे सही हो:

    • इनाम में मिलने वाले प्रॉडक्ट से जुड़े getSkuDetails() को कॉल करने के बाद, वीडियो को जल्द से जल्द लोड करें. आपका ऐप्लिकेशन बहुत तेज़ी से काम करता है. हालांकि, ऐसा हो सकता है कि आप ऐसे वीडियो को लोड करने में नेटवर्क डेटा बर्बाद कर दें जिसे उपयोगकर्ता कभी नहीं देखता.
    • जब उपयोगकर्ता उस पेज पर जाता है जहां वीडियो दिखाना है, तब वीडियो लोड करें. इस मामले में, आपका ऐप्लिकेशन शायद ही बैंडविथ का इस्तेमाल करता है. हालांकि, वीडियो देखने के लिए बटन पर क्लिक करने से पहले, उपयोगकर्ता को कुछ देर इंतज़ार करना पड़ सकता है.

यहां दिए गए कोड स्निपेट में, वीडियो विज्ञापन लोड करने की प्रोसेस दिखाई गई है. यह विज्ञापन, उपयोगकर्ता को इनाम में मिलने वाला प्रॉडक्ट मिलने से पहले चलता है:

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

उपयोगकर्ताओं को इनाम के तौर पर खरीदारी करने की सुविधा देना

अगर Google Play Billing Library, इनाम में मिलने वाले प्रॉडक्ट से जुड़े वीडियो को लोड कर लेती है, तो बिलिंग फ़्लो लॉन्च किया जा सकता है. इसका मतलब है कि अगर RewardResponseListener को BillingResponse.OK का responseCode मिलता है, तो बिलिंग फ़्लो लॉन्च किया जा सकता है.

इनाम में मिलने वाले प्रॉडक्ट के लिए विज्ञापन दिखाने की सुविधा चालू करने के लिए, launchBillingFlow() को कॉल करें. ऐसा ही सभी अन्य तरह के ऐप्लिकेशन में खरीदने के लिए प्रॉडक्ट के लिए किया जाता है. उपयोगकर्ता को इनाम में मिलने वाला प्रॉडक्ट पाने के लिए, सीधे तौर पर खरीदारी नहीं करनी होती. हालांकि, आपको बिलिंग फ़्लो चालू करना होगा, ताकि उपयोगकर्ता प्रॉडक्ट पा सके और उसका इस्तेमाल कर सके.

खरीदारी को कंज़्यूम करें

अपने बिलिंग क्लाइंट को यह सूचना देने के लिए कि किसी उपयोगकर्ता को इनाम वाला प्रॉडक्ट मिल गया है और उसने उसका इस्तेमाल कर लिया है, बिलिंग क्लाइंट के लिसनर के onPurchasesUpdated() तरीके में खरीदारी को मैनेज करें. ध्यान दें कि इनाम के तौर पर की गई खरीदारी को इस्तेमाल करना ज़रूरी है.

इनाम वाले प्रॉडक्ट की जांच करना

यह जांच करने के लिए कि आपका ऐप्लिकेशन वीडियो विज्ञापन कैसे लोड करता है और उपयोगकर्ताओं को इनाम वाले प्रॉडक्ट कैसे उपलब्ध कराता है, लाइसेंस वाले टेस्टर का इस्तेमाल करें. इन्हें डिफ़ॉल्ट रूप से असली विज्ञापनों के बजाय टेस्ट विज्ञापन मिलते हैं. इन टेस्टर के लिए खाते सेट अप करने का तरीका जानने के लिए, Google Play Billing की सुविधा वाले ऐप्लिकेशन का उपयोगकर्ता टेस्ट करना लेख पढ़ें.

जांच करने का एक और तरीका यह है कि android.test.reward प्रॉडक्ट आईडी का इस्तेमाल किया जाए. यह प्रॉडक्ट, Google Play Billing में रिज़र्व किया गया नाम है. इसलिए, आपको इसे Play Console में, ऐप्लिकेशन में खरीदने के लिए उपलब्ध प्रॉडक्ट की सूची में जोड़ने की ज़रूरत नहीं है.

चेतावनी: अपने ऐप्लिकेशन में इनाम वाले प्रॉडक्ट की टेस्टिंग करते समय, असली प्रॉडक्ट का इस्तेमाल न करें. ऐसा करने पर, आपके खाते को स्पैम या धोखाधड़ी करने वाले खाते के तौर पर फ़्लैग किया जा सकता है.

हालांकि, टेस्टिंग पूरी होने के बाद, पक्का करें कि आपने android.test.reward को इनाम वाले असली प्रॉडक्ट के आईडी से बदल दिया हो. ऐसा आपको प्रोडक्शन ट्रैक पर मौजूद ऐप्लिकेशन को असली उपयोगकर्ताओं के लिए डिप्लॉय करने से पहले करना होगा.

इनाम में मिलने वाले प्रॉडक्ट के वर्कफ़्लो का डायग्राम

यहां दिए गए क्रम के डायग्राम में दिखाया गया है कि वीडियो विज्ञापन दिखाने और उपयोगकर्ता को इनाम में मिलने वाले प्रॉडक्ट का ऐक्सेस देने के लिए, उपयोगकर्ता, आपका ऐप्लिकेशन, और Google Play Billing Library एक साथ कैसे काम करते हैं:

इनाम वाले प्रॉडक्ट के प्रोटोकॉल को दिखाने वाला सीक्वेंस डायग्राम
पहली इमेज. Google Play Billing का इस्तेमाल करके, इनाम में मिलने वाले प्रॉडक्ट की खरीदारी पूरी करने का तरीका