تنفيذ اختبارات A/B للعبة Unity باستخدام ميزة "الإعداد عن بُعد في Firebase"

1. مقدمة

في هذا الدرس العملي، ستتعلّم كيفية إنشاء تجربة "الإعداد عن بُعد" باستخدام اختبار A/B للعبة النموذجية MechaHamster: Level Up with Firebase edition التي عدّلتها في تجهيز لعبتك باستخدام ميزة "الإعداد عن بُعد" في Firebase.

يتيح لك "اختبار A/B" باستخدام "الإعداد عن بُعد" اختبار التغييرات في واجهة المستخدم أو الميزات أو حملات التفاعل في تطبيقك على شريحة مستهدَفة من الجمهور قبل طرحها على شريحة أكبر. يمكنك أيضًا استخدام نتائج التجربة من أجل:

  • تحديد صيغ قيم المَعلمات التي تحسّن المقاييس الرئيسية، مثل الإيرادات ومعدّل الاحتفاظ بالمستخدمين
  • التعرّف على المجموعات الفرعية من المستخدمين التي تفضّل كل صيغة
  • جمع بيانات التجربة وتخزينها لإجراء تحليل إضافي حول تأثيرات ضبط قيم مختلفة للمَعلمات

هذه هي فكرة اختبار A/B الأساسية: فهو يتيح لك استخدام الرمز البرمجي الذي تم إعداده لميزة "الإعداد عن بُعد" وإطلاق تجارب تتحكّم في القيم التي تتلقّاها الأجهزة، وذلك استنادًا إلى شروط "الإعداد عن بُعد" (بما في ذلك خصائص المستخدمين في "إحصاءات Google") وعمليات الطرح بالنسبة المئوية وأحداث الإحالات الناجحة في "إحصاءات Google" وبعض المجموعات من هذه العناصر.

أولاً، عليك تنفيذ شرط يحدّد المستخدمين الذين سيتم تضمينهم في التجربة من خلال ضبط خصائص المستخدم استنادًا إلى إجراءات المستخدم. بعد ذلك، ستنشئ تجربة اختبار A/B تستخدم خصائص المستخدِم في "إحصاءات Google" لتحديد العملاء الذين سيتم تضمينهم في التجربة. وأخيرًا، ستستخدم هذه البيانات لمعرفة المزيد عن جمهورك.

أهداف الدورة التعليمية

  • كيفية إعداد اختبار A/B باستخدام قيم "الإعداد عن بُعد" التي تمّ تزويدها بأدوات القياس
  • كيفية استخدام خصائص المستخدمين في "إحصاءات Google" كجزء من شروط القبول في اختبارات A/B

المتطلبات الأساسية

المتطلبات

  • الإصدار 2019.1.0f1 أو الإصدارات الأحدث من Unity مع إمكانية إنشاء إصدارات متوافقة مع iOS و/أو Android

2. تفعيل "قائمة تصحيح الأخطاء"

تتضمّن اللعبة قائمة تصحيح أخطاء مخفية، ويتوفّر زر للوصول إلى هذه القائمة في اللعبة، ولكنّه غير مفعّل حاليًا. يجب تفعيل الزر للوصول إليه من عنصر MainMenu الجاهز للاستخدام.

  1. في أداة تعديل Unity، انقر على علامة التبويب المشروع (Project)، ثم ضمن مواد العرض (Assets)، وسِّع الهامستر (Hamster) > الكائنات الجاهزة (Prefabs) > القوائم (Menus) وانقر على القائمة الرئيسية (MainMenu).

علامة التبويب "المشروع" في محرّر Unity التي تعرض مواد العرض هامستر، عناصر جاهزة، قوائم

  1. في بنية الكائن الجاهز، ابحث عن الكائن الفرعي غير المفعّل الذي يحمل الاسم DebugMenuButton وانقر عليه لفتحه في علامة التبويب Inspector.

يعرض محرر Unity القائمة الرئيسية مع إيقاف DebugMenu

  1. في علامة التبويب Inspector، ضَع علامة في المربّع في أعلى يمين الصفحة بجانب حقل النص الذي يحتوي على DebugMenuButton لتفعيله.

