يوضّح هذا المستند كيفية دمج "إحصاءات الألعاب" في لعبتك باستخدام Google Play Console. وتشمل هذه المقالة تنسيقات ملفات CSV وZIP الأساسية، وتوضّح كيفية إنشاء هذه الملفات واستيرادها وإدارتها.
إنشاء أحداث
لإنشاء حدث للعبة جديدة لم يتم نشرها، أكمِل الخطوات التالية:
- إنشاء ملف CSV للأحداث PlayerGameEvent.csv
- في Google Play Console، اختَر لعبة.
- في صفحة إحصاءات اللعب ضمن خدمات ألعاب Play (زيادة عدد المستخدمين > خدمات ألعاب Play > الإعداد والإدارة > إحصاءات اللعب)، اختَر إعداد الأحداث.
- في صفحة إعدادات الأحداث، أفلِت ملف CSV لتحميله.
- بعد إنشاء حدث، عليك إعداد الإحصاءات.
إعداد الإحصاءات
بعد إنشاء حدث، عليك إعداد الإحصاءات باتّباع الخطوات التالية:
- أنشئ ملف ZIP يحتوي على الإحصاءات وعمليات الترجمة والملفات الخاصة بالرموز إرشادات ملف ZIP الخاص بالإحصاءات.
- في Google Play Console، اختَر لعبة.
- في صفحة إحصاءات اللعب ضمن خدمات ألعاب Play (زيادة عدد المستخدمين > خدمات ألعاب Play > الإعداد والإدارة > إحصاءات اللعب)، اختَر إعداد الإحصاءات.
- في صفحة إعدادات إحصاءات الألعاب، أفلِت ملف ZIP لتحميله.
- بعد تحميل جميع الإحصاءات، يمكنك نشر لعبتك.
اختبار إحصاءات اللعب
للتأكّد من أنّ "إحصاءات الألعاب" تعمل على النحو المطلوب، اتّبِع الخطوات التالية لاختبارها:
- إعداد مسار اختبار داخلي
- أضِف حسابات اختبارية إلى مشروع لعبتك للمختبِرين.
- أنشئ ملفًا شخصيًا على "خدمات ألعاب Play" لأحد الحسابات التجريبية باستخدام تطبيق "ألعاب Play".
- افتح اللعبة باستخدام حساب الاختبار نفسه الذي أنشأت له ملفًا شخصيًا على "خدمات ألعاب Play".
- تأكَّد من ظهور "رسالة الترحيب" من "خدمات ألعاب Play" على الشاشة كإشارة إلى إتمام عملية المصادقة التلقائية بنجاح عند تشغيل اللعبة.
- يمكن لمستخدم الحساب التجريبي تشغيل اللعبة لتفعيل الأحداث. راجِع استجابة واجهة برمجة التطبيقات لمعرفة ما إذا تم تسجيل الأحداث.
نشر إحصاءات اللعبة
بعد الانتهاء من الاختبار، يجب نشر لعبتك. ويتم نشر جميع أحداث اللعبة وإحصاءاتها معها.
لنشر التطبيق، اتّبِع الخطوات التالية:
- في Google Play Console، اختَر لعبة.
- في صفحة إحصاءات اللعب ضمن خدمات ألعاب Play (زيادة عدد المستخدمين > خدمات ألعاب Play > الإعداد والإدارة > إحصاءات اللعب)، انقر على المراجعة والنشر.
- في صفحة النشر ضمن "خدمات ألعاب Play" (زيادة عدد المستخدمين > خدمات ألعاب Play > الإعداد والإدارة > النشر)، راجِع الإجراءات وحلّ المشاكل.
- انقر على نشر. يتم نشر جميع إحصاءات الألعاب.
حذف إحصاءات اللعبة
بعد نشر "إحصاءات اللعبة"، لا يمكن حذفها.
إرشادات ملف CSV للأحداث
الصف الأول من ملف CSV هو صف العناوين. يجب استيراد الأحداث باستخدام ملف CSV الخاص بالأحداث، مثل PlayerGameEvent.csv.
تنسيق ملف PlayerGameEvent.csv
يحتوي ملف CSV على الحدث المعلَن وسماته كقيم مفصولة بفواصل بالترتيب التالي:
Event Name,Property Name,Property Type
إذا أرسلت الحدث progressUpdate للسمة progressionStat، أضِف صفًا لهذا الحدث. يجب أن يحتوي هذا الحدث على السمة currentProgress على الأقل من النوع INT أو STRING، بالإضافة إلى أي سمات أخرى تريد إرسالها.
يتم وصف هذه الحقول في الجدول التالي:
| عناوين أعمدة CSV | مطلوب أو اختياري | القيم المقبولة |
|---|---|---|
| اسم الحدث | مطلوب | 50 حرفًا كحدّ أقصى يجب أن يتألف من أحرف وأرقام وشرطات سفلية فقط. في حال استخدام اسم الحدث الخاص |
| اسم الموقع | مطلوب | 50 حرفًا كحدّ أقصى يجب أن يتألف من أحرف وأرقام وشرطات سفلية فقط. فريد لكل حدث: يجب أن تكون أسماء المواقع فريدة ضمن الحدث نفسه. لا تستخدِم الكلمات الرئيسية المحجوزة التالية: |
| نوع الموقع | مطلوب | مطابقة سلسلة التعداد الحساسة لحالة الأحرف مع أحد أنواع البيانات المتوافقة:
INT64 وDOUBLE وSTRING وBOOL
|
متطلبات ملف PlayerGameEvent.csv:
- يتيح الملف 20 اسم حدث فريدًا كحد أقصى، مع ما يصل إلى 20 سمة لكل حدث.
- لا يمكن أن يكون محتوى الملف فارغًا ويجب أن يحتوي على صف واحد على الأقل.
مثال على جدول
| اسم الحدث | اسم الموقع | نوع الموقع |
|---|---|---|
| matchCompleted | المدة | DOUBLE |
| matchCompleted | عمليات القتل | INT64 |
| matchCompleted | isWinner | BOOL |
| matchCompleted | matchType | STRING |
| itemCollected | coinsAmount | INT64 |
| itemCollected | weaponType | STRING |
| progressUpdate | currentProgress | INT64 |
إرشادات ملف ZIP الخاص بالإحصاءات
يمكنك استيراد الإحصاءات في آنٍ واحد باستخدام ملف ZIP. اطّلِع على الجدول لمعرفة أسماء الملفات المحددة التي يجب استخدامها في ملف ZIP:
| اسم الملف | مطلوب أو اختياري | القيم المقبولة |
|---|---|---|
RepetitiveStatsConfig.csv
|
مطلوب | يشير الإحصاء المتكرّر إلى الإجراءات المتكرّرة التي ينفّذها اللاعبون داخل اللعبة. |
ProgressionStatConfig.csv
|
مطلوب | يمثّل إحصاء التقدّم مستوى تقدّم اللاعب في إحدى الألعاب. |
StatLocalizations.csv
|
اختياري | يوفّر ترجمات لأسماء إحصاءات الألعاب وأوصافها. |
| ملفات الرموز | مطلوب | تحتوي على رموز بتنسيق PNG أو JPEG أو JPG بحجم 512 × 512. |
يجب أن يستوفي ملف ZIP المتطلبات التالية:
- الحدّ الأقصى لحجم ملف ZIP: الحدّ الأقصى لإجمالي الحجم غير المضغوط هو 10 ميغابايت.
- الحد الأقصى لعدد الملفات: 53 ملفًا كحد أقصى (3 ملفات CSV و50 رمزًا) داخل أرشيف ZIP.
- الحدّ الأقصى للإحصاءات المجمّعة: 50 إحصاءً إجماليًا كحدّ أقصى في كل من
ProgressionStatConfig.csvوRepetitiveStatsConfig.csv - ملفات CSV المتوافقة:
ProgressionStatConfig.csvوRepetitiveStatsConfig.csvوStatLocalizations.csv(اختياري). إذا أردت تحميل إحصاءات التقدم فقط، لا تضمِّن ملف CSV الخاص بالإحصاءات المتكررة في ملف ZIP، وإلا ستعرض وحدة التحكّم رسالة خطأ. وينطبق الأمر نفسه إذا أردت تحميل إحصاءات متكررة فقط. - ملفات صور الرموز: PNG (.png) أو JPEG (.jpg أو .jpeg)
- يجب أن تكون جميع الرموز المُشار إليها في ملفات CSV متوفّرة في جذر ملف ZIP.
- يجب أن يشير إحصاء واحد على الأقل إلى جميع ملفات الصور المتوفّرة في ملف ZIP.
- بنية الدليل: يجب أن تكون جميع الملفات في جذر ملف ZIP. لا يُسمح بالأدلة الفرعية.
تنسيق RepetitiveStatsConfig.csv
يحتوي ملف CSV على الحدث المعلَن وسماته كقيم مفصولة بفواصل بالترتيب التالي:
Stat Id,Event Name,Event Property Name,Aggregation Type,Stat Display Name,Stat Description,Filter Property,Filter Operator,Filter Value,Is Competitive,Min limit,Max limit,Icon File Name,Good value direction,Unit
يتم وصف هذه الحقول في الجدول التالي:
| عناوين أعمدة CSV | مطلوب أو اختياري | القيم المقبولة |
|---|---|---|
| رقم تعريف الإحصاء | مطلوب | 100 حرف كحدّ أقصى يجب أن يتألف من أحرف وأرقام وشرطات سفلية فقط. يجب أن يكون المعرّف فريدًا بين جميع الإحصاءات في اللعبة. |
| اسم سمة الحدث | مطلوب | 50 حرفًا كحدّ أقصى |
| اسم الإحصاء المعروض | مطلوب | 50 حرفًا كحدّ أقصى الاسم المعروض التلقائي للإحصاء (اللغة التلقائية) يجب أن يكون فريدًا في جميع الإحصاءات. |
| Stat Description | مطلوب | 500 حرف كحدّ أقصى الوصف التلقائي للإحصاء |
| نوع التجميع | مطلوب | 50 حرفًا كحدّ أقصى SUM وMAX وMIN وCOUNT |
| فلترة الخاصية | اختياري | يجب ألا يزيد عن 50 حرفًا يجب أن يكون اسم خاصية محدَّدًا في الملف PlayerGameEvent.csv. |
| عامل الفلتر | اختياري | =, !=, >, <, >=, <=عوامل تشغيل مقارنة الفلاتر |
| قيمة الفلتر | اختياري | مقارنةً بـ "خاصية الفلتر"
يجب أن تكون قيمة الفلتر INT64, DOUBLE, BOOL, STRING.
|
| هل هي تنافسية؟ | مطلوب | true, false
|
| الحدّ الأدنى | مطلوب عندما تكون قيمة Is Competitive هي "صحيح" | الحد الأدنى للنتيجة المسموح بها للإحصاءات التنافسية |
| الحدّ الأقصى | مطلوب عندما تكون قيمة Is Competitive هي "صحيح" | الحدّ الأقصى للنتيجة المسموح بها للإحصاءات التنافسية |
| اسم ملف الرمز | مطلوب | اسم ملف صورة الرمز المُضمَّن في جذر ملف ZIP يجب ألا يتعارض مع أسماء ملفات الرموز المستخدَمة في الإحصاءات المتكرّرة. |
| اتجاه القيمة الجيدة | مطلوب | تحدّد ما إذا كانت القيم الأعلى INCREASING أو القيم الأقل DECREASING أفضل.
|
| وحدة | اختياري | تمثّل هذه السمة وحدة قياس القيم الرقمية أو قيم المدة الأولية. على سبيل المثال، KILOMETER وSECOND وPERCENTAGE وUNITLESS. |
في حال عدم الرغبة في استخدام شرط الفلتر، اترُك الخلية فارغة.
مثال على جدول
| رقم تعريف الإحصاء | اسم الحدث | اسم الموقع | التجميع | اسم الإحصاء المعروض | Stat Description | فلتر السمة (اختياري) | عامل الفلتر (اختياري) | قيمة الفلتر (اختيارية) | هل هي تنافسية؟ | minLimit | maxLimit | اسم ملف الرمز | الرقم التسلسلي | اتجاه القيمة الجيدة | وحدة |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | matchCompleted | المدة | MAX | Longest Match Survival | يشير ذلك إلى مدة بقاء اللاعب على قيد الحياة في أي مباراة | isWinner | = | TRUE | TRUE | 0 | 50 | stat1.png | 1 | في تراجع | ثانية |
| 2 | matchCompleted | isWinner | COUNT | المباريات التي فاز بها | يشير ذلك إلى عدد المباريات التي فاز بها أحد اللاعبين | isWinner | = | TRUE | TRUE | 0 | 50 | stat3.png | 2 | في تزايد | |
| 3 | matchCompleted | عمليات القتل | SUM | عمليات القتل في مباريات فردية | عدد عمليات القتل التي تم تنفيذها في مباريات فردية | matchType | = | "1-on-1" | خطأ | stat4.png | 4 | في تزايد | |||
| 4 | itemCollected | coinsAmount | SUM | إجمالي الذهب الذي تمّ جمعه | لاعب يجمع العملات المعدنية أثناء اللعب في مباراة | weaponType | = | "سيف" | خطأ | stat2.png | 3 | في تزايد |
تنسيق ملف ProgressionStatConfig.csv
يحتوي ملف CSV على الحدث المعلَن وسماته كقيم مفصولة بفواصل بالترتيب التالي:
Stat Id,Event Property Name,Stat Display Name,Stat Description,Icon File Name,Good value direction,Unit
سيتم عرض إحصاءات مستوى التقدّم كأول إحصاءات تظهر للاعب في ملفه الشخصي كلاعب.
يتم وصف هذه الحقول في الجدول التالي:
| عناوين أعمدة CSV | مطلوب أو اختياري | القيم المقبولة |
|---|---|---|
| رقم تعريف الإحصاء | مطلوب | 100 حرف كحدّ أقصى يجب أن يتألف من أحرف وأرقام وشرطات سفلية فقط. يجب أن يكون المعرّف فريدًا بين جميع الإحصاءات في اللعبة. |
| اسم الحدث | مطلوب | 50 حرفًا كحدّ أقصى يجب أن يشير إلى اسم الحدث المحدّد في تنسيق PlayerGameEvent.csv. |
| اسم سمة الحدث | مطلوب | 50 حرفًا كحدّ أقصى يجب أن يكون اسم خاصية محدّدًا في ملف PlayerGameEvent.csv. |
| اسم الإحصاء المعروض | مطلوب | يجب أن يكون الاسم فريدًا. |
| Stat Description | مطلوب | 50 حرفًا كحد أقصى الوصف التلقائي للإحصاء |
| اسم ملف الرمز | مطلوب | اسم ملف صورة الرمز المُضمَّن في جذر ملف ZIP يجب ألا يتعارض مع أسماء ملفات الرموز المستخدَمة في الإحصاءات المتكرّرة. |
| اتجاه القيمة الجيدة | مطلوب | تحدّد ما إذا كانت القيم الأعلى INCREASING أو القيم الأقل DECREASING أفضل.
|
| وحدة | اختياري | تمثّل هذه السمة وحدة قياس القيم الرقمية أو قيم المدة الأولية. على سبيل المثال، KILOMETER وSECOND وPERCENTAGE وUNITLESS. |
مثال على جدول
| معرّف الإحصاء | اسم سمة الحدث | اسم عرض الإحصاءات | وصف الإحصاء | اسم ملف الرمز | اتجاه القيمة الجيدة |
|---|---|---|---|---|---|
| 5 | currentProgress | المستوى | يجمع اللاعبون نقاط الخبرة من خلال لعب المباريات والانتقال إلى مستويات أعلى. | Level.png | زيادة |
تنسيق StatLocalizations.csv
يحتوي ملف CSV على الحدث المعلَن وسماته كقيم مفصولة بفواصل بالترتيب التالي:
Stat Id,Stat Display Name,Locale,Localized Stat Display Name,Localized Stat Description
يتم وصف هذه الحقول في الجدول التالي:
| عناوين أعمدة CSV | مطلوب أو اختياري | القيم المقبولة |
|---|---|---|
| رقم تعريف الإحصاء | مطلوب | 100 حرف كحدّ أقصى يجب أن يتألف من أحرف وأرقام وشرطات سفلية فقط. يجب أن يكون المعرّف فريدًا بين جميع الإحصاءات في اللعبة. |
| اسم الإحصاء المعروض | مطلوب | يجب أن يكون الاسم فريدًا. |
| اللغة | مطلوب | رمز اللغة، مثل en-US أضِف ترجمات للعبتك قبل تحديد اللغة. يُرجى العِلم أنّه لا يمكنك تحديد اللغة التلقائية. يمكنك العثور على رموز اللغات المتاحة في قائمة اللغات المتاحة. |
| Localized Stat Display Name | اختياري | الحدّ الأقصى 50 حرفًا. اسم عرض الإحصاءات المترجَم للّغة المحدّدة. |
| Localized Stat Description | اختياري | 500 حرف كحدّ أقصى وصف الإحصاءات المترجَم للغة المحدّدة |
مثال على جدول
| معرّف الإحصاء | اسم عرض الإحصاءات | رمز اللغة | اسم الإحصاء المترجَم (UTF-8) | وصف الإحصاءات المترجَم (UTF-8) | 1 | Longest Match Survival | es | Supervivencia más larga en partidos | Esto denota el tiempo de supervivencia de una jugadora en cualquier partido. | 1 | Longest Match Survival | fr | Survie du match le plus long | يشير ذلك إلى مدة بقاء لاعب على قيد الحياة في أي مباراة. | 4 | إجمالي الذهب الذي تمّ جمعه | es | Oro total recolectado | La jugadora recoge monedas mientras juega en un partido | 4 | إجمالي الذهب الذي تمّ جمعه | fr | Or total collecté | Le joueur collecte des pièces en jouant un match |
ملفات الرموز
يجب أن تكون الرموز التي تشير إليها في ملف .csv متوفّرة في أرشيف ZIP الحالي الذي تستورده.
قواعد التحقّق من صحة الرموز هي:
| سمة التحقّق | القيد أو القاعدة المفروضة |
|---|---|
| الحد الأقصى لحجم الملف | الحد الأقصى 1 ميغابايت (1,048,576 بايت) لكل ملف رمز. |
| الأبعاد | 512 × 512 بكسل بالضبط (العرض = 512، الارتفاع = 512) |
| نسبة العرض إلى الارتفاع | 1:1 (نسبة عرض إلى ارتفاع مربّعة) |
| التنسيقات المسموح بها | PNG (.png) وJPEG (.jpg و.jpeg) |
| موضع الإعلان في ملف ZIP | يجب أن يكون الملف في الدليل الجذر في ملف ZIP. |
| التحقّق من المرجع | يجب أن تكون جميع أسماء ملفات الرموز المحدّدة في أعمدة "اسم ملف الرمز" متوفّرة في ملف ZIP. |
| Orphan Check | يجب أن يشير إحصاء واحد على الأقل إلى جميع ملفات الصور داخل ملف ZIP. |
| التحقّق من وجود تعارض | يجب ألّا تتعارض أسماء ملفات الرموز في ProgressionStatConfig.csv مع RepetitiveStatsConfig.csv.
|
| المحتوى المكرّر المرئي | يتم وضع علامة على الرموز المكرّرة. |
إرشادات الرموز
يجب إنشاء الرموز بتنسيق PNG أو JPEG أو JPG بحجم 512 × 512.
يُستخدم الرمز نفسه مع جميع اللغات، لذا ننصحك بعدم تضمين أي نص أو محتوى بلغة معيّنة في الرمز.
مواصفات الوحدة
تتحكّم أعمدة Unit في كيفية تنسيق قيم الإحصاءات الأولية وتحديد لغتها للاعبين.
خصائص الإحصاءات الرقمية (INT64 وDOUBLE)
| قيمة الوحدة المسموح بها | مثال على القيمة الأولية |
| (فارغ) / UNITLESS / NONE | 1234567 |
| % / PERCENTAGE / PERCENT | 0.857 |
| المسافة/الطول: سنتيمتر، متر، كيلومتر، قدم، بوصة، ميل، ياردة، مليمتر، نانومتر | 15 (كيلومتر) |
| السرعة: KILOMETER_PER_HOUR وMETER_PER_SECOND وMILE_PER_HOUR | 60 (MILE_PER_HOUR) |
خصائص الإحصاءات غير الرقمية (STRING وBOOL)
يجب ترك أعمدة الوحدات فارغة.