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

1- مقدمة

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

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

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

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

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

المعلومات التي ستطّلع عليها

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

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

المتطلبات

  • Unity 2019.1.0f1 أو إصدار أحدث مع دعم إصدار iOS و/أو Android

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

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

  1. في محرِّر Unity، اختَر علامة التبويب المشروع، ثم وسِّع Hamster ضمن Assets (مواد العرض) >. Prefabs > القوائم وانقر على القائمة الرئيسية

تعرض علامة التبويب "مشروع محرِّر Unity"\nمواد العرض. الهامستر، الوجبات الجاهزة، القوائم

  1. في التسلسل الهرمي Prefab، ابحث عن الكائن الفرعي الذي تم إيقافه باسم DebugقائمةButton وانقر عليه لفتحه في علامة التبويب أداة الفحص.

يعرض محرّر Unity "القائمة الرئيسية"\nمع إيقاف Debugقائمة.

  1. ضمن علامة التبويب Inspector (أداة الفحص)، ضَع علامة في المربّع في أعلى يمين الصفحة بجانب حقل النص الذي يحتوي على DebugقائمةButton لتفعيله.

علامة التبويب "Inspector" (أداة الفحص) لـ DebugقائمةButton\nمع مربع اختيار

  1. حفظ الإعداد المسبق.

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

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

  1. من علامة التبويب المشروع في Unity Editor، وسِّع Assets > الهامستر > Prefabs > القوائم وانقر مرّتين على العنصر Debugقائمة لفتحه في علامة التبويب التسلسل الهرمي في المحرِّر

    عنصر Debugقائمة مُدمج ضمن "مواد العرض"\nو"Hamster" و"الإعدادات المفضّلة" و"القوائم"
  2. في علامة التبويب التسلسل الهرمي، وسِّع العرض الهرمي وانقر على الكائن الفرعي ضمن Debugقائمة (تصحيح الأخطاء) >. اللوحة، المُسمّى إجراءات الإعداد عن بُعد.

إجراء الإعداد عن بُعد مدمَج ضمن\nلوحة الرسم، Debugقائمة

  1. في علامة التبويب أداة فحص Unity، فعِّل إجراءات الإعداد عن بُعد من خلال وضع علامة في المربّع على يمين حقل النص الذي يحتوي على اسم العنصر.

محرّر Unity مع ميزة "الإعداد عن بُعد"\nالإجراءات مفعَّلة ضمن Debugقائمة، لوحة

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

4. إعادة ضبط ميزة إلغاء الترجمة على الإعدادات التلقائية داخل التطبيق

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

لإعادة تفعيل الإعداد التلقائي داخل التطبيق:

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

حذف شرط من محرِّر مَعلمات "الإعداد عن بُعد"\n

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

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

ستكتب الآن نصوص وظائف لبعض وظائف "إحصاءات Google" التي تم ضبطها مسبقًا ولكنّها غير منفّذة في DebugMenu.cs (والتي يمكن العثور عليها في "مواد العرض" > "همستر" > "النصوص البرمجية" > "الحالات").

تحدّد هذه الدوال خصائص المستخدمين، وهي طرق لوصف شرائح قاعدة المستخدمين وتُستخدَم لتسجيل شعور المستخدم تجاه الترجمة في اللعبة.

يمكنك تنفيذ الترميزَين 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، ووسِّع قائمة إحصاءات Google، واختَر التعريفات المخصّصة.
  2. من صفحة "التعريفات المخصّصة"، انقر على إنشاء سمات مخصّصة.
  3. في نافذة سمة مخصّصة جديدة، اضبط اسم السمة على "شعور العنوان الفرعي". واختَر المستخدم من القائمة المنسدلة النطاق.
  4. في حقل خاصّية المستخدِم، اختَر subtitle_sentiment.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. بعد ذلك، اختر هدفًا سيحاول الاختبار تحقيقه إلى أقصى حدّ. اختَر الاحتفاظ بالبيانات (من 2 إلى 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. أدخِل قيمة المَعلمة التالية للصيغة "ب":
    {"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% للصيغة "ب".قسم\nضبط ترجيحات الصيغتشير هذه الصيغ إلى أنّ اختبار A/B من بين 201 مرة يعرض الخيار التلقائي للمستخدمين الذين يشعرون بالملل من الترجمة، ولكن في 200/201 مرة، سيتم عرض إحدى القيمتَين الجديدتَين بدلاً من شاشة العنوان.
  5. احفظ التغييرات وأرسِلها بالنقر على بدء التجربة، ثم على بدء في النافذة المنبثقة للتأكيد.انقر على "بدء" لبدء\nالتجربة

8- تشغيل طريقة "ضبط خاصّية المستخدِم" ثم إعادة التحميل

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

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

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

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

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

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

9- تهانينا

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

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

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

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

وبعد انتهاء التجربة، يمكنك اختيار إجراء من قائمة التجارب في مشروعك لتحديد الإجراء الذي تريد تنفيذه فيه. هَلْ مَطْلُوبْ اخْتِيَارْ عُنْوَانْ "الفائز" أو إجراء المزيد من التجارب؟