علامة التبويب "أداة الفحص" الخاصة بـ DebugMenuButton\nمع مربّع الاختيار

  1. احفظ العنصر الجاهز.

إذا شغّلت اللعبة في المحرِّر أو على جهازك، من المفترض أن تتمكّن الآن من الوصول إلى القائمة.

3- تفعيل القائمة الفرعية "الإعداد عن بُعد"

  1. من علامة التبويب المشروع في Unity Editor، وسِّع مواد العرض > Hamster > Prefabs > القوائم وانقر نقرًا مزدوجًا على العنصر DebugMenu لفتحه في علامة التبويب Hierarchy في المحرّر.

    عنصر DebugMenu مدمج ضمن Assets وHamster وPrefabs وMenus
  2. في علامة التبويب التسلسل الهرمي، وسِّع التسلسل الهرمي وانقر على العنصر الفرعي ضِمن DebugMenu > Panel، والذي يحمل التصنيف Remote Config Actions.

إجراءات Remote Config مدمجة ضمن\nCanvas وDebugMenu

  1. في علامة التبويب Inspector في Unity، فعِّل Remote Config Actions من خلال وضع علامة في المربّع على يمين حقل النص الذي يحتوي على اسم العنصر.

محرّر Unity مع ميزة "الإعداد عن بُعد"\nتفعيل الإجراءات ضمن DebugMenu وPanel

يحتوي هذا العنصر على عنصرَين ثانويَين من نوع GameObject باسم Set Bored Of Subtitle وSet Enjoys Subtitle، وكلاهما مضبوط على استدعاء طرق حالية ولكن غير منفَّذة في DebugMenu.cs.

4. إعادة ضبط الإعداد التلقائي للترجمة والشرح إلى الإعداد التلقائي داخل التطبيق

في الدرس العملي السابق، ألغيت القيمة التلقائية لمَعلمة كملف JSON واستخدمت شروطًا لعرض صيغ مختلفة. كجزء من هذا الدرس العملي، ستحذف الشرط الذي أنشأته وتعيد تقديم القيمة التلقائية داخل التطبيق، ولن يتم استبدالها إلا بنتيجة اختبار A/B.

لإعادة تفعيل الإعداد التلقائي داخل التطبيق، اتّبِع الخطوات التالية:

  1. افتح صفحة "الإعداد عن بُعد" في وحدة تحكّم Firebase وانقر على رمز القلم الرصاص بجانب المَعلمة subtitle_override لفتح اللوحة الجانبية تعديل المَعلمة.
  2. انقر على الرمز X بجانب الشرط لحذفه.
  3. بجانب القيمة التلقائية المتبقية، فعِّل خيار استخدام الإعداد التلقائي داخل التطبيق.

حذف شرط من محرّر مَعلمات Remote Config

  1. انقر على حفظ لحفظ التغييرات، ثم انقر على نشر التغييرات لنشرها.خيار "نشر التغييرات" في صفحة "الإعداد عن بُعد"

5- ضبط خصائص المستخدِمين في دوال تصحيح الأخطاء

ستكتب الآن نصوص الدوال لبعض دوال "إحصاءات Google" التي تم ضبطها مسبقًا ولكن لم يتم تنفيذها في DebugMenu.cs (يمكن العثور عليها في Assets > Hamster > Scripts > States).

تؤدي هذه الدوال إلى ضبط خصائص المستخدم، وهي طرق لوصف شرائح من قاعدة المستخدمين ويتم استخدامها لتسجيل رأي المستخدم في ترجمة اللعبة.

نفِّذ SetUserBoredOfSubtitle وSetUserEnjoysSubtitle من خلال البحث عن الإصدارات الحالية منهما في DebugMenu.cs واستبدالها على النحو التالي:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

إذا تم ضبط تطبيقك بشكل صحيح باستخدام "إحصاءات Google"، يمكنك استدعاء إحدى هاتين الدالتين لإتاحة الموقع لشروط "الإعداد عن بُعد". لإجراء مكالمة مع SetUserBoredOfSubtitle من جهاز جوّال، ابدأ اللعبة واضغط على زر قائمة تصحيح الأخطاء في القائمة الرئيسية، ثم اضغط على ضبط الملل من الترجمة.

