כשפונים למשתמשים או מתחילים קמפיין שיווקי חדש, חשוב לוודא שהכל מתנהל בצורה חלקה. בדיקות A/B יכולות לעזור לכם למצוא את הניסוח וההצגה האופטימליים על ידי בדיקת וריאציות של ההודעה בחלקים נבחרים של בסיס המשתמשים. בין אם המטרה שלכם היא שיפור שיעור שימור הלקוחות או שיעור ההמרה של מוצר מסוים, בדיקת A/B יכולה לבצע ניתוח סטטיסטי כדי לקבוע אם וריאציה של הודעה מסוימת מניבה ביצועים טובים יותר מהערך הבסיסי של היעד שבחרתם.
כדי לבצע בדיקת A/B של וריאציות של תכונות עם בסיס להשוואה, צריך לפעול לפי השלבים הבאים:
- יוצרים את הניסוי.
- מאמתים את הניסוי במכשיר בדיקה.
- ניהול הניסוי.
יצירת ניסוי
ניסוי שמשתמש ב-Firebase In-App Messaging מאפשר לכם להעריך כמה וריאציות של הודעה אחת מתוך האפליקציה.
מוודאים שהאפשרות Google Analytics מופעלת בפרויקט כדי שלניסוי תהיה גישה לנתוני Analytics.
אם לא הפעלתם את Google Analytics כשנוצר הפרויקט, תוכלו להפעיל אותו בכרטיסייה Integrations (שילובים) בקטע
Settings (הגדרות) במסוף Firebase.במסוף Firebase, מתחילים ניסוי Firebase In-App Messaging באמצעות אחת מהאפשרויות הבאות:
מאת A/B Testing:
עוברים אל DevOps & Engagement > A/B Testing.
לוחצים על יצירת ניסוי ואז בוחרים באפשרות הודעות באפליקציה כשמוצגת בקשה לבחירת השירות שרוצים לבדוק.
מאת In-App Messaging:
עוברים אל DevOps & Engagement (פיתוח אפליקציות ואינטראקציה) > Messaging (הודעות).
לוחצים על In-App Messaging ואז על ניסוי חדש.
מזינים שם ותיאור (אופציונלי) לניסוי ולוחצים על הבא.
ממלאים את השדות טירגוט. קודם בוחרים את האפליקציה שבה רוצים להשתמש בניסוי. אפשר גם לטרגט קבוצת משנה של המשתמשים כדי להשתתף בניסוי, על ידי בחירת אפשרויות שכוללות את האפשרויות הבאות:
- גרסה: גרסה אחת או יותר של האפליקציה
- קהל משתמשים: קהלים שמשמשים לטירגוט משתמשים שאולי ייכללו בניסויAnalytics
- מאפיין משתמש: מאפיין משתמש אחד או יותר לבחירת משתמשים שאולי ייכללו בניסויAnalytics
- מדינה או אזור: מדינה אחת או יותר או אזור אחד או יותר לבחירת משתמשים שאולי ייכללו בניסוי
- שפת המכשיר: שפה אחת או יותר ולוקאלים שמשמשים לבחירת משתמשים שאולי ייכללו בניסוי
- פתיחה ראשונה: טירגוט משתמשים על סמך הפעם הראשונה שבה הם פתחו את האפליקציה
- התעניינות אחרונה באפליקציה: טירגוט משתמשים על סמך הפעם האחרונה שבה הם הביעו התעניינות באפליקציה שלכם
מגדירים את אחוז המשתמשים שמטרגטים: בוחרים את אחוז בסיס המשתמשים באפליקציה שתואם לקריטריונים שהוגדרו בקטע משתמשים שמטרגטים, שרוצים לחלק באופן שווה בין קבוצת הבקרה לבין וריאציה אחת או יותר בניסוי. אפשר להזין כל אחוז בין 0.01% ל-100%. האחוזים מוקצים מחדש למשתמשים באופן אקראי לכל ניסוי, כולל ניסויים משוכפלים.
בקטע Variants (וריאציות), מגדירים הודעה בסיסית באפליקציה לשליחה לקבוצת הבסיס באמצעות ממשק עיצוב ההודעות שבו משתמשים בקמפיין רגיל של הודעות באפליקציה.
כדי להוסיף וריאציה לניסוי, לוחצים על הוספת וריאציה. כברירת מחדל, בניסויים יש קבוצת בסיס אחת וגרסה אחת.
(אופציונלי) מזינים שם תיאורי יותר לכל וריאנט.
(אופציונלי) בחלק העליון של הקטע וריאציות, לוחצים על הלחצן השוואת וריאציות כדי להשוות עוד וריאציות של הודעות זו לצד זו עם הודעת הבסיס.
מגדירים מדד מטרה לניסוי כדי להשתמש בו בהערכת וריאציות הניסוי, וגם מדדים נוספים שרוצים להשתמש בהם מהרשימה. המדדים האלה כוללים יעדים מובנים (מעורבות, רכישות, הכנסות, שימור וכו'), אירועי המרה ואירועים אחרים.AnalyticsAnalytics
מגדירים את התזמון של הניסוי:
- מגדירים תאריך התחלה ותאריך סיום לניסוי.
- הגדרת התנאים להצגת הודעות באפליקציה בכל הווריאציות.
לוחצים על בדיקה כדי לשמור את הניסוי.
מותר ליצור עד 300 ניסויים לכל פרויקט, כולל עד 24 ניסויים פעילים, והשאר כטיוטות או כניסויים שהסתיימו.
אימות הניסוי במכשיר בדיקה
לכל התקנה של Firebase, אפשר לאחזר את טוקן האימות של ההתקנה שמשויך אליה. אפשר להשתמש בטוקן הזה כדי לבדוק וריאציות ספציפיות של ניסוי במכשיר בדיקה שבו מותקנת האפליקציה. כדי לאמת את הניסוי במכשיר בדיקה, צריך לבצע את הפעולות הבאות:
- כך מקבלים את טוקן האימות של ההתקנה:
Swift
do { let result = try await Installations.installations() .authTokenForcingRefresh(true) print("Installation auth token: \(result.authToken)") } catch { print("Error fetching token: \(error)") }
Objective-C
[[FIRInstallations installations] authTokenForcingRefresh:true completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation token %@", error); return; } NSLog(@"Installation auth token: %@", [result authToken]); }];
Java
FirebaseInstallations.getInstance().getToken(/* forceRefresh */true) .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() { @Override public void onComplete(@NonNull Task<InstallationTokenResult> task) { if (task.isSuccessful() && task.getResult() != null) { Log.d("Installations", "Installation auth token: " + task.getResult().getToken()); } else { Log.e("Installations", "Unable to get Installation auth token"); } } });
Kotlin
val forceRefresh = true FirebaseInstallations.getInstance().getToken(forceRefresh) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation auth token: " + task.result?.token) } else { Log.e("Installations", "Unable to get Installation auth token") } }
אינטרנט
import { getInstallations, getToken } from "firebase/installations"; const installations = getInstallations(app); const installationAuthToken = getToken(installations);
- במסוף Firebase, עוברים אל DevOps & Engagement (פיתוח אפליקציות ואינטראקציה) > A/B Testing (בדיקות A/B).
- לוחצים על טיוטה (או על פועל בניסויים של הגדרת תצורה מרחוק), מעבירים את העכבר מעל הניסוי, לוחצים על תפריט ההקשר (more_vert) ואז על ניהול מכשירי בדיקה.
- מזינים את אסימון ההרשאה להתקנה של מכשיר בדיקה ובוחרים את הווריאנט של הניסוי שרוצים לשלוח למכשיר הבדיקה.
- מריצים את האפליקציה ומוודאים שהווריאציה שנבחרה מתקבלת במכשיר הבדיקה.
מידע נוסף על Firebaseהתקנות זמין במאמר ניהול התקנות של Firebase.
ניהול הניסוי
לא משנה אם יוצרים ניסוי באמצעות Remote Config, הכלי ליצירת הודעות או Firebase In-App Messaging, אפשר לאמת ולהתחיל את הניסוי, לעקוב אחריו בזמן שהוא פועל ולהגדיל את מספר המשתמשים שנכללים בניסוי הפעיל.
כשהניסוי מסתיים, אפשר לרשום את ההגדרות שבהן נעשה שימוש בווריאציה המנצחת, ואז להחיל את ההגדרות האלה על כל המשתמשים. אפשר גם להפעיל ניסוי אחר.
התחלת ניסוי
- במסוף Firebase, עוברים אל DevOps & Engagement (פיתוח אפליקציות ואינטראקציה) > A/B Testing (בדיקות A/B).
- לוחצים על טיוטה ואז על שם הניסוי.
- כדי לוודא שיש לאפליקציה משתמשים שייכללו בניסוי, מרחיבים את פרטי הטיוטה ובודקים אם המספר בקטע טירגוט והפצה גדול מ-0% (לדוגמה, 1% מהמשתמשים עומדים בקריטריונים).
- כדי לשנות את הניסוי, לוחצים על עריכה.
- כדי להתחיל את הניסוי, לוחצים על התחלת הניסוי. אפשר להריץ עד 24 ניסויים לכל פרויקט בכל פעם.
מעקב אחרי ניסוי
אחרי שהניסוי פועל במשך זמן מה, אפשר לבדוק את ההתקדמות שלו ולראות את התוצאות שהתקבלו מהמשתמשים שהשתתפו בו עד עכשיו.
- במסוף Firebase, עוברים אל DevOps & Engagement (פיתוח אפליקציות ואינטראקציה) > A/B Testing (בדיקות A/B).
לוחצים על פועל, ואז לוחצים על שם הניסוי או מחפשים אותו. בדף הזה אפשר לראות נתונים סטטיסטיים שונים שנמדדו ונוצרו על ידי מודלים לגבי הניסוי הפעיל, כולל:
- הפרש באחוזים לעומת ערך הבסיס: מדד לשיפור של מדד מסוים בווריאנט מסוים בהשוואה לערך הבסיס. המדד מחושב על ידי השוואה בין טווח הערכים של הווריאציה לבין טווח הערכים של קו הבסיס.
- ההסתברות לגבור על שיעור ההמרה הבסיסי: ההסתברות המשוערת שגרסה מסוימת תשיג תוצאות טובות יותר משיעור ההמרה הבסיסי במדד שנבחר.
- observed_metric לכל משתמש: על סמך תוצאות הניסוי, זהו הטווח הצפוי שבו יופיע ערך המדד לאורך זמן.
- סה"כ observed_metric: הערך המצטבר שנצפה עבור קו הבסיס או הווריאציה. הערך הזה משמש למדידת הביצועים של כל וריאציה בניסוי, ולחישוב המדדים שיפור, טווח ערכים, ההסתברות לגבור שיעור ההמרה הבסיסי והסיכוי להיות הווריאציה הטובה ביותר. בהתאם למדד שנמדד, יכול להיות שהתווית של העמודה הזו תהיה 'משך הזמן לכל משתמש', 'הכנסה לכל משתמש', 'שיעור שימור' או 'שיעור המרה'.
אחרי שהניסוי פועל במשך זמן מה (לפחות 7 ימים לניסויים מסוג FCM ו-In-App Messaging או 14 ימים לניסויים מסוג Remote Config), הנתונים בדף הזה מציינים איזו וריאציה, אם בכלל, היא 'המובילה'. לחלק מהמדדים מצורף תרשים עמודות שמציג את הנתונים בפורמט חזותי.
השקת ניסוי לכל המשתמשים
אחרי שהניסוי פועל מספיק זמן כדי לזהות את הווריאנט "המוביל" או המנצח ביחס למדד היעד, אפשר להשיק את הניסוי ל-100% מהמשתמשים. כך תוכלו לבחור וריאנט לפרסום לכל המשתמשים בהמשך. גם אם לא ניתן לזהות מנצח ברור מתוצאות הניסוי, עדיין אפשר להשיק וריאנט לכל המשתמשים.
- במסוף Firebase, עוברים אל DevOps & Engagement (פיתוח אפליקציות ואינטראקציה) > A/B Testing (בדיקות A/B).
- לוחצים על הושלם או על פועל, לוחצים על ניסוי שרוצים להשיק לכל המשתמשים, לוחצים על התפריט בהקשר () השקת וריאציה.
כדי להשיק את הניסוי לכל המשתמשים, אפשר לבצע אחת מהפעולות הבאות:
- בניסוי שבו נעשה שימוש בכלי ליצירת הודעות, משתמשים בתיבת הדו-שיח הפעלת ההודעה כדי לשלוח את ההודעה למשתמשים הנותרים שמטורגטים ולא השתתפו בניסוי.
- בניסוי Remote Config, בוחרים וריאנט כדי לקבוע אילו ערכי פרמטרים של Remote Config יתעדכנו. הקריטריונים לטירגוט שהוגדרו בזמן יצירת הניסוי יתווספו כתנאי חדש בתבנית, כדי שהפעלת הווריאנט תשפיע רק על המשתמשים שטורגטו בניסוי. אחרי שלוחצים על Review in Remote Config (בדיקה בהגדרת תצורה מרחוק) כדי לבדוק את השינויים, לוחצים על Publish changes (פרסום השינויים) כדי להשלים את ההפעלה.
- בניסוי In-App Messaging, משתמשים בתיבת הדו-שיח כדי לקבוע איזו וריאציה צריך להשיק כקמפיין In-App Messaging עצמאי. אחרי הבחירה, תועברו למסך הכתיבה של טופס FIAM כדי לבצע שינויים (אם צריך) לפני הפרסום.
הרחבת ניסוי
אם אתם רואים שהניסוי לא מושך מספיק משתמשים כדי להכריז על גרסה מובילה, אתם יכולים להגדיל את ההפצה של הניסוי כדי להגיע לאחוז גדול יותר מבסיס המשתמשים של האפליקציה.A/B Testing
- במסוף Firebase, עוברים אל DevOps & Engagement (פיתוח אפליקציות ואינטראקציה) > A/B Testing (בדיקות A/B).
- בוחרים את הניסוי הפעיל שרוצים לערוך.
- בקטע סקירה כללית של הניסוי, לוחצים על תפריט ההקשר () ואז על עריכת ניסוי פעיל.
- בתיבת הדו-שיח טירגוט מוצגת אפשרות להגדלת אחוז המשתמשים שמשתתפים בניסוי הפעיל. בוחרים מספר גבוה מהאחוז הנוכחי ולוחצים על פרסום. הניסוי יוצג לאחוז המשתמשים שציינתם.
שכפול או הפסקה של ניסוי
- במסוף Firebase, עוברים אל DevOps & Engagement (פיתוח אפליקציות ואינטראקציה) > A/B Testing (בדיקות A/B).
- לוחצים על הושלם או על פועל, מציבים את הסמן מעל הניסוי, לוחצים על תפריט ההקשר () ואז על שכפול הניסוי או על הפסקת הניסוי.
טירגוט משתמשים
אתם יכולים לטרגט את המשתמשים שייכללו בניסוי באמצעות קריטריונים לטירגוט משתמשים.
| קריטריון טירגוט | אופרטורים | ערכים | הערה |
|---|---|---|---|
| גרסה | מכיל,
לא מכיל, התאמה מדויקת, מכיל ביטוי רגולרי |
מזינים ערך לגרסה אחת או יותר של האפליקציה שרוצים לכלול בניסוי. |
כשמשתמשים באופרטורים contains, does not contain או matches exactly, אפשר לספק רשימה של ערכים מופרדים בפסיקים. כשמשתמשים באופרטור contains regex, אפשר ליצור ביטויים רגולריים בפורמט RE2. הביטוי הרגולרי יכול להתאים לכל מחרוזת היעד או לחלק ממנה. אפשר גם להשתמש בעוגנים ^ ו-$ כדי להתאים את ההתחלה, הסוף או כל המחרוזת של מחרוזת יעד. |
| קהלים של משתמשים | כולל את כל,
כולל לפחות אחד, לא כולל את כל, לא כולל לפחות אחד |
בוחרים קהל אחד או יותר Analytics לטירגוט משתמשים שעשויים להיכלל בניסוי. | יכול להיות שיחלפו כמה ימים עד שהמערכת תאסוף נתונים מניסויים שמטרגטים Google Analytics קהלים, כי הם כפופים לAnalytics זמן האחזור של עיבוד הנתונים. העיכוב הזה קורה בדרך כלל עם משתמשים חדשים, שמצטרפים לקהלים שעומדים בדרישות בדרך כלל 24 עד 48 שעות אחרי היצירה, או עם קהלים שנוצרו לאחרונה. |
| מאפיין משתמש | למסנני טקסט:
מכיל, לא מכיל, תואם בדיוק, מכיל ביטוי רגולרי למסנני מספרים: <, ≤, =, ≥, > |
Analytics מאפיין משתמש משמש לבחירת משתמשים שאולי ייכללו בניסוי, עם מגוון אפשרויות לבחירת ערכים של מאפייני משתמש. בצד הלקוח, אפשר להגדיר רק ערכי מחרוזת למאפייני משתמש. בתנאים שמשתמשים באופרטורים מספריים, שירות Remote Config ממיר את הערך של מאפיין המשתמש המתאים למספר שלם או למספר עשרוני. |
כשמשתמשים באופרטור contains regex, אפשר ליצור ביטויים רגולריים בפורמט RE2. הביטוי הרגולרי יכול להתאים לכל מחרוזת היעד או לחלק ממנה. אפשר גם להשתמש בעוגנים ^ ו-$ כדי להתאים את ההתחלה, הסוף או כל המחרוזת של מחרוזת יעד. |
| ארץ/אזור | לא רלוונטי | מדינה או אזור אחד או יותר שמשמשים לבחירת משתמשים שעשויים להיכלל בניסוי. | |
| שפות | לא רלוונטי | שפה אחת או יותר ולוקאלים שמשמשים לבחירת משתמשים שאולי ייכללו בניסוי. | |
| פתיחה ראשונה |
יותר מ-
פחות מ- בין |
טרגוט משתמשים על סמך הפעם הראשונה שהם פתחו את האפליקציה, שצוינה בימים. | |
| האינטראקציה האחרונה עם האפליקציה |
יותר מ-
פחות מ- בין |
טירגוט משתמשים על סמך הפעם האחרונה שבה הם יצרו אינטראקציה עם האפליקציה שלכם, שמצוינת בימים. |
A/B Testing מדדים
כשיוצרים ניסוי, בוחרים מדד ראשי, או מדד יעד, שלפיו ייקבע הווריאנט המנצח. כדאי גם לעקוב אחרי מדדים אחרים כדי להבין טוב יותר את הביצועים של כל וריאציה בניסוי, ולעקוב אחרי מגמות חשובות שעשויות להיות שונות בכל וריאציה, כמו שימור משתמשים, יציבות האפליקציה והכנסות מרכישות באפליקציה. אפשר לעקוב אחרי עד חמישה מדדים שאינם מדדי המרה בניסוי.
לדוגמה, נניח שהוספתם רכישות חדשות מתוך האפליקציה לאפליקציה שלכם ואתם רוצים להשוות בין היעילות של שתי הודעות שונות של 'תזכורת'. במקרה כזה, יכול להיות שתבחרו להגדיר את ההכנסה מרכישות כמדד היעד, כי אתם רוצים שהווריאציה המנצחת תייצג את ההתראה שהניבה את ההכנסה הכי גבוהה מרכישות באפליקציה. בנוסף, אם רוצים לעקוב אחרי הווריאציה שהניבה יותר המרות עתידיות ושמרה על יותר משתמשים, אפשר להוסיף את המדדים הבאים אל מדדים אחרים למעקב:- סך ההכנסות המשוערות כדי לראות את ההבדלים בין שני הווריאציות בהכנסות מרכישות באפליקציה וממודעות
- Retention (1 day), Retention (2-3 days), Retention (4-7 days) כדי לעקוב אחרי שימור המשתמשים היומי או השבועי
בטבלאות הבאות מפורט אופן החישוב של מדדי היעד ומדדים אחרים.
מדדי יעדים
| מדד | תיאור |
|---|---|
| משתמשים שהאפליקציה שלהם לא קרסה | אחוז המשתמשים שלא נתקלו באפליקציה בשגיאות שזוהו על ידי Firebase Crashlytics SDK במהלך הניסוי.
הערה: אין תמיכה ב-Firebase Crashlytics באפליקציות אינטרנט. |
| הכנסות משוערות מפרסום | הרווחים המשוערים ממודעות. |
| סה"כ הכנסות משוערות | הערך המשולב של רכישות והכנסות משוערות מפרסום. |
| הכנסות מרכישות | הערך הכולל של כל האירועים מסוג purchase ו-in_app_purchase.
|
| שימור (יום אחד) | מספר המשתמשים שחוזרים לאפליקציה שלכם על בסיס יומי. |
| שימור (יומיים-שלושה) | מספר המשתמשים שחוזרים לאפליקציה שלכם תוך יומיים-שלושה. |
| שימור (4-7 ימים) | מספר המשתמשים שחוזרים לאפליקציה שלכם תוך 4-7 ימים. |
| שימור (8-14 ימים) | מספר המשתמשים שחוזרים לאפליקציה שלכם תוך 8-14 ימים. |
| שימור (15 ימים ומעלה) | מספר המשתמשים שחוזרים לאפליקציה 15 ימים או יותר אחרי השימוש האחרון שלהם באפליקציה. |
| first_open | Analytics אירוע שמופעל כשמשתמש פותח אפליקציה בפעם הראשונה אחרי שהוא התקין אותה או התקין אותה מחדש. האירוע הזה משמש כחלק ממשפך המרות. |
מדדים נוספים
| מדד | תיאור |
|---|---|
| notification_dismiss | אירוע Analytics שמופעל כשסוגרים התראה שנשלחה על ידי כלי ההתראות (ב-Android בלבד). |
| notification_receive | אירוע Analytics שמופעל כשמתקבלת הודעה שנשלחה על ידי כלי ההודעות בזמן שהאפליקציה פועלת ברקע (ב-Android בלבד). |
| os_update | אירוע Analytics שמתעד מתי מערכת ההפעלה של המכשיר מעודכנת לגרסה חדשה.מידע נוסף זמין במאמר בנושא אירועים שנאספים באופן אוטומטי.
המדד הזה לא נתמך באפליקציות אינטרנט. |
| screen_view | Analytics אירוע שמתעד את המסכים שנצפו באפליקציה. מידע נוסף זמין במאמר בנושא מעקב אחר צפיות במסך. |
| session_start | Analytics אירוע שסופר את הסשנים של המשתמשים באפליקציה. מידע נוסף זמין במאמר אירועים שנאספים באופן אוטומטי. |