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

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

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

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

צור ניסוי

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

  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;
      }
    }];
    

    Java

    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 מרחוק, מחבר ההודעות או Firebase In-App Messaging, לאחר מכן תוכל לאמת ולהתחיל את הניסוי שלך, לעקוב אחר הניסוי שלך בזמן שהוא פועל, ולהגדיל את מספר המשתמשים הכלולים בניסוי הפועל שלך.

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

התחל ניסוי

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

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

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

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

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

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

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

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

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

הרחב ניסוי

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

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

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

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

מיקוד למשתמש

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

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

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

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

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

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

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

מדדי A/B Testing

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

מדדי יעדים

מֶטרִי תיאור
שימור (יום אחד) מספר המשתמשים שחוזרים לאפליקציה שלך על בסיס יומי.
שימור (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 המופעל כאשר משתמש פותח אפליקציה לראשונה לאחר התקנה או התקנה מחדש שלה. משמש כחלק ממשפך המרות.
notification_open אירוע Analytics המופעל כאשר משתמש פותח הודעה שנשלחה על ידי כותב ההודעות. משמש כחלק ממשפך המרות.

מדדים אחרים

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