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

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

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

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

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

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

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

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

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

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

    • 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 को में से responseCode BillingResponse.OK—आप बिलिंग फ़्लो लॉन्च कर सकता है.

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

खरीदारी का आनंद लें

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

इनाम में मिले प्रॉडक्ट को टेस्ट करें

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

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

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

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

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

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

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