ytgame
مساحة الاسم ذات المستوى الأعلى لحزمة تطوير البرامج (SDK) الخاصة بـ "هيّا نلعب على YouTube"
وهي متغيّر ذو نطاق عام في النافذة الحالية. يجب عدم تجاهل هذا المتغيّر.
وهي متغيّر ذو نطاق عام في النافذة الحالية. يجب عدم تجاهل هذا المتغيّر.
| مساحات الاسم | |
|---|---|
ads
|
الدوال والسمات ذات الصلة بالإعلانات |
engagement
|
الدوال والسمات ذات الصلة بتفاعل اللاعبين |
game
|
الدوال والسمات المتعلّقة بسلوكيات الألعاب العامة |
health
|
الوظائف والسمات ذات الصلة بصحة اللعبة |
system
|
الدوال والسمات المرتبطة بنظام YouTube |
| التعدادات | |
|---|---|
Sdk
|
أنواع الأخطاء التي تعرضها حزمة تطوير البرامج (SDK) الخاصة بـ "هيّا نلعب على YouTube" |
| الدروس | |
|---|---|
Sdk
|
كائن الخطأ الذي تعرضه حزمة تطوير البرامج (SDK) الخاصة بميزة "هيّا نلعب على YouTube" |
| المتغيّرات | |
|---|---|
IN_
|
تُستخدَم لتحديد ما إذا كانت اللعبة تعمل ضمن بيئة "هيّا نلعب". |
SDK_
|
إصدار حزمة تطوير البرامج (SDK) الخاصة بميزة "هيّا نلعب" في YouTube |
التعدادات
Const SdkErrorType
SdkErrorType
المتغيّرات
Const IN_PLAYABLES_ENV
IN_PLAYABLES_ENV: boolean
ytgame للتأكّد من أنّه تم تحميل حزمة SDK فعلاً.
- مثال
-
const inPlayablesEnv = typeof ytgame !== "undefined" && ytgame.IN_PLAYABLES_ENV;
// An example of where you may want to fork behavior for saving data. if (ytgame?.IN_PLAYABLES_ENV) { ytgame.game.saveData(dataStr); } else { window.localStorage.setItem("SAVE_DATA", dataStr); }
Const SDK_VERSION
SDK_VERSION: string
- مثال
-
// Prints the SDK version to console. Do not do this in production. console.log(ytgame.SDK_VERSION);
ytgame.SdkError
تمديد
Error
كائن الخطأ الذي تطرحه حزمة تطوير البرامج (SDK) الخاصة بميزة "هيّا نلعب على YouTube".
الكائن
الكائن
SdkError هو عنصر ثانوي من
Error
ويحتوي على حقل إضافي.
| الشركات المصنِّعة | |
|---|---|
constructor
|
|
| الخصائص | |
|---|---|
error
|
تمثّل هذه السمة نوع الخطأ. |
message
|
|
name
|
|
stack
|
|
الخصائص
errorType
errorType:
SdkErrorType
ytgame.ads
الدوال والسمات ذات الصلة بالإعلانات
| الدوال | |
|---|---|
request
|
يطلب عرض إعلان بيني. |
request
|
يطلب عرض "إعلان مقابل مكافأة" لنوع مكافأة معيّن. |
الدوال
requestInterstitialAd
requestInterstitialAd(): Promise<void>
يطلب عرض إعلان بيني.
لا يقدّم أي ضمانات بشأن ما إذا تم عرض الإعلان أم لا. لا تستخدِم واجهة برمجة التطبيقات هذه لمكافأة اللاعبين مقابل مشاهدة إعلان.
لا يقدّم أي ضمانات بشأن ما إذا تم عرض الإعلان أم لا. لا تستخدِم واجهة برمجة التطبيقات هذه لمكافأة اللاعبين مقابل مشاهدة إعلان.
- مثال
-
try { await ytgame.ads.requestInterstitialAd(); // Ad request successful, do something else. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. }
| المرتجعات | |
|---|---|
Promise<void>
|
وعد يتم تنفيذه عند نجاح الطلب أو رفضه/إلغاؤه عند تعذُّر تنفيذه. |
requestRewardedAd
requestRewardedAd(rewardId: string): Promise<boolean>
يطلب عرض إعلان مقابل مكافأة من نوع معيّن.
لا يقدّم أي ضمانات بشأن ما إذا كان الإعلان قد تم عرضه.
لا يقدّم أي ضمانات بشأن ما إذا كان الإعلان قد تم عرضه.
- مثال
-
try { const isRewardEarned = await ytgame.ads.requestRewardedAd("reward-123"); // Handle reward being earned or not. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. }
| المعلمات | |
|---|---|
rewardId: string
|
الحقل مطلوب. معرّف يحدّد بشكلٍ فريد نوع المكافأة التي يمكن المطالبة بها.
يجب استخدام معرّف فريد لكل نوع من المكافآت، وإعادة استخدام المعرّف نفسه في كل مرة يتم فيها تقديم نوع المكافأة المحدّد. على سبيل المثال، يمكنك جعل المعرّف قابلاً للقراءة أو معرّفًا فريدًا عالميًا (UUID). يمكنك تضمين هذا المعرّف كمعرّف مبرمَج في رمز لعبتك
للمكافأة المحدّدة. والمتطلّبات الوحيدة هي تقديم معرّف
وألا يتضمّن أي بيانات مستخدمين. مثلاً:
|
| المرتجعات | |
|---|---|
Promise<boolean>
|
وعد يتم تنفيذه عند نجاح الطلب مع القيمة true إذا استوفى المستخدم الشروط اللازمة للحصول على مكافأة، أو القيمة false إذا لم يستوفِها. ترفض الوعد أو تعرض خطأً عند تعذّر تنفيذ الطلب. |
ytgame.engagement
الدوال والسمات ذات الصلة بتفاعل اللاعبين
| التعدادات | |
|---|---|
Content
|
أنواع المحتوى المحتملة |
| واجهات | |
|---|---|
Content
|
كائن المحتوى الذي ترسله اللعبة إلى YouTube |
Score
|
كائن النتيجة الذي ترسله اللعبة إلى YouTube |
| الدوال | |
|---|---|
open
|
يطلب هذا الإجراء من YouTube فتح المحتوى الذي يتطابق مع معرّف المحتوى المقدَّم.
|
send
|
ترسل هذه الميزة نتيجة إلى YouTube. |
التعدادات
Const ContentType
الدوال
openYTContent
openYTContent(content: Content): Promise<void>
يطلب هذا الإجراء من YouTube فتح المحتوى الذي يتطابق مع معرّف المحتوى المقدَّم.
بشكل عام، سيتم فتح المحتوى في علامة تبويب جديدة على الويب. على الأجهزة الجوّالة، سيتم فتح فيديو في المشغّل المصغّر وسيحلّ Playable محلّ Playable المفتوح حاليًا.
بشكل عام، سيتم فتح المحتوى في علامة تبويب جديدة على الويب. على الأجهزة الجوّالة، سيتم فتح فيديو في المشغّل المصغّر وسيحلّ Playable محلّ Playable المفتوح حاليًا.
- مثال
-
// Open a video. async function showVideo(videoID: string) { try { await ytgame.engagement.openYTContent({ id: videoID, contentType: ytgame.engagement.ContentType.VIDEO, }); // Request successful, content may have opened. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. } } // Open a Playable. async function openDifferentPlayable(playableID: string) { try { await ytgame.engagement.openYTContent({ id: playableID, contentType: ytgame.engagement.ContentType.PLAYABLE, }); // Request successful, content may have opened. // On mobile, the new Playable will replace the current one. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. } }
| المعلمات | |
|---|---|
content:
Content
|
المحتوى الذي سيتم فتحه على YouTube |
| المرتجعات | |
|---|---|
Promise<void>
|
وعد يتم تنفيذه عند النجاح ورفضه/إصداره مع ytgame.SdkError عند التعذّر.
|
sendScore
sendScore(score: Score): Promise<void>
يرسل هذا الحدث نتيجة إلى YouTube.
يجب أن تمثّل النتيجة أحد جوانب التقدّم في اللعبة. إذا كانت هناك أبعاد متعددة، على المطوّر اختيار أحد الأبعاد لضمان الاتساق. سيتم ترتيب النتائج وسيتم عرض أعلى نتيجة في واجهة مستخدم YouTube، لذا يجب أن تتوافق أي واجهة مستخدم للنتائج العالية داخل اللعبة مع ما يتم إرساله من خلال واجهة برمجة التطبيقات هذه.
يجب أن تمثّل النتيجة أحد جوانب التقدّم في اللعبة. إذا كانت هناك أبعاد متعددة، على المطوّر اختيار أحد الأبعاد لضمان الاتساق. سيتم ترتيب النتائج وسيتم عرض أعلى نتيجة في واجهة مستخدم YouTube، لذا يجب أن تتوافق أي واجهة مستخدم للنتائج العالية داخل اللعبة مع ما يتم إرساله من خلال واجهة برمجة التطبيقات هذه.
- مثال
-
async function onScoreAwarded(score: number) { try { await ytgame.engagement.sendScore({ value: score }); // Score sent successfully, do something else. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. } }
| المعلمات | |
|---|---|
score:
Score
|
النتيجة التي سيتم إرسالها إلى YouTube |
| المرتجعات | |
|---|---|
Promise<void>
|
وعد يتم تنفيذه عند النجاح ورفضه/إصداره مع ytgame.SdkError عند التعذّر.
|
ytgame.engagement.Content
كائن المحتوى الذي ترسله اللعبة إلى YouTube
| الخصائص | |
|---|---|
content
|
نوع المحتوى المطلوب فتحه |
id
|
معرّف المحتوى الذي نريد فتحه |
الخصائص
Optional contentType
contentType?:
ContentType
VIDEO.
المعرِّف
id: string
ytgame.engagement.Score
كائن النتيجة الذي ترسله اللعبة إلى YouTube
| الخصائص | |
|---|---|
value
|
تمثّل هذه السمة قيمة النتيجة كعدد صحيح. |
الخصائص
value
value: number
ytgame.game
الدوال والسمات المتعلّقة بسلوكيات الألعاب العامة
| الدوال | |
|---|---|
first
|
يُعلم هذا الحدث YouTube بأنّ اللعبة قد بدأت في عرض اللقطات. |
game
|
يُعلم هذا الحدث YouTube بأنّ اللعبة جاهزة ليتفاعل معها اللاعبون.
|
load
|
تحميل بيانات اللعبة من YouTube على شكل سلسلة مسلسلة |
save
|
يحفظ بيانات اللعبة على YouTube في شكل سلسلة مسلسلة. |
الدوال
firstFrameReady
firstFrameReady(): void
يُعلم YouTube بأنّ اللعبة بدأت في عرض اللقطات.
يجب أن تستدعي اللعبة واجهة برمجة التطبيقات هذه. وفي حال عدم توفّرها، لن يتم عرض اللعبة للمستخدمين. يجب استدعاء
يجب أن تستدعي اللعبة واجهة برمجة التطبيقات هذه. وفي حال عدم توفّرها، لن يتم عرض اللعبة للمستخدمين. يجب استدعاء
firstFrameReady() قبل gameReady().
- مثال
-
function onGameInitialized() { ytgame.game.firstFrameReady(); }
gameReady
gameReady(): void
يُعلم هذا الإجراء YouTube بأنّ اللعبة أصبحت جاهزة ليتفاعل معها اللاعبون.
يجب أن تستدعي اللعبة واجهة برمجة التطبيقات هذه عندما تصبح قابلة للتفاعل. يجب عدم استدعاء واجهة برمجة التطبيقات هذه عندما لا تزال شاشة التحميل معروضة. وفي حال عدم توفّرها، لن تجتاز اللعبة عملية الحصول على شهادة اعتماد YouTube.
يجب أن تستدعي اللعبة واجهة برمجة التطبيقات هذه عندما تصبح قابلة للتفاعل. يجب عدم استدعاء واجهة برمجة التطبيقات هذه عندما لا تزال شاشة التحميل معروضة. وفي حال عدم توفّرها، لن تجتاز اللعبة عملية الحصول على شهادة اعتماد YouTube.
- مثال
-
function onGameInteractable() { ytgame.game.gameReady(); }
loadData
loadData(): Promise<string>
تحمّل هذه الدالة بيانات اللعبة من YouTube على شكل سلسلة متسلسلة.
يجب أن تتعامل اللعبة مع أي تحليل بين السلسلة والتنسيق الداخلي.
يجب أن تتعامل اللعبة مع أي تحليل بين السلسلة والتنسيق الداخلي.
- مثال
-
async function gameSetup() { try { const data = await ytgame.game.loadData(); // Load succeeded, do something with data. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. } }
| المرتجعات | |
|---|---|
Promise<string>
|
وعد يكتمل عند نجاح عملية التحميل ويتم رفضه مع ytgame.SdkError عند حدوث خطأ.
|
saveData
saveData(data: string): Promise<void>
يحفظ بيانات اللعبة على YouTube في شكل سلسلة تسلسلية.
يجب أن تكون السلسلة صحيحة ومنسّقة بشكل جيد بتنسيق UTF-16، ويجب ألا يتجاوز حجمها 3 ميغابايت. يجب أن تتعامل اللعبة مع أي تحليل بين السلسلة وتنسيق داخلي. إذا لزم الأمر، استخدِم
يجب أن تكون السلسلة صحيحة ومنسّقة بشكل جيد بتنسيق UTF-16، ويجب ألا يتجاوز حجمها 3 ميغابايت. يجب أن تتعامل اللعبة مع أي تحليل بين السلسلة وتنسيق داخلي. إذا لزم الأمر، استخدِم
String.isWellFormed() للتحقّق مما إذا كانت السلسلة منسّقة بشكل صحيح.
- مثال
-
async function saveGame() { try { ytgame.game.saveData(JSON.stringify(gameSave)); // Save succeeded. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. } }
| المعلمات | |
|---|---|
data: string
|
|
| المرتجعات | |
|---|---|
Promise<void>
|
وعد يتم تنفيذه عند نجاح عملية الحفظ، ويتم رفضه مع ظهور ytgame.SdkError عند تعذُّر الحفظ.
|
ytgame.health
الوظائف والسمات ذات الصلة بصحة اللعبة
| الدوال | |
|---|---|
log
|
تسجيل خطأ في YouTube |
log
|
تسجيل تحذير في YouTube |
الدوال
logError
logError(): void
تسجّل هذه الطريقة خطأً في YouTube.
ملاحظة: هذه الطريقة هي الأفضل ويتم تحديد معدّل استخدامها، ما قد يؤدي إلى فقدان البيانات.
ملاحظة: هذه الطريقة هي الأفضل ويتم تحديد معدّل استخدامها، ما قد يؤدي إلى فقدان البيانات.
- مثال
-
function onError() { ytgame.health.logError(); }
logWarning
logWarning(): void
تسجّل هذه الطريقة تحذيرًا في YouTube.
ملاحظة: هذه الطريقة هي الأفضل ويتم الحدّ من معدّل استخدامها، ما قد يؤدي إلى فقدان البيانات.
ملاحظة: هذه الطريقة هي الأفضل ويتم الحدّ من معدّل استخدامها، ما قد يؤدي إلى فقدان البيانات.
- مثال
-
function onWarning() { ytgame.health.logWarning(); }
ytgame.system
الدوال والسمات المرتبطة بنظام YouTube
| الدوال | |
|---|---|
get
|
تعرض هذه الطريقة اللغة التي تم ضبطها في إعدادات YouTube الخاصة بالمستخدم على شكل علامة لغة BCP-47.
|
is
|
تعرِض هذه السمة ما إذا كان صوت اللعبة مفعَّلاً في إعدادات YouTube. |
on
|
تضبط هذه السمة دالة ردّ يتم تشغيلها عند تنشيط حدث تغيير إعدادات الصوت من YouTube.
|
on
|
يضبط هذا الإجراء دالة ردّ يتم تشغيلها عند تنشيط حدث إيقاف اللعبة مؤقتًا من YouTube.
|
on
|
تضبط هذه السمة دالة ردّ سيتم تشغيلها عند بدء حدث استئناف اللعبة من YouTube.
|
الدوال
getLanguage
getLanguage(): Promise<string>
تعرض هذه السمة اللغة المحدّدة في إعدادات YouTube الخاصة بالمستخدم في شكل علامة لغة BCP-47.
يُرجى عدم استخدام وظائف أخرى لتحديد لغة المستخدم أو المنطقة المحلية، أو تخزين اللغة المفضّلة لديه في خدمة الحفظ على السحابة الإلكترونية. بدلاً من ذلك، استخدِم هذه الدالة لضمان اتّساق تجربة المستخدم على YouTube.
يُرجى عدم استخدام وظائف أخرى لتحديد لغة المستخدم أو المنطقة المحلية، أو تخزين اللغة المفضّلة لديه في خدمة الحفظ على السحابة الإلكترونية. بدلاً من ذلك، استخدِم هذه الدالة لضمان اتّساق تجربة المستخدم على YouTube.
- مثال
-
const localeTag = await ytgame.system.getLanguage(); // `localeTag` is now set to something like "en-US" or "es-419".
| المرتجعات | |
|---|---|
Promise<string>
|
وعد يكتمل عند الحصول على اللغة بنجاح ويتم رفضه مع ytgame.SdkError عند حدوث خطأ.
|
isAudioEnabled
isAudioEnabled(): boolean
تعرض هذه الدالة ما إذا كان صوت اللعبة مفعَّلاً في إعدادات YouTube.
يجب أن تستخدم اللعبة هذه الدالة لضبط حالة صوت اللعبة.
يجب أن تستخدم اللعبة هذه الدالة لضبط حالة صوت اللعبة.
- مثال
-
function initGameSound() { if (ytgame.system.isAudioEnabled()) { // Enable game audio. } else { // Disable game audio. } }
| المرتجعات | |
|---|---|
boolean
|
قيمة منطقية تشير إلى ما إذا كان الصوت مفعّلاً. |
onAudioEnabledChange
onAudioEnabledChange(callback: ((isAudioEnabled: boolean) => void)): (() => void)
يضبط هذا الإجراء دالة ردّ يتم تشغيلها عند تنشيط حدث تغيير إعدادات الصوت من
YouTube.
يجب أن تستخدم اللعبة واجهة برمجة التطبيقات هذه لتعديل حالة صوت اللعبة.مثال
يجب أن تستخدم اللعبة واجهة برمجة التطبيقات هذه لتعديل حالة صوت اللعبة.
ytgame.system.onAudioEnabledChange((isAudioEnabled) => {
if (isAudioEnabled) {
// Enable game audio.
} else {
// Disable game audio.
}
});| المعلمات | |
|---|---|
callback: ((isAudioEnabled: boolean) => void)
|
دالّة ردّ الاتصال التي سيتم تشغيلها |
| المرتجعات | |
|---|---|
(() => void)
|
دالة لإلغاء ضبط دالة رد الاتصال التي لا يتم استخدامها عادةً |
onPause
onPause(callback: (() => void)): (() => void)
يضبط هذا الإجراء دالة ردّ يتم تشغيلها عند تنشيط حدث إيقاف اللعبة مؤقتًا من YouTube. تتوفّر للعبة فترة قصيرة لحفظ أي حالة قبل إزالتها.
يتم استدعاء onPause لجميع أنواع الإيقاف المؤقت، بما في ذلك عندما يخرج المستخدم من اللعبة. ولا نضمن استئناف اللعبة.
يتم استدعاء onPause لجميع أنواع الإيقاف المؤقت، بما في ذلك عندما يخرج المستخدم من اللعبة. ولا نضمن استئناف اللعبة.
- مثال
-
ytgame.system.onPause(() => { pauseGame(); }); function pauseGame() { // Logic to pause game state. }
| المعلمات | |
|---|---|
callback: (() => void)
|
دالّة ردّ الاتصال التي سيتم تشغيلها |
| المرتجعات | |
|---|---|
(() => void)
|
دالة لإلغاء ضبط دالة رد الاتصال التي لا يتم استخدامها عادةً |
onResume
onResume(callback: (() => void)): (() => void)
تضبط هذه الطريقة دالة ردّ سيتم تشغيلها عند تنشيط حدث استئناف اللعبة من YouTube.
بعد إيقاف اللعبة مؤقتًا، لا يمكن ضمان استئنافها.
بعد إيقاف اللعبة مؤقتًا، لا يمكن ضمان استئنافها.
- مثال
-
ytgame.system.onResume(() => { resumeGame(); }); function resumeGame() { // Logic to resume game state. }
| المعلمات | |
|---|---|
callback: (() => void)
|
دالّة ردّ الاتصال التي سيتم تشغيلها |
| المرتجعات | |
|---|---|
(() => void)
|
دالة لإلغاء ضبط دالة رد الاتصال التي لا يتم استخدامها عادةً |