1. מבוא
בקודלאב הזה תלמדו איך ליצור ניסוי של הגדרת תצורה מרחוק באמצעות בדיקת A/B למשחק לדוגמה, MechaHamster: Level Up with Firebase edition, ששיניתם במאמר הוספת רכיבים למשחק באמצעות הגדרת תצורה מרחוק ב-Firebase.
התכונה A/B Testing עם הגדרת תצורה מרחוק מאפשרת לכם לבדוק שינויים בממשק המשתמש, בתכונות או בקמפיינים לעידוד השימוש באפליקציה של קהל היעד לפני שמשיקים אותם לקהל רחב יותר. אפשר להשתמש בתוצאות הניסוי גם כדי:
- להבין אילו וריאציות של ערכי הפרמטרים משפרות מדדים עיקריים כמו הכנסה ושמירה על לקוחות.
- תוכלו לגלות אילו תתי-קבוצות של משתמשים מעדפות איזה וריאציות.
- ניתן לאסוף ולאחסן נתוני ניסוי כדי לבצע ניתוח נוסף לגבי ההשפעות של הגדרת ערכי פרמטרים שונים.
זוהי המהות של בדיקת A/B: היא מאפשרת לכם לקחת קוד שעבר הטמעה של Remote Config ולהפעיל ניסויים שמאפשרים לשלוט בערכים שהלקוחות מקבלים, על סמך תנאים של Remote Config (כולל מאפייני משתמשים ב-Google Analytics), השקות לפי אחוזים, אירועי המרה ב-Analytics ושילוב כלשהו של הגורמים האלה.
קודם כול, עליכם להטמיע תנאי שיקבע מי ייכלל בניסוי, על ידי הגדרת מאפייני משתמשים על סמך פעולות של משתמשים. לאחר מכן, תיצורו ניסוי של בדיקת A/B שמשתמש במאפייני משתמשים של Google Analytics כדי לקבוע אילו לקוחות ייכללו בניסוי. לבסוף, תוכלו להשתמש בנתונים האלה כדי להבין טוב יותר את הקהל שלכם.
מה תלמדו
- איך מגדירים בדיקת A/B באמצעות ערכים של הגדרת תצורה מרחוק עם כלי למדידת ביצועים
- איך משתמשים במאפייני משתמש ב-Google Analytics כחלק מתנאי ההצטרפות לבדיקות A/B
דרישות מוקדמות
מה צריך
- Unity 2019.1.0f1 ואילך עם תמיכה ב-build ב-iOS ו/או ב-Android
2. הפעלת תפריט ניפוי הבאגים
תפריט ניפוי באגים מוסתר בפרויקט ולחצן הגישה לתפריט הזה קיים במשחק אבל הוא לא מופעל כרגע. עליך להפעיל את הלחצן כדי לגשת אליו מהקטע המקדים של התפריט הראשי.
- בעורך Unity, בוחרים בכרטיסייה Project (פרויקט). בקטע Assets (נכסים), מרחיבים את האפשרות Hamster (ארנב) > Prefabs (אב טיפוס) > Menus (תפריטים) ולוחצים על MainMenu (תפריט ראשי).
- בהיררכיה של טרום-העיבוד, מחפשים את אובייקט המשנה המושבת בשם DebugOptionsButton ולוחצים עליו כדי לפתוח אותו בכרטיסייה Inspector.
- בכרטיסייה Inspector, מסמנים את התיבה בפינה הימנית העליונה לצד שדה הטקסט שמכיל את DebugMenuButton כדי להפעיל אותו.
- שומרים את ה-Prefab.
אם תפעילו את המשחק בעורך או במכשיר, עכשיו אמורה להיות לכם גישה לתפריט.
3. הפעלת תפריט המשנה 'הגדרת תצורה מרחוק'
- בכרטיסייה Project (פרויקט) בעורך Unity, מרחיבים את Assets (נכסים) > Hamster (חולדה) > Prefabs (אב טיפוס) > Menus (תפריטים) ולוחצים לחיצה כפולה על האובייקט DebugMenu כדי לפתוח אותו בכרטיסייה Hierarchy (היררכיה) של העורך.
- בכרטיסייה Hierarchy, מרחיבים את ההיררכיה ולוחצים על אובייקט המשנה בקטע Debugתפריט > חלונית, שנקראת פעולות הגדרת תצורה מרחוק.
- בכרטיסייה Inspector ב-Unity, מפעילים את האפשרות פעולות הגדרת תצורה מרחוק על ידי סימון התיבה שמימין לשדה הטקסט שמכיל את שם האובייקט.
יש לו שני צאצאים של GameObject שנקראים Set Bored Of Subtitle ו-Set Enjoys Subtitle, ושניהם מוגדרים לקרוא לשיטות קיימות אבל לא מוטמעות ב-DebugMenu.cs
.
4. איפוס שינוי ברירת המחדל של הכתוביות לברירת המחדל באפליקציה
בקודלאב הקודם שיניתם את ערך ברירת המחדל של פרמטר כ-JSON והשתמשתם בתנאים כדי להציג וריאציות שונות. במסגרת ה-Codelab הזה, צריך למחוק את התנאי שיצרת ולהציג מחדש את ברירת המחדל בתוך האפליקציה, והמערכת תבטל אותה רק באמצעות התוצאה של A/B Testing.
כדי להפעיל מחדש את ברירת המחדל באפליקציה:
- פותחים את הדף 'הגדרת תצורה מרחוק' במסוף Firebase ולוחצים על סמל העיפרון לצד הפרמטר
subtitle_override
כדי לפתוח את החלונית הצדדית של עריכת הפרמטר. - לוחצים על הסמל X לצד התנאי כדי למחוק אותו.
- לצד ערך ברירת המחדל שנותר, מפעילים את המתג שימוש בברירת המחדל באפליקציה.
- לוחצים על שמירה כדי לשמור את השינויים, ואז על פרסום השינויים כדי לפרסם את השינויים.
5. הגדרת מאפייני משתמשים בפונקציות לניפוי באגים
עכשיו תכתבו גופי פונקציות לחלק מהפונקציות של Google Analytics שהוגדרו מראש אבל לא יושמו ב-DebugMenu.cs
(אפשר למצוא אותן בקטע 'נכסים' > 'Hamster' > 'סקריפטים' > 'מצבים').
הפונקציות האלה מגדירות מאפייני משתמש. הן מאפשרות לתאר פלחים של בסיס המשתמשים שלכם. הן משמשות כדי לתעד את הרגשת המשתמש בנוגע לכותרת המשנה של המשחק.
כדי להטמיע את SetUserBoredOfSubtitle
ו-SetUserEnjoysSubtitle
, מחפשים את הגרסאות הקיימות שלהם ב-DebugMenu.cs
ומחליפים אותן באופן הבא:
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
אם האפליקציה מוגדרת כראוי עם Google Analytics, אפשר להפעיל אחת מהפונקציות האלה כדי להפוך את הנכס לזמין לתנאים של הגדרת התצורה מרחוק. כדי להתקשר אל SetUserBoredOfSubtitle
בנייד, מתחילים את המשחק ולוחצים על הלחצן של תפריט ניפוי הבאגים בתפריט הראשי, ואז לוחצים על Set Bored of Subtitle.
6. יצירת מאפיין מותאם אישית
בשלב הבא יש להגדיר וריאנטים שונים של כתוביות עבור subtitle_override
כדי לראות איזו כותרת משנה פועלת בצורה הטובה ביותר. עם זאת, בבדיקת A/B שלך יוצגו הווריאנטים האלה רק למשתמשים שהרגשות שלהם לגבי כותרת המשנה הנוכחית (כפי שהוקלט ב-subtitle_sentiment
) כוללים את המילה "משועמם".
צריך להשתמש במאפיין מותאם אישית כדי ליצור פרמטרים מותאמים אישית באירועי Analytics ולעקוב אחריהם. מידע נוסף זמין במאמר מאפיינים ומדדים מותאמים אישית.
כדי ליצור מאפיין מותאם אישית חדש:
- פותחים את מסוף Firebase, מרחיבים את התפריט Analytics ובוחרים באפשרות הגדרות מותאמות אישית.
- בדף 'הגדרות מותאמות אישית', לוחצים על יצירת מאפיינים מותאמים אישית.
- בחלון מאפיין מותאם אישית חדש, מגדירים את שם המאפיין כ'סנטימנט של כותרת משנה'. בתפריט הנפתח היקף, בוחרים באפשרות משתמש.
- בשדה מאפיין משתמש, בוחרים באפשרות
subtitle_sentiment.
.
7. הגדרת ניסוי של בדיקת A/B
בשלב הבא, יוצרים ניסוי A/B Testing כדי להגדיר ערכים שונים עבור subtitle_override
שייבדקו אחד מול השני, במטרה לבצע אופטימיזציה של שימור משתמשים שנמשך יומיים עד שלושה ימים.
- קודם כול, בוחרים באפשרות Edit (עריכה) בפרמטר
subtitle_override
בדף Remote Config במסוף Firebase:
- מתוך תיבת הדו-שיח עריכת פרמטר שמופיעה, לוחצים על הוספת חדש.
- בוחרים באפשרות ניסוי מתוך הרשימה שמופיעה.
- נותנים שם לניסוי ומזינים תיאור.
- בשלב הבא, בוחרים את תנאי הטירגוט. קודם כול, בוחרים את האפליקציה מהתפריט הנפתח.
- לאחר מכן, לוחצים על וגם כדי להוסיף תנאי חדש, בוחרים באפשרות מאפיין משתמש ובוחרים באפשרות
subtitle_sentiment
. אם הוא לא מופיע, מזינים אותו ידנית. - מכיוון שרוצים להגדיר כתוביות רק למשתמשים שהרגש הנוכחי של הכתוביות שלהם כולל את 'משתעמם', בוחרים באפשרות מכיל ומקלידים
bored
. - אפשר לבחור איזה אחוז מהקהל עומד בקריטריונים שלמעלה כדי לחשוף אותו לבדיקה. בוחרים באפשרות 100% כדי למנוע אקראיות שלא ניתן לשלוט בה בקלות.
- בשלב הבא בוחרים יעד שהבדיקה תנסה למקסם. בוחרים באפשרות שימור (2-3 ימים).
- בשלב הבא, מגדירים את הפרמטרים של הניסוי ויוצרים וריאנטים שונים של כתוביות. הווריאנטים האלה הם הערכים השונים ש-A/B Testing יוצגו למשתמשים ב-
subtitle_sentiment
שיש להם את הביטוי 'משועמם', ובדיקות A/B יקבעו איזה וריאנט הכי מתאים לשימור מקסימלי. - מזינים את ערך הפרמטר הבא לווריאנט A:
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
- צריך להזין את ערך הפרמטר הבא לווריאנט B:
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
- מגדירים את היחסים בין הגרסאות באמצעות מספרים שלמים באופן הבא:
- ערך הבסיס: 1
- וריאנט א: 100
- וריאנט B: 100
הווריאנטים האלה מציינים שבאחד מתוך 201 פעמים, A/B Testing מציג את ברירת המחדל למשתמשים שמשועממים מהכתוביות, אבל 200 מתוך 201 פעמים, הם יציגו אחד משני ערכים חדשים ותחליפו את שם המסך.
- כדי לשמור ולשלוח את הניסוי, לוחצים על התחלת הניסוי, ואז על התחלה בחלון האישור הקופץ.
8. מריצים את השיטה Set User Property ומבצעים רענון
עכשיו הגדרתם מאפיינים שונים של המשתמש, שאפשר להשתמש בהם כדי לקבוע את הלוגיקה או את הצגת המשחק.
אם לא הפעלתם בעבר את השיטה SetUserProperty
או שהגדרתם אותה ל-enjoys
, עדיין אמורה להופיע כתוביות ברירת המחדל כשתפתחו את המשחק.
אם הגדרתם אותו כ-bored
(לפני האחזור מחדש), אחד מהערכים החדשים אמור להופיע ביחס של כ-50/50.
אחרי שמכשיר נכנס לניסוי של בדיקת A/B, הערכים שהוא מקבל מהניסוי הזה לא ישתנו והם קבועים לכל התקנה. כתוצאה מכך, כדי לקבל אחד מהערכים הניסיוניים האחרים, צריך ליצור התקנה חדשה. לשם כך, אפשר להתקין מחדש את המשחק באותו מכשיר או בסימולטור, או להתקין את המשחק במכשיר או בסימולטור חדשים.
בבדיקת A/B אמיתית שמופעלת בקרב בסיס המשתמשים, צריך לתת לערך הבסיס משקל דומה לזה של הווריאנטים האחרים. אבל במקרה הזה, אתם מגדירים הסתברויות מעוותות מאוד כדי לוודא שהניסוי פועל. אם (במקרה 1/201) עדיין מופיע ערך ברירת המחדל, נסו להתקין מחדש את המשחק במכשיר או בסימולטור.
השפעה נוספת של המצב הזה היא ששינוי של מאפיין המשתמש בחזרה ל-enjoys
לא ישנה את הערך בחזרה לערך הבסיס. עם זאת, שוב, אפשר לעשות זאת על ידי מעבר ל-enjoys
והתקנה מחדש.
9. כל הכבוד!
השתמשתם ב-A/B Testing של הגדרת תצורה מרחוק כדי להתנסות בערכי הגדרת תצורה מרחוק שונים ולבדוק איך כל אחד מהם משפיע על מדדי Analytics.
הנושאים שטיפלנו בהם
- איך מגדירים בדיקת A/B באמצעות ערכים של הגדרת תצורה מרחוק עם כלי למדידת ביצועים
- איך משתמשים במאפייני משתמשים ב-Google Analytics כחלק מתנאי ההרשמה לניסויים של בדיקות A/B
השלבים הבאים
בסיום הניסוי, תוכלו לבחור אחד מרשימת הניסויים בפרויקט כדי להחליט מה רוצים לעשות איתו. רוצים לבחור גרסה אחת כ'מנצחת' או לבצע ניסויים נוספים?