6. إنشاء سمة مخصّصة

بعد ذلك، عليك إعداد صيغ مختلفة للترجمة والشرح في subtitle_override لمعرفة أيّ صيغة تحقّق أفضل أداء. ولكن في اختبار أ/ب، لن تعرض هذه الصيغ إلا للمستخدمين الذين تتضمّن مشاعرهم بشأن العنوان الفرعي الحالي (كما هو مسجّل في subtitle_sentiment) كلمة "مللت".

ستستخدِم سمة مخصّصة لإنشاء مَعلمات مخصّصة وتتبُّعها في أحداث "إحصاءات Google". اطّلِع على المقاييس والسمات المخصّصة لمزيد من المعلومات.

لإنشاء سمة مخصّصة جديدة، اتّبِع الخطوات التالية:

  1. افتح وحدة تحكّم Firebase، ووسِّع قائمة الإحصاءات، ثم انقر على التعريفات المخصّصة.
  2. من صفحة "التعريفات المخصّصة"، انقر على إنشاء سمات مخصّصة.
  3. في نافذة سمة مخصّصة جديدة، اضبط اسم السمة على "المشاعر في الترجمة والشرح"، ومن القائمة المنسدلة النطاق، اختَر المستخدِم.
  4. في حقل خاصية المستخدِم، اختَر subtitle_sentiment.

7. إعداد تجربة اختبار A/B

بعد ذلك، أنشئ تجربة اختبار A/B لضبط قيم مختلفة لـ subtitle_override ليتم اختبارها مقابل بعضها البعض من أجل تحسين معدّل الحفاظ على المستخدمين لمدة يومَين إلى ثلاثة أيام.

  1. أولاً، انقر على تعديل في المَعلمة subtitle_override في صفحة "الإعداد عن بُعد" في وحدة تحكّم Firebase:

المَعلمة subtitle_override في صفحة "الإعداد عن بُعد"، مع عرض خيار "تعديل"

  1. من مربّع الحوار تعديل المَعلمة الذي يظهر، انقر على إضافة معلَمة جديدة.

خيار "إضافة تجربة جديدة" في صفحة "تعديل المَعلمات" في Remote Config

  1. من القائمة التي تظهر، اختَر تجربة.

صفحة مَعلمات "الإعداد عن بُعد": إضافة تجربة جديدة

  1. أدخِل اسمًا ووصفًا لتجربتك.

قسم "اسم التجربة ووصفها"

  1. بعد ذلك، اختَر شروط الاستهداف. أولاً، اختَر تطبيقك من القائمة المنسدلة.

خطوة "الاستهداف" في إعدادات "اختبار A/B"، مع اختيار تطبيق

  1. بعد ذلك، انقر على و لإضافة شرط جديد، ثم اختَر سمة المستخدم واختَر subtitle_sentiment. إذا لم يظهر، أدخِله يدويًا.
  2. بما أنّك تريد ضبط ترجمة فقط للمستخدمين الذين يتضمّن شعورهم الحالي بشأن الترجمة "مللت"، اختَر يحتوي على واكتب bored.
  3. اختياريًا، اختَر النسبة المئوية من الجمهور الذي يستوفي المعايير أعلاه لعرض الاختبار عليه. اختَر %100 لتجنُّب العشوائية التي لا يمكنك التحكّم فيها بسهولة.

قسم الاستهداف في "اختبار A/B" مع تحديد\nsubtitle_sentiment

  1. بعد ذلك، اختَر هدفًا سيسعى الاختبار إلى تحسينه إلى أقصى حدّ. اختَر الاحتفاظ بالبيانات (من يومَين إلى 3 أيام).

