अपने उपयोगकर्ताओं के लिए इन-ऐप्लिकेशन प्रॉडक्ट और फ़ायदे अनलॉक करने का एक तरीका, इनाम में मिलने वाले प्रॉडक्ट बनाना है. इसके अलावा, उपयोगकर्ताओं को वीडियो विज्ञापन देखने के बाद मिलने वाले आइटम भी बनाए जा सकते हैं. इनाम वाले प्रॉडक्ट उपलब्ध कराने पर, उपयोगकर्ता सीधे तौर पर खरीदारी किए बिना, इन-ऐप्लिकेशन इनाम और फ़ायदे पा सकते हैं.
इस दस्तावेज़ में, इनाम में दिए जाने वाले प्रॉडक्ट के लिए फ़ंक्शन लागू करने का तरीका बताया गया है. इस पेज के वर्कफ़्लो डायग्राम सेक्शन में, प्रोसेस के बारे में बताया गया है.
अपने ऐप्लिकेशन में इनाम के तौर पर मिलने वाले प्रॉडक्ट की पहचान करना
इनाम में मिले प्रॉडक्ट के लिए,
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
ऑब्जेक्ट से जोड़ें. 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
को BillingResponse.OK
का responseCode
मिल गया है. ऐसे में, बिलिंग फ़्लो को लॉन्च किया जा सकता है.
इनाम वाले प्रॉडक्ट के विज्ञापन दिखाने के लिए, launchBillingFlow()
को कॉल करें. ठीक उसी तरह जैसे अन्य सभी तरह के इन-ऐप्लिकेशन प्रॉडक्ट के लिए किया जाता है. भले ही, उपयोगकर्ता इनाम में मिलने वाले प्रॉडक्ट को सीधे तौर पर खरीद न रहा हो, फिर भी आपको बिलिंग फ़्लो चालू करना होगा, ताकि उपयोगकर्ता प्रॉडक्ट को ऐक्सेस और इस्तेमाल कर सके.
खरीदारी का इस्तेमाल करना
अपने बिलिंग क्लाइंट को यह सूचना देने के लिए कि किसी उपयोगकर्ता को इनाम में मिला प्रॉडक्ट मिल गया है और उसने उसे इस्तेमाल कर लिया है, अपने बिलिंग क्लाइंट के onPurchasesUpdated()
Listener के तरीके में खरीदारी को मैनेज करें. ध्यान दें कि इनाम वाली खरीदारी इस्तेमाल करनी होगी.
इनाम में मिले प्रॉडक्ट की जांच करना
यह जांचने के लिए कि आपका ऐप्लिकेशन वीडियो विज्ञापनों को कैसे लोड करता है और उपयोगकर्ताओं को इनाम वाले प्रॉडक्ट कैसे उपलब्ध कराता है, लाइसेंस वाले टेस्टर का इस्तेमाल करें. डिफ़ॉल्ट रूप से, उन्हें असली विज्ञापनों के बजाय टेस्ट विज्ञापन दिखाए जाते हैं. इन टेस्टर के लिए खाते सेट अप करने का तरीका जानने के लिए, उपयोगकर्ता से Google Play Billing ऐप्लिकेशन की जांच कराने वाला लेख पढ़ें.
जांच करने का एक और तरीका यह है कि आप android.test.reward
प्रॉडक्ट आईडी का इस्तेमाल करें. यह प्रॉडक्ट, Google Play Billing में रिज़र्व किया गया नाम है. इसलिए, आपको इसे Play Console में, ऐप्लिकेशन में खरीदने के लिए उपलब्ध प्रॉडक्ट की सूची में जोड़ने की ज़रूरत नहीं है.
चेतावनी: अपने ऐप्लिकेशन में इनाम के तौर पर दिए जाने वाले प्रॉडक्ट की जांच करते समय, असल प्रॉडक्ट का इस्तेमाल न करें. ऐसा न करने पर, आपके खाते को स्पैम या धोखाधड़ी वाले खाते के तौर पर फ़्लैग किया जा सकता है.
हालांकि, टेस्टिंग पूरी करने के बाद, android.test.reward
को असल इनाम वाले प्रॉडक्ट के प्रॉडक्ट आईडी से बदलना न भूलें. ऐसा, ऐप्लिकेशन को असली उपयोगकर्ताओं के लिए डिप्लॉय करने से पहले करें.
इनाम में मिले प्रॉडक्ट के वर्कफ़्लो का डायग्राम
नीचे दिए गए सिलसिलेवार डायग्राम में दिखाया गया है कि उपयोगकर्ता, आपका ऐप्लिकेशन, और Google Play Billing Library, वीडियो विज्ञापन दिखाने और उपयोगकर्ता को इनाम वाले प्रॉडक्ट का ऐक्सेस देने के लिए, एक साथ कैसे काम करते हैं: