Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

צור ניסויי מסרים עם בדיקת A / B

כאשר אתה פונה למשתמשים שלך או פותח קמפיין שיווקי חדש, אתה רוצה לוודא שאתה מקבל את זה נכון. בדיקת A / B יכולה לעזור לך למצוא את הניסוח וההצגה האופטימליים על ידי בדיקת גרסאות הודעות בחלקים נבחרים של בסיס המשתמשים שלך. בין אם המטרה שלך היא שמירה טובה יותר או המרה בהצעה, בדיקות A / B יכולות לבצע ניתוח סטטיסטי כדי לקבוע אם גרסת הודעה עולה על קבוצת הבקרה עבור המטרה שבחרת.

כדי לבצע גרסאות של מבחן A / B עם קבוצת בקרה, בצע את הפעולות הבאות:

  1. צור את הניסוי שלך.
  2. אמת את הניסוי שלך במכשיר בדיקה.
  3. נהל את הניסוי שלך.

צור ניסוי

ניסוי המשתמש במלחין ההודעות מאפשר לך להעריך מספר גרסאות בהודעת הודעה אחת.

  1. היכנס ל- Firebase, עדכן את הגדרות שיתוף הנתונים וודא ששיתוף נתונים מופעל. ללא שיתוף נתונים, לניסוי שלך לא תהיה גישה לנתוני ניתוח.
  2. בקטע Engage בסרגל הניווט של מסוף Firebase , לחץ על A / B Testing .
  3. לחץ על צור ניסוי , ואז בחר התראות כאשר תתבקש לשירות שאיתו תרצה להתנסות.
  4. הזן שם ותיאור אופציונלי עבור הניסוי שלך, ולחץ על הבא .
  5. מלא את שדות המיקוד , ראשית בחר באפליקציה המשתמשת בניסוי שלך. תוכל גם למקד לקבוצת משנה של המשתמשים שלך להשתתף בניסוי שלך על ידי בחירה באפשרויות הכוללות את הדברים הבאים:

    • גרסה: גרסה אחת או יותר של האפליקציה שלך
    • קהל משתמשים: קהלי Analytics המשמשים למיקוד למשתמשים שעשויים להיכלל בניסוי
    • נכס משתמש: מאפיין משתמש אחד או יותר של Analytics לבחירת משתמשים שעשויים להיכלל בניסוי
    • חיזוי: קבוצות משתמשים שנחזות על ידי למידת מכונה לעסוק בהתנהגות מסוימת
    • מדינה / אזור: מדינה או אזור אחד או יותר לבחירת משתמשים שעשויים להיכלל בניסוי
    • שפת מכשיר: שפה אחת או יותר ומקומות המשמשים לבחירת משתמשים שעשויים להיכלל בניסוי
  6. הגדר את אחוז משתמשי היעד: בחר את אחוז בסיס המשתמשים של האפליקציה שלך התואם את הקריטריונים שנקבעו תחת יעד משתמשים אשר ברצונך לחלק באופן שווה בין קבוצת הבקרה לבין גרסה אחת או יותר בניסוי שלך. זה יכול להיות כל אחוז שבין 0.01% ל- 100%. אחוזים מוקצים באופן אקראי למשתמשים עבור כל ניסוי, כולל ניסויים משוכפלים.

  7. במקטע וריאנטים , הקלד הודעה שיש לשלוח לקבוצת הבקרה בשדה הזן טקסט הודעה . כדי לשלוח שום הודעה לקבוצת הבקרה, השאר שדה זה ריק.

  8. (אופציונלי) כדי להוסיף יותר מגרסה אחת לניסוי שלך, לחץ על הוסף גרסה . כברירת מחדל, לניסויים יש קבוצת בקרה אחת וריאציה אחת.

  9. (אופציונלי) הזן שם לכל גרסה בניסוי שלך כדי להחליף את השמות משתנה A , משתנה B וכו '.

  10. הגדר מדד יעד לשימוש הניסוי שלך בעת הערכת גרסאות הניסוי יחד עם מדדים נוספים רצויים מהרשימה הנפתחת. מדדים אלה כוללים יעדים מובנים (מעורבות, רכישות, הכנסות, שימור וכו '), אירועי המרה של Analytics ואירועי Analytics אחרים.

  11. בחר אפשרויות להודעה שלך:

    • תאריך אספקה: בחר באפשרות שלח עכשיו כדי להפעיל את הניסוי שלך מיד עם שמירתו, או מתוזמן לציין זמן להפעלת הניסוי שלך בעתיד.
    • אפשרויות מתקדמות: לבחירת אפשרויות מתקדמות עבור כל ההודעות הכלולות בניסוי שלך, הרחב את האפשרויות המתקדמות ולאחר מכן שנה אחת מאפשרויות ההודעות המפורטות.
  12. לחץ על סקירה כדי לשמור את הניסוי שלך.

מותר לך עד 300 ניסויים בפרויקט, שיכולים לכלול עד 24 ניסויים פועלים, כאשר השאר הם טיוטה או הושלמו.

אמת את הניסוי שלך במכשיר בדיקה

עבור כל התקנת Firebase תוכלו לאחזר את אסימון הרישום של FCM המשויך אליו. אתה יכול להשתמש באסימון זה כדי לבדוק גרסאות ניסוי ספציפיות במכשיר בדיקה שהאפליקציה שלך מותקנת. כדי לאמת את הניסוי שלך במכשיר בדיקה, בצע את הפעולות הבאות:

  1. קבל את אסימון הרישום של FCM כדלקמן:

    מָהִיר

    Messaging.messaging().token { token, error in
      if let error = error {
        print("Error fetching FCM registration token: \(error)")
      } else if let token = token {
        print("FCM registration token: \(token)")
        self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
      }
    }
    

    מטרה-ג

    [[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
      if (error != nil) {
        NSLog(@"Error getting FCM registration token: %@", error);
      } else {
        NSLog(@"FCM registration token: %@", token);
        self.fcmRegTokenMessage.text = token;
      }
    }];
    

    ג'אווה

    FirebaseMessaging.getInstance().getToken()
        .addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
              if (!task.isSuccessful()) {
                Log.w(TAG, "Fetching FCM registration token failed", task.getException());
                return;
              }
    
              // Get new FCM registration token
              String token = task.getResult();
    
              // Log and toast
              String msg = getString(R.string.msg_token_fmt, token);
              Log.d(TAG, msg);
              Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    Kotlin + KTX

    FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
        if (!task.isSuccessful) {
            Log.w(TAG, "Fetching FCM registration token failed", task.exception)
            return@OnCompleteListener
        }
    
        // Get new FCM registration token
        val token = task.result
    
        // Log and toast
        val msg = getString(R.string.msg_token_fmt, token)
        Log.d(TAG, msg)
        Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
    })

    C ++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });
        

    Unity

    Firebase.Messaging.FirebaseMessaging.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("FCM registration token {0}", task.Result));
        }
      });
    
  2. בסרגל הניווט של קונסולת Firebase , לחץ על בדיקת A / B.
  3. לחץ על טיוטה , העבר את העכבר מעל הניסוי שלך, לחץ על תפריט ההקשר ( ) ואז לחץ על נהל התקני בדיקה
  4. הזן את אסימון ה- FCM למכשיר בדיקה ובחר את גרסת הניסוי שישלח למכשיר הבדיקה ההוא.
  5. הפעל את האפליקציה וודא כי הגרסה שנבחרה מתקבלת במכשיר הבדיקה.

נהל את הניסוי שלך

בין אם אתה יוצר ניסוי עם Remote Config, מלחין ההודעות או הודעות בתוך האפליקציה של Firebase, תוכל לאמת ולהתחיל את הניסוי שלך, לפקח על הניסוי שלך בזמן שהוא פועל ולהגדיל את מספר המשתמשים הכלולים בניסוי הריצה שלך.

לאחר סיום הניסוי שלך, תוכל לשים לב להגדרות המשמשות את הגרסה הזוכה, ואז להפיץ הגדרות אלה לכל המשתמשים. לחלופין, תוכלו להריץ ניסוי נוסף.

התחל ניסוי

  1. בקטע Engage בסרגל הניווט של מסוף Firebase , לחץ על A / B Testing .
  2. לחץ על טיוטה ולאחר מכן לחץ על כותרת הניסוי שלך.
  3. כדי לאמת שיש באפליקציה שלך משתמשים שייכללו בניסוי שלך, הרחב את פרטי הטיוטה ובדוק מספר גדול מ- 0% בקטע מיקוד והפצה (לדוגמה, 1% מהמשתמשים התואמים את הקריטריונים ).
  4. כדי לשנות את הניסוי שלך, לחץ על ערוך .
  5. כדי להתחיל בניסוי שלך, לחץ על התחל ניסוי . אתה יכול להריץ עד 24 ניסויים בכל פרויקט בכל פעם.

עקוב אחר ניסוי

לאחר שניסוי פועל זמן מה, תוכלו לבדוק את התקדמותו ולראות כיצד נראות התוצאות שלכם עבור המשתמשים שהשתתפו בניסוי עד כה.

  1. בקטע Engage בסרגל הניווט של מסוף Firebase , לחץ על A / B Testing .
  2. לחץ על ריצה ואז לחץ על כותרת הניסוי שלך. בדף זה תוכל להציג נתונים סטטיסטיים שונים שנצפו ומודלים אודות ניסוי הריצה שלך, כולל הדברים הבאים:

    • הבדל% לעומת הבסיס : מדד לשיפור מדד עבור גרסה נתונה בהשוואה לקו הבסיס (או קבוצת הביקורת). מחושב על ידי השוואת טווח הערכים עבור הגרסה לטווח הערכים עבור הבסיס.
    • הסיכוי לנצח את הבסיס : ההסתברות המשוערת שגרסה נתונה תכה על בסיס הבסיס של המדד שנבחר.
    • observed_metric למשתמש : בהתבסס על תוצאות הניסוי, זהו הטווח החזוי אליו יעלה הערך לאורך זמן.
    • סה"כ observed_metric : הערך המצטבר שנצפה עבור קבוצת הביקורת או הגרסה. הערך משמש למדידת הביצועים של כל גרסת ניסוי ומשמש לחישוב שיפור , טווח ערכים , סיכוי לנצח את הבסיס וההסתברות להיות הגרסה הטובה ביותר . תלוי בערך הנמדד, עמודה זו עשויה להיות שכותרתה "משך משתמש", "הכנסה למשתמש", "שיעור שימור" או "שיעור המרה".
  3. לאחר שהניסוי שלך רץ זמן מה (לפחות 7 ימים עבור FCM והודעות בתוך האפליקציה או 14 יום עבור תצורה מרחוק), הנתונים בעמוד זה מציינים איזו גרסה, אם בכלל, היא "המנהיג". כמה מדידות מלוות בתרשים עמודות המציג את הנתונים בפורמט חזותי.

הפעל ניסוי לכל המשתמשים

לאחר שניסוי רץ מספיק זמן כדי שיהיה לך "מנהיג", או גרסה מנצחת, למדד היעד שלך, תוכל להפיץ את הניסוי ל -100% מהמשתמשים. זה מאפשר לך לבחור גרסה לפרסום לכל המשתמשים שמתקדמים קדימה. גם אם הניסוי שלך לא יצר מנצח ברור, אתה עדיין יכול לבחור להפיץ גרסה לכל המשתמשים שלך.

  1. בקטע Engage בסרגל הניווט של מסוף Firebase , לחץ על A / B Testing .
  2. לחץ על הושלם או פועל , לחץ על ניסוי שברצונך להפיץ לכל המשתמשים, לחץ על תפריט ההקשר ( ) ולאחר מכן לחץ על גרסת גרסת .
  3. הפעל את הניסוי שלך לכל המשתמשים על ידי ביצוע אחת מהפעולות הבאות:

    • לניסוי המשתמש במלחין ההודעות, השתמש בתיבת הדו-שיח Roll-out כדי לשלוח את ההודעה למשתמשים הממוקדים הנותרים שלא היו חלק מהניסוי.
    • לניסוי של Config Remote, בחר גרסה כדי לקבוע אילו ערכי פרמטר Config מרחוק לעדכן. קריטריוני המיקוד שהוגדרו בעת יצירת הניסוי יתווספו כתנאי חדש בתבנית שלך, כדי להבטיח שההשקה משפיעה רק על משתמשים שממוקדים על ידי הניסוי. לאחר לחיצה על סקירה בתצורה מרחוק כדי לבדוק את השינויים, לחץ על פרסם שינויים כדי להשלים את ההשקה.
    • לניסוי בהודעות בתוך האפליקציה, השתמש בתיבת הדו-שיח כדי לקבוע איזה גרסה צריכה להיות מגולגלת כקמפיין עצמאי להעברת הודעות. לאחר הבחירה, תועבר למסך ההכנה של FIAM כדי לבצע שינויים כלשהם (אם נדרש) לפני הפרסום.

הרחב ניסוי

אם אתה מגלה שניסוי לא מביא מספיק משתמשים לצורך בדיקת A / B כדי להכריז על מוביל, תוכל להגדיל את תפוצת הניסוי שלך כדי להגיע לאחוז גדול יותר מבסיס המשתמשים של האפליקציה.

  1. בקטע Engage בסרגל הניווט של מסוף Firebase , לחץ על A / B Testing .
  2. בחר את הניסוי הרץ שברצונך לערוך.
  3. בסקירת הניסוי , לחץ על תפריט ההקשר ( ) ואז לחץ על ערוך ניסוי פועל .
  4. תיבת הדו-שיח מיקוד מציגה אפשרות להגדיל את אחוז המשתמשים שנמצאים בניסוי הפועל כעת. בחר מספר הגדול מהאחוז הנוכחי ולחץ על פרסם . הניסוי יידחק החוצה לאחוז המשתמשים שציינת.

שכפול או הפסק ניסוי

  1. בקטע Engage בסרגל הניווט של מסוף Firebase , לחץ על A / B Testing .
  2. לחץ על הושלם או פועל , העבר את העכבר מעל הניסוי שלך, לחץ על תפריט ההקשר ( ) ואז לחץ על שכפול ניסוי או הפסק את הניסוי .

מיקוד משתמשים

תוכל למקד את המשתמשים שיכללו בניסוי שלך באמצעות הקריטריונים הבאים למיקוד משתמשים.

קריטריון מיקוד מפעילים ערך הערה
גִרְסָה מכיל,
לא מכיל,
תואם בדיוק,
מכיל regex
הזן ערך עבור גרסת אפליקציה אחת או יותר שברצונך לכלול בניסוי.

כשמשתמשים באחד מכלי המכיל , אינו מכיל או תואם בדיוק למפעילים, באפשרותך לספק רשימת ערכים המופרדת בפסיקים.

בעת השימוש במפעיל regex מכיל , ניתן ליצור ביטויים רגולריים בפורמט RE2 . הביטוי הרגיל שלך יכול להתאים לכל מחרוזת גרסת היעד או לחלקה. אתה יכול גם להשתמש בעוגני ^ ו- $ כדי להתאים את ההתחלה, הסוף או את כל מחרוזת היעד.

קהל המשתמשים כולל את כל,
כולל לפחות אחד מ,
אינו כולל את כל,
אינו כולל לפחות אחד מ
בחר קהל Analytics אחד או יותר כדי למקד למשתמשים שעשויים להיכלל בניסוי שלך.
נכס משתמש לטקסט:
מכיל,
לא מכיל,
תואם בדיוק,
מכיל regex

למספרים:
<, ≤, =, ≥,>
מאפיין משתמש של Analytics משמש לבחירת משתמשים שעשויים להיכלל בניסוי, עם מגוון אפשרויות לבחירת ערכי נכסי משתמש.

