בדיקת נתוני 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.

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

  1. במסוף Firebase, עוברים אל הכרטיסייה הגדרות > שילובים.

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

    אם בכרטיס כתוב Link, צריך להגדיר את הייצוא (המשיכו לשלב הבא).

  3. אם אתם צריכים להגדיר ייצוא:

    1. קוראים את המידע בקטע מידע על קישור Firebase אל BigQuery ולוחצים על הבא.

    2. בקטע Configure integration, מפעילים את Google Analytics.

    3. בוחרים אזור ובוחרים את הגדרות הייצוא.

    4. לוחצים על קישור אל 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 בפברואר 2026 עד 2 במאי 2026, צריך לציין _TABLE_SUFFIX between '20260202' AND '20260502'. לדוגמה, ראו בחירת ערכים של ניסוי ספציפי.
  • שמות האירועים: בדרך כלל, הם תואמים למדדי היעדים שהגדרתם בניסוי. לדוגמה, אירועי in_app_purchase, ad_impression או user_retention.

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

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

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

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

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

  1. במסוף Firebase, עוברים אל DevOps & Engagement (DevOps ומעורבות) > A/B Testing (בדיקת A/B).
  2. בוחרים את הניסוי ב-A/B Testing שרוצים לשלוח לגביו שאילתה כדי לפתוח את סקירת הניסוי.
  3. בתפריט האפשרויות, בקטע שילוב עם BigQuery, לוחצים על שאילתה על נתוני הניסוי. הפרויקט ייפתח ב-BigQuery במסוף Google Cloud, ותוצג שאילתה בסיסית שבה אפשר להשתמש כדי לשלוח שאילתות לגבי נתוני הניסוי.

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

  /*
    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 '20260202' AND '20260502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

בקטע דוגמאות לשאילתות תוכלו למצוא דוגמאות נוספות לשאילתות.

שאילתות לדוגמה

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

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

אתם יכולים להשתמש בנתוני התוצאות של הניסוי כדי לאמת באופן עצמאי את התוצאות של Firebase A/B Testing. BigQueryהצהרת ה-SQL הבאה מחלצת את וריאציות הניסוי, את מספר המשתמשים הייחודיים בכל וריאציה, את סך ההכנסות מאירועי in_app_purchase ו-ecommerce_purchase ואת סטיות התקן של כל הניסויים בטווח הזמן שצוין כתאריכי ההתחלה והסיום של _TABLE_SUFFIX. אתם יכולים להשתמש בנתונים שמתקבלים מהשאילתה הזו עם מחולל מובהקות סטטיסטית לבדיקות 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