Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

לביצוע גרסאות תכונות A/B עם קבוצת ביקורת, בצע את הפעולות הבאות:

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

צור ניסוי

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

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

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

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

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

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

  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)"
      }
    }
    

    Objective-C

    [[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();
            }
        });

    קוטלין+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. הפעל את האפליקציה וודא כי הגרסה הנבחרת מתקבלת במכשיר הבדיקה.

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

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

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

התחל ניסוי

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

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

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

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

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

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

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

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

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

הרחב ניסוי

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

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

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

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

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

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

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

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

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

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

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

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

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

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

מדדי יעדים

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

מדדים אחרים

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

ייצוא נתוני BigQuery

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

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

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

לשאילתת נתוני ניתוח לניסוי:

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

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

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

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