בלקוח, אתה יכול להגדיר רק ערכי מחרוזות עבור מאפייני משתמש. בתנאים המשתמשים במפעילים מספריים, שירות Config מרחוק ממיר את הערך של מאפיין המשתמש המתאים למספר שלם / צף.
בעת השימוש במפעיל regex מכיל , ניתן ליצור ביטויים רגולריים בפורמט RE2 . הביטוי הרגיל שלך יכול להתאים לכל מחרוזת גרסת היעד או לחלקה. אתה יכול גם להשתמש בעוגני ^ ו- $ כדי להתאים את ההתחלה, הסוף או את כל מחרוזת היעד.
נְבוּאָה לא קבוצות יעד של משתמשים שהוגדרו על ידי חיזויים של Firebase - למשל, אלה שעלולים להפסיק להשתמש באפליקציה שלך, או משתמשים אשר עשויים לבצע רכישה מתוך האפליקציה. בחר אחד מהערכים שהוגדרו על ידי הכלי חיזוי Firebase. אם אפשרות לא זמינה, ייתכן שיהיה עליך להצטרף לחיזויים של Firebase על ידי ביקור במקטע חיזויים במסוף Firebase.
מדינה במכשיר לא אחת או יותר מדינות או אזורים המשמשים לבחירת משתמשים שעשויים להיכלל בניסוי.
שפת המכשיר לא אחת או יותר שפות ומקומות המשמשים לבחירת משתמשים שעשויים להיכלל בניסוי. קריטריון מיקוד זה זמין רק עבור תצורה מרחוק.
פתיחה ראשונה יותר מ
פחות מ
בֵּין
מקד למשתמשים על סמך הפעם הראשונה בה הם פתחו את האפליקציה שלך, שצוין בימים. קריטריון מיקוד זה זמין רק להעברת הודעות בתוך האפליקציה של Firebase.
מעורבות אחרונה באפליקציה יותר מ
פחות מ
בֵּין
מקד למשתמשים על סמך הפעם האחרונה שבה הם התקשרו עם האפליקציה שלך, שצוין בימים. קריטריון מיקוד זה זמין רק להעברת הודעות בתוך האפליקציה של Firebase.

מדדי בדיקות A / B

כשאתה יוצר את הניסוי שלך, אתה בוחר מדד שמשמש להשוואת גרסאות הניסוי, ותוכל גם לבחור מדדים אחרים שיש לעקוב אחריהם כדי לעזור לך להבין טוב יותר את כל גרסאות הניסוי ולגלות תופעות לוואי משמעותיות (כגון קריסות באפליקציות). הטבלאות הבאות מפרטות כיצד מחשבים מדדי יעד וערכים אחרים.

מדדי יעד

מֶטרִי תיאור
שמירה (יום אחד) מספר המשתמשים שחוזרים לאפליקציה שלך על בסיס יומי.
שמירה (2-3 ימים) מספר המשתמשים שחוזרים לאפליקציה שלך תוך 2-3 ימים.
שמירה (4-7 ימים) מספר המשתמשים שחוזרים לאפליקציה שלך תוך 4-7 ימים.
שמירה (8-14 יום) מספר המשתמשים שחוזרים לאפליקציה שלך תוך 8-14 יום.
שמירה (15+ ימים) מספר המשתמשים שחוזרים לאפליקציה שלך 15 יום ומעלה לאחר השימוש בהם בפעם האחרונה.
ההודעה פתוחה עוקב אחר אם משתמש פותח את ההודעה שנשלחה על ידי מלחין ההודעות.
הכנסות מרכש ערך משולב לכל אירועי in_app_purchase ecommerce_purchase in_app_purchase .
הכנסות משוערות מ- AdMob רווחים משוערים מ- AdMob.
הכנסות משוערות ערך משולב לרכישה והכנסות AdMob משוערות.
פתח ראשון אירוע Analytics המופעל כאשר משתמש פותח אפליקציה לראשונה לאחר התקנתו או התקנתו מחדש. משמש כחלק ממשפך המרה.
הודעה_פתח אירוע Analytics המופעל כאשר משתמש פותח התראה שנשלחה על ידי מלחין ההודעות. משמש כחלק ממשפך המרה.

