अगर आपका कोई ऐसा सवाल है जिसका जवाब इस पेज पर नहीं है, तो सहायता टीम से संपर्क करने के पेज पर दी गई संपर्क जानकारी का इस्तेमाल करके हमसे संपर्क करें.
इस पेज पर, अक्सर पूछे जाने वाले सवालों के जवाब अपडेट किए जा सकते हैं.
सामान्य
इस सेक्शन में ऐसे सवाल शामिल हैं जो किसी खास कैटगरी में नहीं आते.
क्या YouTube पर गेम को टेस्ट किया जा सकता है?
हां - डेवलपर पोर्टल का इस्तेमाल करें और टेस्टिंग से जुड़े निर्देशों का पालन करें.
मेरा गेम, Android या SDK टेस्ट सुइट पर रेंडर नहीं हो रहा है. मुझे क्या करना चाहिए?
जब गेम सिर्फ़ Android या SDK टेस्ट सुइट पर रेंडर नहीं होते हैं, तो आम तौर पर ऐसा WebView में गेम लोड होने के तरीके की वजह से होता है. परफ़ॉर्मेंस को बेहतर बनाने के लिए, गेम को शुरुआत में ऐसे वेबव्यू में लोड किया जाता है जो उपयोगकर्ता को नहीं दिखता. इस वजह से, वेबव्यू व्यूपोर्ट का साइज़ शून्य हो जाता है. इस समस्या को हल करने के लिए, यह तरीका अपनाने का सुझाव दिया जाता है:
(1) पुष्टि करें कि आपका गेम कोड, व्यूपोर्ट के साइज़ के बावजूद काम करता हो.
(2) पुष्टि करें कि आपके गेम का कोड, व्यूपोर्ट का साइज़ बदलने की सुविधा को हैंडल करता है. साथ ही, यह भी पक्का करें कि व्यूपोर्ट का साइज़ शून्य होने पर, गेम का कोड इंतज़ार न करे या क्रैश न हो.
हमारा सुझाव है कि विंडो इवेंट resize को सुनें और अपने गेम की ऊंचाई सिर्फ़ तब सेट करें, जब window.innerHeight शून्य न हो.
तकनीकी आवश्यकताएं
इस सेक्शन में, YouTube Playables की तकनीकी ज़रूरी शर्तों से जुड़े सवाल शामिल हैं.
क्या मुझे हर फ़ाइल के साइज़ की सीमा से छूट मिल सकती है?
नहीं. हर फ़ाइल के साइज़ की सीमा तय है.
शुरुआती बंडल के साइज़ का आकलन कैसे किया जाता है?
शुरुआती बंडल साइज़ को, gameReady इवेंट को कॉल किए जाने तक, Playable से डाउनलोड किए गए बाइट की कुल संख्या के तौर पर मेज़र किया जाता है.
Playables, ज़रूरत पड़ने पर एचटीटीपी कंप्रेशन का इस्तेमाल करते हैं. इसका मतलब है कि शुरुआती बंडल का साइज़, ऐसेट के कुल रॉ साइज़ से कम हो सकता है. SDK टूल के टेस्ट सुइट में शुरुआती बंडल के साइज़ की जांच करते समय, अगर आपका लोकल होस्ट ऐसेट को कंप्रेस नहीं कर रहा है, तो हो सकता है कि बंडल का साइज़, Playable के पब्लिश होने के बाद के साइज़ से ज़्यादा हो. Playable के लिए उपलब्ध कराए गए शुरुआती बंडल का असल साइज़ देखने के लिए, SDK टूल के टेस्ट सुइट का इस्तेमाल करें. यह सुइट, अपलोड किए गए बिल्ड की 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 के किसी भी एपीआई से जुड़े सवाल शामिल हैं.
ऑडियो इंटिग्रेशन से जुड़ी समस्याओं की वजह से, मेरे डिवाइस को सर्टिफ़िकेट नहीं मिला. मुझे क्या ठीक करना होगा?
ऑडियो से जुड़ी सबसे आम समस्या उन गेम में देखी जाती है जो ऑडियो चलाने से पहले, उपयोगकर्ता के इंटरैक्शन की उम्मीद करते हैं. हालांकि, YouTube Playables पर अपने-आप फ़ोकस किया जा सकता है. इसलिए, गेम को इस मामले को हैंडल करना चाहिए.
ऑडियो सेटअप का उदाहरण देखने के लिए, सैंपल देखें.
Unity
इस सेक्शन में, Unity पर बनाए गए मौजूदा गेम को YouTube Playables SDK के साथ इंटिग्रेट करने से जुड़े सवाल शामिल हैं. SDK टूल और Unity रैपर को इस्तेमाल करने के उदाहरण देखने के लिए, YouTube Playables Unity रैपर दस्तावेज़ देखें.
क्या Unity प्रीकंप्रेशन का इस्तेमाल किया जा सकता है?
हमारा सुझाव है कि आप अपनी ऐसेट को पहले से कंप्रेस न करें. शुरुआती बंडल के साइज़ की ज़रूरी शर्त, कंप्रेस करने के बाद के साइज़ का इस्तेमाल करती है. साथ ही, अपलोड की गई फ़ाइलों को शामिल करने के बाद, उन्हें कंप्रेस किया जाएगा. अगर आपको अब भी फ़ाइलों को पहले से कंप्रेस करने की ज़रूरत है, तो इस सेक्शन का बाकी हिस्सा देखें. इसके अलावा, अपने गेम के लिए सबसे सही विकल्प पर चर्चा करने के लिए, हमारे सहायता संपर्क पेज पर जाकर सहायता टीम से संपर्क करें.
कुछ गेम के लिए, Unity की .wasm या .data फ़ाइलों को पहले से कंप्रेस करना होगा.
प्रीकंप्रेशन का इस्तेमाल सिर्फ़ इन स्थितियों में करें, क्योंकि इससे लोड होने में ज़्यादा समय लग सकता है:
- अगर आपको फ़ाइल के साइज़ या बंडल के कुल साइज़ की ज़रूरी शर्तों को पूरा करने के लिए, Unity की प्रीकंप्रेशन सुविधा का इस्तेमाल करना है, तो "मेरी फ़ाइल या बंडल का कुल साइज़, तय सीमा के बराबर या उससे ज़्यादा है. मुझे क्या करना चाहिए?" देखें.
- अगर आपको सर्टिफ़िकेशन पाने के लिए, अपने गेम में Unity की प्रीकंप्रेशन सुविधा का इस्तेमाल करना है, तो इन ज़रूरी शर्तों को पूरा करना होगा:
- आपको ZIP प्रीकंप्रेशन का इस्तेमाल करना होगा.
- आपको अपनी लोडर स्क्रिप्ट में मौजूद फ़ाइलों को मैन्युअल तरीके से डीकंप्रेस करना होगा. हमारा सुझाव है कि आप Compression Streams API का इस्तेमाल करें.
ये अतिरिक्त ज़रूरी शर्तें, विज्ञापन दिखाने वाले आर्किटेक्चर की सीमाओं की वजह से लागू होती हैं. फ़िलहाल, अन्य एचटीटीपी हेडर या Brotli कंप्रेशन की सुविधा उपलब्ध नहीं है.
जब गेम बैकग्राउंड में चल रहा हो, तब मैं फ़्रेम अपडेट कैसे मैनेज करूं?
गेम के बैकग्राउंड में चलने के दौरान, फ़्रेम अपडेट मैनेज करने के लिए setTimeout का इस्तेमाल किया जा सकता है.
इससे ऑडियो रोकने जैसी कार्रवाइयों को कंट्रोल करने में मदद मिलती है. प्लेयर की सेटिंग में जाकर, "बैकग्राउंड में चलाएं" विकल्प को चालू करके, बैकग्राउंड में फ़्रेम मैनेजमेंट की पुष्टि की जा सकती है.
Unity गेम के लिए मेमोरी से जुड़ी पाबंदियां
Unity में मौजूद कुछ गेम, ज़्यादा मेमोरी का इस्तेमाल करेंगे. इससे, गेम खेलने के लिए मेमोरी के इस्तेमाल से जुड़ी पाबंदियां बढ़ सकती हैं. हमारा सुझाव है कि आप Unity WebGL में मेमोरी के लिए, डेवलपर का दस्तावेज़ पढ़ें.