ตรวจสอบข้อมูล 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 มีดัชนี (ฐาน 0) ของตัวแปรการทดสอบ

คุณสามารถใช้พร็อพเพอร์ตี้ผู้ใช้การทดสอบเหล่านี้เพื่อดึงข้อมูลการทดสอบได้ ซึ่งจะช่วยให้คุณแบ่งกลุ่มผลลัพธ์การทดสอบได้หลายวิธีและยืนยันผลลัพธ์ของ 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 กับบริการอื่นๆ ของ Firebase อยู่แล้ว ให้คลิกจัดการ หรือคลิกลิงก์
  3. ตรวจสอบเกี่ยวกับการลิงก์ Firebase กับ BigQuery แล้วคลิกถัดไป
  4. ในส่วนกำหนดค่าการผสานรวม ให้เปิดใช้ปุ่มสลับ Google Analytics
  5. เลือกภูมิภาคและเลือกการตั้งค่าการส่งออก

  6. คลิกลิงก์กับ BigQuery

ระบบอาจใช้เวลาถึง 1 วันเพื่อให้ตารางพร้อมใช้งาน ทั้งนี้ขึ้นอยู่กับวิธีที่คุณเลือกส่งออกข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับการส่งออกข้อมูลโปรเจ็กต์ไปยัง 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 events, ad_impression หรือ user_retention events

หลังจากรวบรวมข้อมูลที่จำเป็นในการสร้างการค้นหาแล้ว ให้ทำดังนี้

  1. เปิด BigQuery ในคอนโซล Google Cloud
  2. เลือกโปรเจ็กต์ แล้วเลือกสร้างการค้นหา SQL
  3. เพิ่มข้อความค้นหา ดูตัวอย่างคําค้นหาที่จะเรียกใช้ได้ที่หัวข้อสํารวจตัวอย่างคําค้นหา
  4. คลิกเรียกใช้

ค้นหาข้อมูลการทดสอบโดยใช้คําค้นหาที่สร้างขึ้นโดยอัตโนมัติของคอนโซล Firebase

หากคุณใช้แพ็กเกจ Blaze หน้าภาพรวมการทดสอบจะมีตัวอย่างการค้นหาที่แสดงชื่อการทดสอบ ตัวแปร ชื่อเหตุการณ์ และจํานวนเหตุการณ์สําหรับการทดสอบที่คุณกําลังดู

วิธีรับและเรียกใช้การค้นหาที่สร้างขึ้นโดยอัตโนมัติ

  1. จากคอนโซล Firebase ให้เปิด A/B Testing แล้วเลือกการทดสอบ A/B Testing ที่ต้องการค้นหาเพื่อเปิดภาพรวมการทดสอบ
  2. จากเมนูตัวเลือก ใต้การผสานรวม BigQuery ให้เลือกค้นหาข้อมูลการทดสอบ ซึ่งจะเปิดโปรเจ็กต์ใน BigQuery ภายในคอนโซล Google Cloud และแสดงการค้นหาพื้นฐานที่คุณใช้เพื่อค้นหาข้อมูลการทดสอบได้

ตัวอย่างต่อไปนี้แสดงคําค้นหาที่สร้างขึ้นสําหรับการทดสอบที่มีตัวแปร 3 รายการ (รวมถึงกลุ่มฐาน) ชื่อ "การทดสอบต้อนรับช่วงฤดูหนาว" โดยจะแสดงชื่อการทดสอบที่ใช้งานอยู่ ชื่อตัวแปร เหตุการณ์ที่ไม่ซ้ำ และจํานวนเหตุการณ์สําหรับแต่ละเหตุการณ์ โปรดทราบว่าเครื่องมือสร้างคําค้นหาไม่ได้ระบุชื่อโปรเจ็กต์ในชื่อตาราง เนื่องจากจะเปิดภายในโปรเจ็กต์โดยตรง

  /*
    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ผลลัพธ์อย่างอิสระได้ 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