إذا كان لديك سؤال غير وارد في هذه الصفحة، يُرجى التواصل معنا باستخدام معلومات الاتصال الواردة في صفحة التواصل مع فريق الدعم.
قد يتم تعديل هذه الصفحة بالأسئلة الشائعة فور تلقّيها.
بنود عامة
يتضمّن هذا القسم أي أسئلة لا تندرج ضمن فئة معيّنة.
هل يمكنني اختبار اللعبة في بيئة YouTube؟
نعم، يمكنك استخدام بوابة مخصّصة للمطوّرين واتّباع تعليمات الاختبار.
لا يتم عرض لعبتي على Android أو حزمة اختبار SDK، فماذا أفعل؟
عندما لا يتم عرض الألعاب حصريًا على Android أو حزمة اختبار SDK، غالبًا ما يكون السبب هو كيفية تحميل الألعاب في WebView. لأسباب تتعلق بالأداء، يتم تحميل اللعبة في البداية في WebView لا يظهر للمستخدم، ما يؤدي إلى أن يكون حجم إطار العرض في WebView صفرًا. لحل هذه المشكلة، يُوصى بالحل التالي:
(1) تأكَّد من أنّ تطبيق الرموز البرمجية للعبتك يتم تنفيذه بغض النظر عن حجم إطار العرض.
(2) تأكَّد من أنّ رمز اللعبة يعالج تغيير حجم إطار العرض وأنّه لا يتوقف أو يتعطّل عندما يكون حجم إطار العرض صفرًا.
ننصحك بالاستماع إلى حدث النافذة resize وضبط ارتفاع لعبتك فقط عندما تكون قيمة window.innerHeight غير صفرية.
المتطلبات الفنية
يتضمّن هذا القسم أسئلة حول المتطلبات الفنية لألعاب فورية على YouTube.
هل يمكنني الحصول على إعفاء من الحدّ الأقصى لحجم الملف الفردي؟
لا، حجم الملف الفردي هو حدّ أقصى ثابت.
كيف يتم قياس حجم الحزمة الأوّلي؟
يتم قياس حجم الحزمة الأوّلي على أنّه إجمالي عدد وحدات البايت التي تم تنزيلها من خلال الإعلان القابل للّعب إلى أن يتم استدعاء الحدث gameReady.
تستخدم Playables ضغط HTTP عندما يكون ذلك ممكنًا، ما يعني أنّ حجم الحزمة الأوّلي قد يكون أصغر من إجمالي الحجم الأوّلي لمواد العرض. عند اختبار حجم الحزمة الأوّلي في حزمة اختبار حزمة تطوير البرامج (SDK)، إذا لم يضغط المضيف المحلي مواد العرض، قد يؤدي ذلك إلى حجم أكبر مما سيحدث بعد نشر إعلانك القابل للتشغيل. للاطّلاع على حجم الحزمة الأوّلي الفعلي الذي يتم عرضه لإعلان Playable، استخدِم حزمة اختبار SDK التي تشير إلى ملف index.html من إصدار تم تحميله أو عدِّل إعدادات الخادم المحلي لتفعيل ضغط gzip.
لقد وصلتُ إلى الحدّ الأقصى لحجم الملف الفردي أو الحزمة الإجمالية أو تجاوزته، فماذا عليّ أن أفعل؟
لتحسين لعبتك وأدائها، اطّلِع على المقالات التالية:
ماذا لو لم أتمكّن من الالتزام بالحدّ الأقصى لإجمالي حجم الحزمة؟
قد يضطر المستخدمون إلى تنزيل مواد العرض من لعبتك في كل مرة يلعبونها. لتجنُّب أوقات التحميل الطويلة واستخدام كميات كبيرة من البيانات، ننصحك بأن يكون إجمالي حجم حزمة اللعبة صغيرًا قدر الإمكان.
نشجّع مطوّري الألعاب على استخدام التحميل الكسول أو أنواع أخرى من التحميل المتزايد لمواد العرض أثناء كل جلسة لعب مع تقدّم المستخدمين، أو تقسيم مواد العرض حسب المستوى للسماح بتنزيل مواد العرض بكميات صغيرة موزّعة على مدار جلسة طويلة. في مثل هذه الحالات، قد لا يؤدي زيادة إجمالي حجم الحزمة إلى تراجع تجربة المستخدم، بل قد يؤدي في الواقع إلى تحسين تجربة المستخدم من خلال توفير المزيد من المحتوى في لعبتك مع تقليل المساحة التي يشغلها كل مستخدم. إذا كنت ترى أنّ لعبتك تعمل بهذه الطريقة وتبرر الحاجة إلى حجم إجمالي أكبر للحزمة، يُرجى التواصل معنا من خلال صفحة التواصل مع فريق الدعم لمناقشة حالة الاستخدام.
هل يمكن استبعاد الإحصاءات الداخلية من متطلبات المكالمات الخارجية؟
لا، يجب ألا تُجري Playables أي طلبات بيانات خارجية في الوقت الحالي. أخبِر مدير الشركاء عن نوع الإحصاءات التي تهمّك لكي يتم منح الأولوية للميزات المستقبلية في هذا المجال.
تجلب اللعبة البيانات والمستويات من قاعدة بيانات عن بُعد، فهل هذا مقبول؟
لا، ولكننا نختبر حاليًا إمكانية الوصول إلى البيانات عن بُعد مع عناوين محدّدة. في الوقت الحالي، يجب تضمين جميع بيانات اللعبة كجزء من حزمة اللعبة. إذا أردت تعديل أو تحديث مواد العرض أو المحتوى في لعبتك، يُرجى التواصل معنا باستخدام معلومات الاتصال الواردة في صفحة التواصل مع فريق الدعم لإرسال حزمة لعبة محدَّثة أو التواصل معنا للاستفسار أكثر إذا أردت أن يتم النظر في طلبك للانضمام إلى برنامجنا التجريبي.
يظهر لي خطأ بشأن انتهاك "سياسة أمان المحتوى" لتنفيذ نصوص برمجية مضمّنة
يحدث ذلك عند استخدام JavaScript لإنشاء علامة <script> وإضافتها إلى صفحتك. لأغراض الأمان، يستخدم YouTube "سياسة أمان المحتوى" (CSP) التي تتطلّب
أن تتضمّن النصوص البرمجية رمز أمان خاصًا يُعرف باسم "nonce". يضيف YouTube هذا الرمز تلقائيًا إلى النصوص البرمجية في ملف HTML، ولكن يجب إضافته يدويًا إلى أي نصوص برمجية تنشئها باستخدام الرمز.
عند إنشاء علامات برمجية آليًا باستخدام 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)
يتضمّن هذا القسم أي أسئلة تتعلّق بأي من واجهات برمجة التطبيقات في حزمة تطوير البرامج (SDK) الخاصة بـ Playables.
لم أنجح في الحصول على شهادة الاعتماد بسبب مشاكل في دمج الصوت، فما الذي يجب عليّ إصلاحه؟
تتعلّق مشكلة الصوت الأكثر شيوعًا بالألعاب التي تتطلّب تفاعل المستخدم قبل بدء التشغيل. ومع ذلك، قد يتم التركيز على "هيّا نلعب على YouTube" تلقائيًا، لذا يجب أن تتعامل اللعبة مع هذه الحالة.
للاطّلاع على مثال على إعداد الصوت، يمكنك مراجعة النماذج.
Unity
يتضمّن هذا القسم أي أسئلة حول دمج ألعاب Unity الحالية مع حزمة تطوير البرامج (SDK) الخاصة بـ "هيّا نلعب على YouTube". للاطّلاع على أمثلة حول كيفية استخدام حزمة تطوير البرامج (SDK) و"مغلِّف Unity"، يُرجى مراجعة مستندات مغلِّف Unity للألعاب الفورية على YouTube.
هل يمكنني استخدام ميزة الضغط المُسبَق في Unity؟
لا ننصح بضغط مواد العرض مسبقًا. يستخدم متطلب حجم الحزمة الأولي حجم ما بعد الضغط، وسيتم تطبيق الضغط على الملفات التي يتم تحميلها بعد نقل البيانات. إذا كنت لا تزال بحاجة إلى ضغط الملفات مسبقًا، يُرجى الاطّلاع على بقية هذا القسم أو التواصل مع فريق الدعم من خلال صفحة التواصل مع فريق الدعم لمناقشة الخيار الأفضل للعبتك.
ستحتاج بعض الألعاب إلى استخدام الضغط المُسبَق لملفات .wasm أو .data في Unity.
لا تستخدِم الضغط المُسبَق إلا في الحالات التالية، لأنّ ذلك قد يؤدي إلى إبطاء أوقات التحميل بشكل كبير:
- إذا كنت بحاجة إلى استخدام ميزة الضغط المُسبَق في Unity لتلبية متطلبات حجم الملف الفردي أو إجمالي حجم الحزمة، يُرجى الاطّلاع على "لقد وصلت إلى الحدّ الأقصى لحجم الملف الفردي أو إجمالي حجم الحزمة أو تجاوزته، فماذا عليّ أن أفعل؟".
- إذا كنت بحاجة إلى استخدام ميزة الضغط المُسبَق في Unity لاجتياز عملية الاعتماد،
يجب استيفاء المتطلبات التالية:
- يجب استخدام الضغط المسبق لملفات ZIP.
- يجب إلغاء ضغط الملفات يدويًا ضمن نص التحميل البرمجي. ننصحك باستخدام Compression Streams API.
تنبع هذه المتطلبات الإضافية من القيود المفروضة على بنية العرض. في الوقت الحالي، لا يتوفّر دعم لعناوين HTTP الإضافية أو ضغط Brotli.
كيف يمكنني إدارة تحديثات اللقطات عندما تكون اللعبة قيد التشغيل في الخلفية؟
يمكنك استخدام setTimeout لإدارة تحديثات اللقطات عندما تكون اللعبة في الخلفية.
يساعد ذلك في التحكّم في سلوكيات مثل إيقاف الصوت مؤقتًا. يمكنك التحقّق من إدارة الإطارات في الخلفية من خلال تفعيل خيار "التشغيل في الخلفية" في إعدادات المشغّل.
قيود الذاكرة لألعاب Unity
تستخدم بعض الألعاب في Unity قدرًا كبيرًا من الذاكرة، ما قد يؤدي إلى تجاوز القيود المفروضة على استخدام الذاكرة في الإعلانات القابلة للتشغيل. ننصحك باتّباع مستندات المطوّرين الخاصة بالذاكرة في Unity WebGL.