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

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

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

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

צור ניסוי

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

  1. היכנס למסוף Firebase וודא ש-Google Analytics מופעל בפרויקט שלך כך שלניסוי תהיה גישה לנתוני Analytics.

    אם לא הפעלת את Google Analytics בעת יצירת הפרויקט שלך, תוכל להפעיל אותו בכרטיסייה אינטגרציות , אליה תוכל לגשת באמצעות > הגדרות פרויקט במסוף 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)"
      }
    }
    

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

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

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

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

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

התחל ניסוי

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

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

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

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

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

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

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

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

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

הרחב ניסוי

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

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

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

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

מיקוד למשתמש

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

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

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

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

קהלי משתמשים כולל את כל,
כולל לפחות אחד מ,
לא כולל את כולם,
אינו כולל לפחות אחד מהם
בחר קהל אחד או יותר של Analytics כדי למקד למשתמשים שעשויים להיכלל בניסוי שלך. ניסויים מסוימים הממקדים לקהלים של Google Analytics עשויים לדרוש מספר ימים כדי לצבור נתונים מכיוון שהם כפופים לאחזור עיבוד הנתונים של Analytics . סביר להניח שתתקל בעיכוב זה עם משתמשים חדשים, שבדרך כלל נרשמים לקהלים מתאימים 24-48 שעות לאחר היצירה, או עבור קהלים שנוצרו לאחרונה .
נכס משתמש לטקסט:
מכיל,
לא מכיל,
מתאים בדיוק,
מכיל ביטוי רגולרי

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

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

מדדי A/B Testing

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

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

  • הכנסה כוללת משוערת כדי לראות כיצד הרכישה המשולבת שלך מתוך האפליקציה וההכנסה ממודעות שונה בין שתי הגרסאות
  • שימור (יום אחד) , שימור (2-3 ימים) , שימור (4-7 ימים) כדי לעקוב אחר שימור המשתמש היומי/שבועי שלך

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

מדדי יעדים

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

מדדים אחרים

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

ייצוא נתונים של BigQuery

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

מאפייני המשתמש המכילים מידע על הניסוי הם בצורת userProperty.key like "firebase_exp_%" או userProperty.key = "firebase_exp_01" כאשר 01 הוא מזהה הניסוי, ו- userProperty.value.string_value מכיל את האינדקס (מבוסס אפס) של וריאנט ניסוי.

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

כדי להתחיל, השלם את הפעולות הבאות כמתואר במדריך זה:

  1. אפשר ייצוא BigQuery עבור Google Analytics במסוף Firebase
  2. גישה לנתוני A/B Testing באמצעות BigQuery
  3. חקור שאילתות לדוגמה

אפשר ייצוא BigQuery עבור Google Analytics במסוף Firebase

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

ראשית, ודא שאתה מייצא את נתוני Analytics שלך ל-BigQuery:

  1. פתח את הכרטיסייה אינטגרציות , אליה תוכל לגשת באמצעות > הגדרות פרויקט במסוף Firebase .
  2. אם אתה כבר משתמש ב-BigQuery עם שירותי Firebase אחרים, לחץ על נהל . אחרת, לחץ על קישור .
  3. סקור אודות קישור Firebase ל-BigQuery ולאחר מכן לחץ על הבא .
  4. בקטע הגדר אינטגרציה , הפעל את החלפת מצב של Google Analytics .
  5. בחר אזור ובחר הגדרות ייצוא.

  6. לחץ על קישור ל-BigQuery .

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

גישה לנתוני A/B Testing ב-BigQuery

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

  • מזהה ניסוי: אתה יכול להשיג זאת מכתובת האתר של דף סקירת הניסוי . לדוגמה, אם כתובת האתר שלך נראית כמו https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 , מזהה הניסוי הוא 25 .
  • מזהה נכס Google Analytics : זהו מזהה הנכס בן 9 הספרות שלך ב-Google Analytics. אתה יכול למצוא את זה בתוך Google Analytics; הוא מופיע גם ב-BigQuery כאשר אתה מרחיב את שם הפרויקט שלך כדי להציג את השם של טבלת האירועים שלך ב-Google Analytics ( project_name.analytics_000000000.events ).
  • תאריך הניסוי: כדי ליצור שאילתה מהירה ויעילה יותר, מומלץ להגביל את השאילתות למחיצות טבלת האירועים היומית של Google Analytics המכילות את נתוני הניסוי שלך - טבלאות המזוהות עם סיומת YYYYMMDD . לכן, אם הניסוי שלך רץ מ-2 בפברואר 2024 עד 2 במאי 2024, תציין _TABLE_SUFFIX between '20240202' AND '20240502' . לדוגמא, ראה בחירת ערכי ניסוי ספציפי .
  • שמות אירועים: בדרך כלל, אלה תואמים את ערכי היעדים שלך שהגדרת בניסוי. לדוגמה, אירועים in_app_purchase , ad_impression , או אירועי user_retention .

לאחר שתאסוף את המידע שאתה צריך כדי ליצור את השאילתה שלך:

  1. פתח את BigQuery במסוף Google Cloud.
  2. בחר את הפרויקט שלך ולאחר מכן בחר צור שאילתת SQL .
  3. הוסף את השאילתה שלך. לדוגמה שאילתות להרצה, ראה חקור שאילתות לדוגמה .
  4. לחץ על הפעל .

שאילתה נתוני ניסוי באמצעות השאילתה שנוצרה אוטומטית של מסוף Firebase

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

כדי להשיג ולהפעיל את השאילתה שנוצרה אוטומטית:

  1. ממסוף Firebase, פתח את בדיקת A/B ובחר בניסוי בדיקת A/B שברצונך לבצע שאילתה כדי לפתוח את סקירת הניסוי .
  2. מתפריט האפשרויות, מתחת לשילוב BigQuery , בחר נתוני ניסוי שאילתה . זה פותח את הפרויקט שלך ב-BigQuery בתוך מסוף מסוף Google Cloud ומספק שאילתה בסיסית שבה תוכל להשתמש כדי לבצע שאילתה על נתוני הניסוי שלך.

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

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

לדוגמאות שאילתות נוספות, המשך אל חקור שאילתות לדוגמה .

חקור שאילתות לדוגמה

הסעיפים הבאים מספקים דוגמאות לשאילתות שבהן תוכל להשתמש כדי לחלץ נתוני ניסוי A/B מטבלאות אירועים של Google Analytics.

חלץ ערכי סטיית תקן של רכישה וניסוי מכל הניסויים

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

למידע נוסף על האופן שבו בדיקת A/B מחשבת מסקנות, ראה לפרש את תוצאות הבדיקה .

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

בחר ערכי ניסוי ספציפי

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

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName