सर्टिफ़िकेशन के बारे में अक्सर पूछे जाने वाले सवाल

अगर आपको इस पेज पर अपने सवाल का जवाब नहीं मिलता है, तो सहायता टीम से संपर्क करने के पेज पर दी गई संपर्क जानकारी का इस्तेमाल करके हमसे संपर्क करें.

इस पेज पर, अक्सर पूछे जाने वाले सवालों के जवाब अपडेट किए जाते हैं.

सामान्य

इस सेक्शन में वे सभी सवाल शामिल होते हैं जो किसी खास कैटगरी में नहीं आते.

क्या YouTube एनवायरमेंट में गेम को टेस्ट किया जा सकता है?

हां - डेवलपर पोर्टल का इस्तेमाल करें और टेस्टिंग के निर्देशों का पालन करें.

मेरा गेम, Android या एसडीके टेस्ट सुइट पर रेंडर नहीं हो रहा है. मुझे क्या करना चाहिए?

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

(1) पुष्टि करें कि आपका गेम कोड, व्यूपोर्ट के साइज़ के हिसाब से काम करता हो.

(2) पुष्टि करें कि आपका गेम कोड, व्यूपोर्ट के साइज़ में बदलाव को मैनेज करता है. साथ ही, व्यूपोर्ट का साइज़ शून्य होने पर, गेम कोड इंतज़ार नहीं करता या काम नहीं करता.

हमारा सुझाव है कि विंडो इवेंट resize को सुनें और अपने गेम की ऊंचाई सिर्फ़ तब सेट करें, जब window.innerHeight शून्य न हो.

तकनीकी आवश्यकताएं

इस सेक्शन में, YouTube Playables की तकनीकी ज़रूरी शर्तों से जुड़े सवाल शामिल हैं.

क्या मुझे फ़ाइल के साइज़ की सीमा से छूट मिल सकती है?

नहीं. हर फ़ाइल का साइज़ तय सीमा से ज़्यादा नहीं होना चाहिए.

बंडल के शुरुआती साइज़ का आकलन कैसे किया जाता है?

बंडल के शुरुआती साइज़ का पता लगाने के लिए, यह देखा जाता है कि gameReady इवेंट कॉल होने तक, Playable ने कुल कितने बाइट डाउनलोड किए.

जब भी मुमकिन होता है, तब Playables एचटीटीपी कंप्रेस करने की सुविधा का इस्तेमाल करते हैं. इसका मतलब है कि शुरुआती बंडल का साइज़, ऐसेट के कुल रॉ साइज़ से कम हो सकता है. SDK Test Suite में शुरुआती बंडल साइज़ की जांच करते समय, अगर आपका लोकल होस्ट ऐसेट को कंप्रेस नहीं कर रहा है, तो हो सकता है कि साइज़ उतना न हो जितना कि खेलने लायक विज्ञापन पब्लिश होने के बाद होगा. किसी खेलने लायक विज्ञापन के लिए, शुरुआत में दिखाए गए बंडल का असल साइज़ देखने के लिए, एसडीके टेस्ट सुइट का इस्तेमाल करें. यह सुइट, अपलोड किए गए बिल्ड की index.html फ़ाइल पर पॉइंट करता है. इसके अलावा, gzip कंप्रेशन चालू करने के लिए, अपने लोकल सर्वर की सेटिंग में बदलाव करें.

मैंने किसी एक फ़ाइल या बंडल के कुल साइज़ की सीमा पूरी कर ली है या उससे ज़्यादा साइज़ की फ़ाइल अपलोड कर दी है. मुझे क्या करना चाहिए?

अपने गेम को ऑप्टिमाइज़ करने और परफ़ॉर्मेंस को बेहतर बनाने के लिए, ये लेख पढ़ें:

अगर मैं बंडल के कुल साइज़ की सीमा के अंदर फ़िट नहीं हो पाता, तो क्या होगा?

उपयोगकर्ताओं को हर बार गेम खेलने के लिए, आपके गेम की ऐसेट डाउनलोड करनी पड़ सकती हैं. गेम लोड होने में ज़्यादा समय न लगे और डेटा का इस्तेमाल कम हो, इसके लिए हमारा सुझाव है कि गेम के बंडल का कुल साइज़ जितना हो सके उतना कम होना चाहिए.

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

क्या मेरी इंटरनल ऐनलिटिक्स को बाहरी कॉल की ज़रूरी शर्तों से बाहर रखा जा सकता है?

नहीं. फ़िलहाल, Playables को कोई बाहरी कॉल नहीं करना चाहिए. अपने पार्टनर मैनेजर को बताएं कि आपको किस तरह के आंकड़ों में दिलचस्पी है, ताकि इस स्पेस में आने वाली सुविधाओं को प्राथमिकता दी जा सके.

यह गेम, रिमोट डेटाबेस से डेटा और लेवल फ़ेच करता है. क्या यह स्वीकार्य है?

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

मुझे इनलाइन स्क्रिप्ट को लागू करने के लिए, "कॉन्टेंट की सुरक्षा नीति" के उल्लंघन से जुड़ी गड़बड़ी दिख रही है

ऐसा तब होता है, जब JavaScript का इस्तेमाल करके अपने पेज पर <script> टैग बनाया और जोड़ा जाता है. सुरक्षा के लिए, YouTube कॉन्टेंट की सुरक्षा से जुड़ी नीति (सीएसपी) का इस्तेमाल करता है. इसके तहत, स्क्रिप्ट में एक खास सुरक्षा कोड होना ज़रूरी है. इसे "नॉन्स" कहा जाता है. YouTube, इस कोड को आपकी एचटीएमएल फ़ाइल में मौजूद स्क्रिप्ट में अपने-आप जोड़ देता है. हालांकि, आपको इसे कोड की मदद से बनाई गई किसी भी स्क्रिप्ट में मैन्युअल तरीके से जोड़ना होगा.

JavaScript का इस्तेमाल करके, प्रोग्राम के हिसाब से स्क्रिप्ट टैग जनरेट करते समय, आपको अपने पेज से नॉन्स ढूंढना होगा. इसके बाद, इसे अपने नए स्क्रिप्ट एलिमेंट पर लागू करना होगा.

उदाहरण:

const script = document.createElement('script');
script.src = '...';
// Find the nonce from the main page and apply it
script.nonce = document.querySelector('script[nonce]')?.nonce;
document.head.appendChild(script);

टेस्ट सुइट के निर्देशों में दिए गए दिशा-निर्देशों का इस्तेमाल करके, ऑफ़लाइन कॉन्फ़िगरेशन की जांच की जा सकती है.

SDK टूल इंटिग्रेशन

इस सेक्शन में, Playables SDK API से जुड़े सभी सवाल शामिल होते हैं.

ऑडियो इंटिग्रेशन से जुड़ी समस्याओं की वजह से, मुझे सर्टिफ़िकेशन नहीं मिला. मुझे क्या ठीक करना होगा?

आवाज़ से जुड़ी सबसे आम समस्या उन गेम में देखी जाती है जिनमें वीडियो चलाने से पहले उपयोगकर्ता के इंटरैक्शन की ज़रूरत होती है. हालांकि, YouTube Playables पर अपने-आप फ़ोकस किया जा सकता है. इसलिए, गेम को इस मामले को हैंडल करना होगा.

ऑडियो सेटअप के उदाहरण के लिए, सैंपल देखें.

Unity

इस सेक्शन में, YouTube Playables SDK के साथ मौजूदा Unity गेम को इंटिग्रेट करने से जुड़े सभी सवाल शामिल हैं. एसडीके और Unity रैपर इस्तेमाल करने के उदाहरणों के लिए, YouTube Playables Unity रैपर का दस्तावेज़ देखें.

क्या Unity प्रीकंप्रेशन का इस्तेमाल किया जा सकता है?

हमारा सुझाव है कि आप अपनी ऐसेट को पहले से कंप्रेस न करें. बंडल के शुरुआती साइज़ की ज़रूरी शर्त के लिए, कंप्रेस करने के बाद के साइज़ का इस्तेमाल किया जाता है. साथ ही, अपलोड की गई फ़ाइलों पर, शामिल करने के बाद कंप्रेस करने की प्रोसेस लागू होगी. अगर आपको अब भी फ़ाइलों को पहले से कंप्रेस करने की ज़रूरत है, तो इस सेक्शन का बाकी हिस्सा पढ़ें. इसके अलावा, अपने गेम के लिए सबसे सही विकल्प पर चर्चा करने के लिए, सहायता से जुड़े संपर्क पेज पर जाकर, सहायता टीम से संपर्क करें.

कुछ गेम के लिए, Unity की .wasm या .data फ़ाइलों को पहले से कंप्रेस करना होगा. प्रीकंप्रेशन का इस्तेमाल सिर्फ़ इन स्थितियों में करें, क्योंकि इससे लोड होने में ज़्यादा समय लग सकता है:

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

गेम के बैकग्राउंड में चलने के दौरान, फ़्रेम अपडेट को कैसे मैनेज किया जा सकता है?

गेम के बैकग्राउंड में चलने पर, फ़्रेम अपडेट मैनेज करने के लिए setTimeout का इस्तेमाल किया जा सकता है. इससे ऑडियो को रोकने जैसे व्यवहारों को कंट्रोल करने में मदद मिलती है. बैकग्राउंड फ़्रेम मैनेजमेंट की पुष्टि करने के लिए, प्लेयर की सेटिंग में जाकर "बैकग्राउंड में चलाएं" विकल्प चालू करें.

Unity गेम के लिए मेमोरी से जुड़ी पाबंदियां

Unity के कुछ गेम में काफ़ी मेमोरी का इस्तेमाल होता है. इससे, Playables के लिए मेमोरी के इस्तेमाल से जुड़ी पाबंदियां पूरी नहीं हो पाती हैं. हमारा सुझाव है कि आप Unity WebGL में मेमोरी के लिए, डेवलपमेंट से जुड़ा दस्तावेज़ पढ़ें.