בדיקת נתוני A/B Testing באמצעות BigQuery

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

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

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

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

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

הפעלת ייצוא של BigQuery ל-Google Analytics במסוף Firebase

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

קודם כול, צריך לוודא שאתם מייצאים את נתוני Analytics אל BigQuery:

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

  6. לוחצים על קישור אל BigQuery.

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

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

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

  • מזהה הניסוי: אפשר למצוא אותו בכתובת ה-URL של הדף סקירה כללית של הניסוי. לדוגמה, אם כתובת ה-URL נראית כך: https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, מזהה הניסוי הוא 25.
  • מזהה נכס Google Analytics: זהו מזהה הנכס Google Analytics בן 9 הספרות. אפשר למצוא אותו ב-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. בוחרים את הפרויקט ואז בוחרים באפשרות Create SQL query.
  3. מוסיפים את השאילתה. בקישור הצגת שאילתות לדוגמה מפורטות שאילתות לדוגמה שאפשר להריץ.
  4. לוחצים על Run.

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

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

כדי לקבל ולהריץ את השאילתה שנוצרה באופן אוטומטי:

  1. במסוף Firebase, פותחים את A/B Testing ובוחרים את הניסוי ב-A/B Testing שרוצים לשלוח עליו שאילתה כדי לפתוח את הסקירה הכללית של הניסוי.
  2. בתפריט האפשרויות, בקטע BigQuery integration, בוחרים באפשרות Query experiment data. הפעולה הזו תפתח את הפרויקט ב-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 Testing מטבלאות האירועים Google Analytics.

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

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

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

  /*
    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. השאילתה לדוגמה הזו מחזירה את שם הניסוי, שמות הווריאנטים (כולל 'בסיס להשוואה'), שמות האירועים ומספרי האירועים.

  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