قسم "أهداف اختبار A/B"

  1. بعد ذلك، اضبط مَعلمات التجربة وأنشئ صيغًا مختلفة للترجمة والشرح . هذه الصيغ هي القيم المختلفة التي ستعرضها ميزة "اختبار A/B" للمستخدمين الذين يتضمّن subtitle_sentiment الكلمة "مللت"، وستحدّد ميزة "اختبار A/B" الصيغة الأفضل لزيادة معدّل الاحتفاظ بالمستخدمين إلى أقصى حد.
  2. أدخِل قيمة المَعلمة التالية للنسخة الأصلية (أ):
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. أدخِل قيمة المَعلمة التالية للصيغة B:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. اضبط نسب الأسعار المتغيرة باستخدام أعداد صحيحة على النحو التالي:
    • المرجع: 1
    • النسخة أ: 100
    • الخيار ب: 100
    سيؤدي ذلك إلى إجمالي أوزان بنسبة% 0.5 للإصدار الأساسي، و% 49.8 للإصدار "أ"، و% 49.8 للإصدار "ب".قسم إعدادات أوزان خيارات المنتجتحدّد هذه الإصدارات أنّه في مرة واحدة من كل 201 مرة، يعرض اختبار A/B الإعداد التلقائي للمستخدمين الذين ملّوا من الترجمة والشرح، ولكن في 200 مرة من كل 201 مرة، سيعرض إحدى القيمتين الجديدتين ويتجاهل شاشة العنوان.
  5. احفظ التغييرات وأرسِلها من خلال النقر على بدء التجربة، ثم انقر على بدء في النافذة المنبثقة الخاصة بالتأكيد.انقر على "بدء" لبدء التجربة

8. تنفيذ طريقة "ضبط خاصية المستخدم" وإعادة التحميل

لقد أعددت الآن خصائص مختلفة عن المستخدم، ويمكن استخدامها بعد ذلك لتوجيه منطق لعبتك أو طريقة عرضها.

إذا لم يسبق لك تشغيل طريقة SetUserProperty أو ضبطها على enjoys، سيظل بإمكانك رؤية الترجمة والشرح التلقائيين عند فتح اللعبة.

إذا ضبطت القيمة على bored (قبل إعادة الجلب)، من المفترض أن تظهر لك إحدى القيم الجديدة بنسبة 50/50 تقريبًا.

بعد أن يدخل الجهاز في تجربة اختبار أ/ب، لن تتغيّر القيم التي يتلقّاها من هذه التجربة وستكون ثابتة لكل عملية تثبيت. نتيجةً لذلك، لتلقّي إحدى القيم التجريبية الأخرى، عليك إنشاء عملية تثبيت جديدة إما عن طريق إعادة تثبيت اللعبة على الجهاز أو المحاكي نفسه أو تثبيت اللعبة على جهاز أو محاكي جديد.

في اختبار أ/ب حقيقي يتم إطلاقه على مستوى قاعدة المستخدمين، يجب أن تمنح خط الأساس وزنًا مشابهًا للخيارات الأخرى. ولكن في هذه الحالة، يمكنك تحديد احتمالات منحرفة جدًا للتحقّق من أنّ التجربة تعمل. إذا كنت لا تزال تتلقّى القيمة التلقائية (في حالة 1/201)، جرِّب إعادة تثبيت اللعبة على جهازك أو المحاكي.

من الآثار الأخرى لذلك أنّه عند إعادة ضبط سمة المستخدم على enjoys، لن يتم تغيير القيمة إلى خط الأساس، ولكن يمكنك إجراء ذلك من خلال التبديل إلى enjoys وإعادة التثبيت.

9. تهانينا!

استخدمت اختبار A/B في ميزة "الإعداد عن بُعد" لتجربة قيم مختلفة في ميزة "الإعداد عن بُعد" وتحديد تأثير كل قيمة في مقاييس "إحصاءات Google".

المواضيع التي تناولناها

  • كيفية إعداد اختبار A/B باستخدام قيم "الإعداد عن بُعد" التي تمّ تزويدها بأدوات القياس
  • كيفية استخدام "سمات المستخدم" في "إحصاءات Google" كجزء من شروط القبول في تجارب اختبار A/B

الخطوات التالية

بعد انتهاء التجربة، يمكنك اختيار إحدى التجارب من قائمة التجارب في مشروعك لتحديد ما تريد فعله بها. هل تريد اختيار إحدى الصفحات كـ "صفحة فائزة" أو إجراء المزيد من التجارب؟