מדדים אחרים

מֶטרִי תיאור
משתמשים ללא התרסקות אחוז המשתמשים שלא נתקלו בשגיאות באפליקציה שלך שהתגלו על ידי SDK Firebase Crashlytics במהלך הניסוי.
הודעה_סגור אירוע Analytics המופעל כאשר הודעה שנשלחה על ידי מלחין ההודעות נדחית (אנדרואיד בלבד).
הודעה_קבל אירוע Analytics המופעל כאשר מתקבלת התראה שנשלחה על ידי מלחין ההודעות כשהאפליקציה ברקע (אנדרואיד בלבד).
os_update אירוע Analytics העוקב אחר עדכון מערכת ההפעלה של המכשיר לגרסה חדשה. למידע נוסף, ראה אירועים שנאספו באופן אוטומטי .
תצוגת מסך אירוע Analytics העוקב אחר מסכים שנצפו באפליקציה שלך. למידע נוסף, ראה מעקב אחר תצוגות מסך .
session_start אירוע Analytics שמספר הפעלות משתמשים באפליקציה שלך. למידע נוסף, ראה אירועים שנאספו אוטומטית .
משתמש_התקשרות אירוע Analytics המופעל מעת לעת בזמן שהאפליקציה שלך נמצאת בחזית. למידע נוסף, ראה אירועים שנאספו אוטומטית .

ייצוא נתוני BigQuery

תוכל לגשת לכל נתוני הניתוח הקשורים למבחני A / B שלך ב- BigQuery . BigQuery מאפשר לך לנתח את הנתונים באמצעות BigQuery SQL, לייצא אותם לספק ענן אחר או להשתמש בנתונים עבור דגמי ה- ML המותאמים אישית שלך. ראה קישור BigQuery ל- Firebase למידע נוסף.

כדי לנצל את מלוא ייצוא הנתונים של BigQuery, פרויקטים של Firebase צריכים לאמץ את תוכנית התמחור "Blaze" בתשלום. חיובי BigQuery בגין אחסון נתונים, הזרמת הוספות ושאילתת נתונים. טעינה וייצוא של נתונים הם ללא תשלום. ראה תמחור BigQuery , או ארגז החול של BigQuery למידע נוסף.

כדי להתחיל, וודא שפרויקט Firebase שלך ​​מקושר ל- BigQuery. בחר הגדרות> הגדרות פרויקט מסרגל הניווט הימני, ואז בחר אינטגרציות> BigQuery> קישור . דף זה מציג אפשרויות לביצוע ייצוא נתוני ניתוח BiqQuery עבור כל האפליקציות בפרויקט.

לשאילתת נתוני ניתוח לצורך ניסוי:

  1. מרשימת הניסויים הפעילים שלך בחר את הניסוי הרצוי לפתיחת דף תוצאות הניסוי.
  2. מתפריט ההקשר בחלונית סקירת הניסוי , בחר נתוני ניסוי שאילתה (אפשרות זו אינה זמינה עבור פרויקטים ברמה החינמית).

    פעולה זו פותחת את מלחין השאילתות של קונסולת BigQuery עם שאילתת דוגמה אוטומטית שנוצרה של נתוני ניסוי שטענו מראש לבדיקה שלך. בשאילתה זו, הניסוי שלך מקודד כמאפיין משתמש עם שם הניסוי במפתח וגרסת הניסוי בערך.

  3. במלחין השאילתות, בחר הפעל שאילתה. התוצאות מוצגות בחלונית התחתונה.

שים לב, מכיוון שנתוני Firebase ב- BigQuery מתעדכנים פעם אחת בלבד ביום, הנתונים הזמינים בדף הניסוי עשויים להיות מעודכנים יותר מהנתונים הזמינים במסוף BigQuery.