ตรวจสอบข้อมูลการทดสอบ A/B ด้วย BigQuery

นอกเหนือจากการดูข้อมูลการทดสอบ A/B Testing ในคอนโซล 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 Export สำหรับ Google Analytics ในคอนโซล Firebase
  2. เข้าถึงข้อมูลการทดสอบ A/B โดยใช้ BigQuery
  3. สำรวจตัวอย่างข้อความค้นหา

เปิดใช้ BigQuery Export สำหรับ Google Analytics ในคอนโซล Firebase

หากคุณใช้แผน Spark คุณสามารถใช้ แซนด์บ็อกซ์ของ BigQuery เพื่อเข้าถึง BigQuery ได้โดยไม่มีค่าใช้จ่าย ทั้งนี้ขึ้นอยู่กับ ขีดจำกัดของแซนด์บ็อกซ์ ดู ราคาและแซนด์บ็อกซ์ BigQuery สำหรับข้อมูลเพิ่มเติม

ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณกำลังส่งออกข้อมูล Analytics ไปยัง BigQuery โดยทำดังนี้

  1. เปิดแท็บ การรวมระบบ ซึ่งคุณสามารถเข้าถึงได้โดยใช้ > การตั้งค่าโครงการ ใน คอนโซล Firebase
  2. หากคุณใช้ BigQuery กับบริการ Firebase อื่นๆ อยู่แล้ว ให้คลิก จัดการ มิฉะนั้น คลิก ลิงก์
  3. ตรวจสอบ เกี่ยวกับการเชื่อมโยง Firebase กับ BigQuery จากนั้นคลิก ถัดไป
  4. ในส่วน กำหนดค่าการรวม ให้ เปิดใช้งานการสลับ Google Analytics
  5. เลือกภูมิภาคและเลือกการตั้งค่าการส่งออก

  6. คลิก ลิงก์ไปยัง BigQuery

ขึ้นอยู่กับวิธีที่คุณเลือกส่งออกข้อมูล อาจใช้เวลาถึงหนึ่งวันกว่าที่ตารางจะพร้อมใช้งาน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการส่งออกข้อมูลโครงการไปยัง BigQuery โปรดดู ที่ส่งออกข้อมูลโครงการไปยัง BigQuery

เข้าถึงข้อมูลการทดสอบ A/B ใน 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. เลือกโปรเจ็กต์ของคุณ จากนั้นเลือก สร้างการสืบค้น SQL
  3. เพิ่มคำถามของคุณ สำหรับตัวอย่างการสืบค้นที่จะเรียกใช้ โปรดดูที่ สำรวจตัวอย่างการสืบค้น
  4. คลิก เรียกใช้

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

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

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

  1. จากคอนโซล Firebase ให้เปิด การทดสอบ A/B และเลือกการทดสอบ A/B ที่คุณต้องการค้นหาเพื่อเปิด ภาพรวมการทดสอบ
  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

แยกค่าส่วนเบี่ยงเบนมาตรฐานการซื้อและการทดสอบจากการทดลองทั้งหมด

คุณสามารถใช้ข้อมูลผลการทดสอบเพื่อตรวจสอบผลการทดสอบ A/B ของ Firebase ได้อย่างอิสระ คำสั่ง BigQuery SQL ต่อไปนี้จะแยกรูปแบบการทดสอบ จำนวนผู้ใช้ที่ไม่ซ้ำในแต่ละรูปแบบ และผลรวมของรายได้ทั้งหมดจากเหตุการณ์ in_app_purchase และ ecommerce_purchase และค่าเบี่ยงเบนมาตรฐานสำหรับการทดสอบทั้งหมดภายในช่วงเวลาที่ระบุเป็นวันที่เริ่มต้นและสิ้นสุด _TABLE_SUFFIX คุณสามารถใช้ข้อมูลที่คุณได้รับจากการสืบค้นนี้กับเครื่องสร้างนัยสำคัญทางสถิติสำหรับการทดสอบทีแบบด้านเดียวเพื่อยืนยันว่าผลลัพธ์ที่ 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 ข้อความค้นหาตัวอย่างนี้ส่งคืนชื่อการทดสอบ ชื่อตัวแปร (รวมถึงข้อมูลพื้นฐาน) ชื่อเหตุการณ์ และจำนวนเหตุการณ์

  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