สร้างการทดสอบการกำหนดค่าระยะไกลของ Firebase ด้วยการทดสอบ A/B

เมื่อคุณใช้ Firebase Remote Config เพื่อปรับใช้การตั้งค่าสำหรับแอปพลิเคชันที่มีฐานผู้ใช้ที่ใช้งานอยู่ คุณต้องการให้แน่ใจว่าคุณทำถูกต้อง คุณสามารถใช้การทดสอบ A/B Testing เพื่อระบุสิ่งต่อไปนี้ได้ดีที่สุด:

  • วิธีที่ดีที่สุดในการใช้คุณสมบัติเพื่อเพิ่มประสิทธิภาพประสบการณ์ผู้ใช้ บ่อยครั้งที่นักพัฒนาแอปไม่ได้เรียนรู้ว่าผู้ใช้ไม่ชอบฟีเจอร์ใหม่หรือประสบการณ์ผู้ใช้ที่อัปเดตจนกว่าคะแนนของแอปใน App Store จะลดลง การทดสอบ A/B สามารถช่วยวัดได้ว่าผู้ใช้ของคุณชอบฟีเจอร์รูปแบบใหม่ๆ หรือไม่ หรือพวกเขาต้องการแอปที่มีอยู่หรือไม่ นอกจากนี้ การทำให้ผู้ใช้ส่วนใหญ่อยู่ในกลุ่มพื้นฐานช่วยให้แน่ใจว่าฐานผู้ใช้ส่วนใหญ่ของคุณสามารถใช้แอปของคุณต่อไปได้โดยไม่ประสบกับการเปลี่ยนแปลงพฤติกรรมหรือรูปลักษณ์ของแอปจนกว่าการทดสอบจะสิ้นสุดลง
  • วิธีที่ดีที่สุดในการเพิ่มประสิทธิภาพประสบการณ์ผู้ใช้สำหรับเป้าหมายทางธุรกิจ บางครั้งคุณกำลังใช้การเปลี่ยนแปลงผลิตภัณฑ์เพื่อเพิ่มเมตริก เช่น รายได้หรือการรักษาผู้ใช้ให้สูงสุด ด้วยการทดสอบ A/B คุณจะกำหนดวัตถุประสงค์ทางธุรกิจของคุณ จากนั้น Firebase จะทำการวิเคราะห์ทางสถิติเพื่อพิจารณาว่าตัวแปรมีประสิทธิภาพเหนือกว่าเกณฑ์พื้นฐานสำหรับวัตถุประสงค์ที่คุณเลือกหรือไม่

หากต้องการทดสอบ A/B ตัวแปรฟีเจอร์ด้วยพื้นฐาน ให้ทำดังต่อไปนี้:

  1. สร้างการทดลองของคุณ
  2. ตรวจสอบการทดสอบของคุณบนอุปกรณ์ทดสอบ
  3. จัดการการทดสอบของคุณ

สร้างการทดลอง

การทดลองการกำหนดค่าระยะไกลทำให้คุณสามารถประเมินตัวแปรหลายรายการใน พารามิเตอร์การกำหนดค่าระยะไกล ตั้งแต่ 1 รายการขึ้นไป

  1. ลงชื่อเข้าใช้ คอนโซล Firebase และตรวจสอบว่าได้เปิดใช้ Google Analytics ในโปรเจ็กต์ของคุณแล้ว เพื่อให้การทดสอบเข้าถึงข้อมูล Analytics ได้

    หากคุณไม่ได้เปิดใช้งาน Google Analytics เมื่อสร้างโปรเจ็กต์ คุณสามารถเปิดใช้งานได้ในแท็บ การรวมระบบ ซึ่งคุณสามารถเข้าถึงได้โดยใช้ > การตั้งค่าโปรเจ็กต์ ใน คอนโซล Firebase

  2. ในส่วน Engage ของเมนูการนำทาง คอนโซล Firebase ให้คลิก การทดสอบ A/B

  3. คลิก สร้างการทดสอบ จากนั้นเลือก การกำหนดค่าระยะไกล เมื่อได้รับแจ้งเกี่ยวกับบริการที่คุณต้องการทดสอบ

  4. ป้อน ชื่อ และ คำอธิบาย เพิ่มเติมสำหรับการทดสอบของคุณ และคลิก ถัดไป

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

    • เวอร์ชัน: แอปของคุณอย่างน้อย 1 เวอร์ชัน
    • หมายเลขบิลด์: รหัสเวอร์ชันของแอป
    • ภาษา: ภาษาและสถานที่อย่างน้อยหนึ่งภาษาที่ใช้ในการเลือกผู้ใช้ที่อาจรวมอยู่ในการทดสอบ
    • ประเทศ/ภูมิภาค: อย่างน้อย 1 ประเทศหรือภูมิภาคสำหรับการเลือกผู้ใช้ที่ควรรวมไว้ในการทดสอบ
    • ผู้ชมผู้ใช้: ผู้ชม Analytics ที่ใช้ในการกำหนดเป้าหมายผู้ใช้ที่อาจรวมอยู่ในการทดสอบ
    • พร็อพเพอร์ตี้ผู้ใช้: พร็อพเพอร์ตี้ผู้ใช้ Analytics อย่างน้อย 1 รายการสำหรับการเลือกผู้ใช้ที่อาจรวมอยู่ในการทดสอบ
    • เปิดครั้งแรก: กำหนดเป้าหมายผู้ใช้ตามครั้งแรกที่พวกเขาเปิดแอปของคุณ

      การกำหนดเป้าหมายผู้ใช้ตามเวลาเปิดครั้งแรกจะใช้ได้หลังจากที่คุณเลือกแอป Android หรือ iOS ได้รับการสนับสนุนโดย Remote Config SDK เวอร์ชันต่อไปนี้: Apple Platform SDK v9.0.0+ และ Android SDK v21.1.1+ (Firebase BoM v30.3.0+)

      จะต้องเปิดใช้งานการวิเคราะห์บนไคลเอนต์ระหว่างเหตุการณ์เปิดครั้งแรกด้วย

  6. กำหนด เปอร์เซ็นต์ของผู้ใช้เป้าหมาย: ป้อนเปอร์เซ็นต์ของฐานผู้ใช้แอปของคุณที่ตรงกับเกณฑ์ที่ตั้งไว้ภายใต้ ผู้ใช้เป้าหมาย ที่คุณต้องการแบ่งเท่าๆ กันระหว่างเส้นฐานและตัวแปรอย่างน้อย 1 ตัวในการทดสอบของคุณ ซึ่งอาจเป็นเปอร์เซ็นต์ใดก็ได้ระหว่าง 0.01% ถึง 100% ผู้ใช้จะได้รับการสุ่มให้กับการทดสอบแต่ละครั้ง รวมถึงการทดสอบที่ซ้ำกัน

  7. (ไม่บังคับ) ตั้งค่าเหตุการณ์การเปิดใช้งานเพื่อให้แน่ใจว่าเฉพาะข้อมูลจากผู้ใช้ที่ทริกเกอร์เหตุการณ์ Analytics บางอย่างเป็นครั้งแรกเท่านั้นที่จะนับในการทดสอบของคุณ โปรดทราบว่าผู้ใช้ ทั้งหมด ที่ตรงกับพารามิเตอร์การกำหนดเป้าหมายของคุณจะได้รับค่าการทดลองการกำหนดค่าระยะไกล แต่เฉพาะผู้ที่ทำให้เกิดเหตุการณ์การเปิดใช้งานเท่านั้นที่จะรวมอยู่ในผลการทดสอบของคุณ

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

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
  8. สำหรับ เป้าหมาย ของการทดสอบ ให้เลือกเมตริกหลักที่จะติดตาม และเพิ่มเมตริกเพิ่มเติมที่คุณต้องการติดตามจากรายการ ซึ่งรวมถึงวัตถุประสงค์ในตัว (การซื้อ รายได้ การรักษาผู้ใช้ที่ปราศจากข้อขัดข้อง ฯลฯ) เหตุการณ์ Conversion ของ Analytics และเหตุการณ์ Analytics อื่นๆ เมื่อเสร็จแล้วให้คลิก ถัดไป

  9. ในส่วน ตัวแปร ให้เลือกพื้นฐานและอย่างน้อยหนึ่งตัวแปรสำหรับการทดสอบ ใช้รายการ เลือกหรือสร้างใหม่ เพื่อเพิ่มพารามิเตอร์อย่างน้อย 1 รายการเพื่อทำการทดสอบ คุณสามารถสร้างพารามิเตอร์ที่ไม่เคยใช้ในคอนโซล Firebase มาก่อนได้ แต่ต้องมีอยู่ในแอปของคุณจึงจะมีผลใดๆ คุณสามารถทำซ้ำขั้นตอนนี้เพื่อเพิ่มพารามิเตอร์หลายตัวให้กับการทดสอบของคุณ

  10. (ไม่บังคับ) หากต้องการเพิ่มตัวแปรมากกว่าหนึ่งรายการให้กับการทดสอบของคุณ คลิก เพิ่มตัวแปรอื่น

  11. เปลี่ยนพารามิเตอร์อย่างน้อย 1 รายการสำหรับตัวแปรเฉพาะ พารามิเตอร์ที่ไม่เปลี่ยนแปลงจะเหมือนกันสำหรับผู้ใช้ที่ไม่รวมอยู่ในการทดสอบ

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

  13. คลิก ตรวจสอบ เพื่อบันทึกการทดสอบของคุณ

คุณได้รับอนุญาตให้ทำการทดลองได้สูงสุด 300 รายการต่อโปรเจ็กต์ ซึ่งอาจประกอบด้วยการทดลองที่ทำงานอยู่สูงสุด 24 รายการ ที่เหลือเป็นแบบร่างหรือเสร็จสมบูรณ์

ตรวจสอบการทดสอบของคุณบนอุปกรณ์ทดสอบ

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

  1. รับโทเค็นการตรวจสอบสิทธิ์การติดตั้งดังต่อไปนี้:

    สวิฟท์

    do {
      let result = try await Installations.installations()
        .authTokenForcingRefresh(true)
      print("Installation auth token: \(result.authToken)")
    } catch {
      print("Error fetching token: \(error)")
    }
    

    วัตถุประสงค์-C

    [[FIRInstallations installations] authTokenForcingRefresh:true
                                                   completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
      if (error != nil) {
        NSLog(@"Error fetching Installation token %@", error);
        return;
      }
      NSLog(@"Installation auth token: %@", [result authToken]);
    }];
    

    Java

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
            .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
        @Override
        public void onComplete(@NonNull Task<InstallationTokenResult> task) {
            if (task.isSuccessful() && task.getResult() != null) {
                Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
            } else {
                Log.e("Installations", "Unable to get Installation auth token");
            }
        }
    });

    Kotlin+KTX

    val forceRefresh = true
    FirebaseInstallations.getInstance().getToken(forceRefresh)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d("Installations", "Installation auth token: " + task.result?.token)
            } else {
                Log.e("Installations", "Unable to get Installation auth token")
            }
        }

    ซี++

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

    ความสามัคคี

    Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync(forceRefresh: true).ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result));
        }
      });
    
  2. บนแถบนำทาง คอนโซล Firebase คลิก การทดสอบ A/B
  3. คลิก แบบร่าง (และ/หรือ การเรียกใช้ การทดสอบการกำหนดค่าระยะไกล) วางเมาส์เหนือการทดสอบของคุณ คลิกเมนูบริบท ( ) จากนั้นคลิก จัดการอุปกรณ์ทดสอบ
  4. ป้อนโทเค็นการตรวจสอบสิทธิ์การติดตั้งสำหรับอุปกรณ์ทดสอบ และเลือกตัวแปรการทดสอบที่จะส่งไปยังอุปกรณ์ทดสอบนั้น
  5. เรียกใช้แอปและยืนยันว่าได้รับตัวแปรที่เลือกบนอุปกรณ์ทดสอบ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการติดตั้ง Firebase โปรดดู ที่จัดการการติดตั้ง Firebase

จัดการการทดสอบของคุณ

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

เมื่อการทดสอบเสร็จสิ้น คุณจะจดบันทึกการตั้งค่าที่เวอร์ชันที่ชนะใช้ จากนั้นจึงเปิดตัวการตั้งค่าเหล่านั้นให้กับผู้ใช้ทุกคน หรือคุณสามารถทำการทดสอบอื่นได้

เริ่มการทดสอบ

  1. ในส่วน Engage ของเมนูการนำทาง คอนโซล Firebase ให้คลิก การทดสอบ A/B
  2. คลิก แบบร่าง จาก นั้นคลิกชื่อการทดสอบของคุณ
  3. หากต้องการตรวจสอบว่าแอปของคุณมีผู้ใช้ที่จะรวมอยู่ในการทดสอบ ให้ขยายรายละเอียดฉบับร่างและตรวจสอบตัวเลขที่มากกว่า 0% ในส่วน การกำหนดเป้าหมายและการจัดจำหน่าย (เช่น 1% ของผู้ใช้ที่ตรงกับเกณฑ์ )
  4. หากต้องการเปลี่ยนการทดสอบของคุณ คลิก แก้ไข
  5. หากต้องการเริ่มต้นการทดสอบของคุณ คลิก เริ่มการทดสอบ คุณสามารถทำการทดลองได้สูงสุด 24 รายการต่อโปรเจ็กต์ในแต่ละครั้ง

ติดตามการทดลอง

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

  1. ในส่วน Engage ของเมนูการนำทาง คอนโซล Firebase ให้คลิก การทดสอบ A/B
  2. คลิก กำลังทำงาน จาก นั้นคลิกหรือค้นหาชื่อการทดสอบของคุณ ในหน้านี้ คุณสามารถดูสถิติต่างๆ ที่สังเกตและจำลองได้เกี่ยวกับการทดสอบที่ทำงานอยู่ ซึ่งรวมถึงข้อมูลต่อไปนี้:

    • % ความแตกต่างจากเกณฑ์พื้นฐาน : การวัดการปรับปรุงเมตริกสำหรับตัวแปรที่กำหนดเมื่อเปรียบเทียบกับเกณฑ์พื้นฐาน คำนวณโดยการเปรียบเทียบช่วงค่าของตัวเลือกสินค้ากับช่วงค่าของข้อมูลพื้นฐาน
    • ความน่าจะเป็นที่จะสูงกว่าเส้นพื้นฐาน : ความน่าจะเป็นโดยประมาณที่ตัวแปรที่กำหนดจะมากกว่าเส้นพื้นฐานสำหรับเมตริกที่เลือก
    • observed_metric ต่อผู้ใช้ : จากผลการทดสอบ นี่คือช่วงที่คาดการณ์ว่าค่าเมตริกจะตกเมื่อเวลาผ่านไป
    • ผลรวม observed_metric : ค่าสะสมที่สังเกตได้สำหรับเส้นพื้นฐานหรือตัวแปร ค่านี้ใช้เพื่อวัดว่ารูปแบบการทดสอบแต่ละรายการทำงานได้ดีเพียงใด และใช้ในการคำนวณ การปรับปรุง ช่วงของค่า ความน่า จะเป็นที่จะผ่านเกณฑ์พื้นฐาน และ ความน่าจะเป็นที่จะเป็นตัวแปรที่ดีที่สุด คอลัมน์นี้อาจมีป้ายกำกับว่า "ระยะเวลาต่อผู้ใช้" "รายได้ต่อผู้ใช้" "อัตราการรักษา" หรือ "อัตรา Conversion" ทั้งนี้ขึ้นอยู่กับเมตริกที่กำลังวัด
  3. หลังจากการทดสอบของคุณดำเนินไประยะหนึ่ง (อย่างน้อย 7 วันสำหรับ FCM และการรับส่งข้อความในแอป หรือ 14 วันสำหรับการกำหนดค่าระยะไกล) ข้อมูลในหน้านี้จะระบุว่าตัวแปรใด (หากมี) ที่เป็น "ผู้นำ" การวัดบางอย่างจะมาพร้อมกับแผนภูมิแท่งที่แสดงข้อมูลในรูปแบบภาพ

เปิดตัวการทดสอบให้กับผู้ใช้ทุกคน

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

  1. ในส่วน Engage ของเมนูการนำทาง คอนโซล Firebase ให้คลิก การทดสอบ A/B
  2. คลิก เสร็จสมบูรณ์ หรือ กำลังทำงานอยู่ คลิกการทดสอบที่คุณต้องการเผยแพร่ต่อผู้ใช้ทั้งหมด คลิกเมนูตามบริบท ( ) เปิดตัวรูปแบบต่างๆ
  3. เปิดตัวการทดสอบของคุณกับผู้ใช้ทุกคนโดยทำอย่างใดอย่างหนึ่งต่อไปนี้:

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

ขยายการทดสอบ

หากคุณพบว่าการทดสอบดึงดูดผู้ใช้สำหรับการทดสอบ A/B ไม่เพียงพอต่อการประกาศผู้นำ คุณสามารถเพิ่มการกระจายการทดสอบเพื่อเข้าถึงฐานผู้ใช้ของแอปในเปอร์เซ็นต์ที่มากขึ้น

  1. ในส่วน Engage ของเมนูการนำทาง คอนโซล Firebase ให้คลิก การทดสอบ A/B
  2. เลือกการทดสอบที่ทำงานอยู่ที่คุณต้องการแก้ไข
  3. ใน ภาพรวมการทดสอบ คลิกเมนูบริบท ( ) จากนั้นคลิก แก้ไขการทดสอบที่ทำงานอยู่
  4. กล่องโต้ตอบ การกำหนดเป้าหมาย จะแสดงตัวเลือกในการเพิ่มเปอร์เซ็นต์ของผู้ใช้ที่อยู่ในการทดสอบที่ทำงานอยู่ เลือกตัวเลขที่มากกว่าเปอร์เซ็นต์ปัจจุบันแล้วคลิก เผยแพร่ การทดสอบจะถูกผลักออกไปตามเปอร์เซ็นต์ของผู้ใช้ที่คุณระบุ

ทำซ้ำหรือหยุดการทดสอบ

  1. ในส่วน Engage ของเมนูการนำทาง คอนโซล Firebase ให้คลิก การทดสอบ A/B
  2. คลิก เสร็จสมบูรณ์ หรือ กำลังทำงาน อยู่ วางตัวชี้ไว้เหนือการทดสอบของคุณ คลิกเมนูบริบท ( ) จากนั้นคลิก ทำซ้ำการทดสอบ หรือ หยุดการทดสอบ

การกำหนดเป้าหมายผู้ใช้

คุณสามารถกำหนดเป้าหมายผู้ใช้ที่จะรวมไว้ในการทดสอบของคุณโดยใช้เกณฑ์การกำหนดเป้าหมายผู้ใช้ต่อไปนี้

เกณฑ์การกำหนดเป้าหมาย ผู้ดำเนินการ มูลค่า บันทึก
เวอร์ชัน ประกอบด้วย,
ไม่มี
ตรงทุกประการ
มีนิพจน์ทั่วไป
ป้อนค่าสำหรับเวอร์ชันแอปอย่างน้อย 1 เวอร์ชันที่คุณต้องการรวมไว้ในการทดสอบ

เมื่อใช้ ประกอบด้วย , ไม่มี หรือ ตรงกับ ตัวดำเนินการทุกประการ คุณสามารถระบุรายการค่าที่คั่นด้วยเครื่องหมายจุลภาคได้

เมื่อใช้ตัวดำเนินการ ประกอบด้วย regex คุณสามารถสร้างนิพจน์ทั่วไปในรูปแบบ RE2 ได้ นิพจน์ทั่วไปของคุณสามารถจับคู่สตริงเวอร์ชันเป้าหมายทั้งหมดหรือบางส่วนได้ คุณยังสามารถใช้จุดยึด ^ และ $ เพื่อจับคู่จุดเริ่มต้น สิ้นสุด หรือทั้งหมดของสตริงเป้าหมายได้

ผู้ชมของผู้ใช้ รวมถึงทั้งหมด
ประกอบด้วยอย่างน้อยหนึ่งรายการ
ไม่รวมทั้งหมด
ไม่รวมอย่างน้อยหนึ่งรายการ
เลือกผู้ชม Analytics อย่างน้อยหนึ่งรายการเพื่อกำหนดเป้าหมายผู้ใช้ที่อาจรวมอยู่ในการทดสอบของคุณ การทดสอบบางอย่างที่กำหนดเป้าหมายผู้ชม Google Analytics อาจต้องใช้เวลาสองสามวันในการรวบรวมข้อมูล เนื่องจากการทดสอบเหล่านี้ขึ้นอยู่กับ เวลาในการตอบสนองในการประมวลผลข้อมูล ของ Analytics คุณมีแนวโน้มที่จะเผชิญกับความล่าช้านี้กับผู้ใช้ใหม่ ซึ่งโดยทั่วไปจะลงทะเบียนเป็นผู้ชมที่มีคุณสมบัติตามที่กำหนดภายใน 24-48 ชั่วโมงหลังการสร้าง หรือสำหรับ ผู้ชมที่สร้างขึ้นล่าสุด

สำหรับการกำหนดค่าระยะไกล หมายความว่าแม้ว่าผู้ใช้จะมีคุณสมบัติเหมาะสมสำหรับผู้ชมในทางเทคนิค หาก Analytics ยังไม่ได้เพิ่มผู้ใช้ไปยังผู้ชมเมื่อมีการดำเนินการ `fetchAndActivate()` ผู้ใช้จะไม่ถูกรวมไว้ในการทดสอบ

คุณสมบัติผู้ใช้ สำหรับข้อความ:
ประกอบด้วย,
ไม่มี
ตรงทุกประการ
มีนิพจน์ทั่วไป

สำหรับตัวเลข:
<, ≤, =, ≥, >
พร็อพเพอร์ตี้ผู้ใช้ของ Analytics ใช้ในการเลือกผู้ใช้ที่อาจรวมอยู่ในการทดสอบ โดยมีตัวเลือกมากมายในการเลือกค่าพร็อพเพอร์ตี้ผู้ใช้

บนไคลเอนต์ คุณสามารถตั้งค่าสตริงสำหรับคุณสมบัติผู้ใช้เท่านั้น สำหรับเงื่อนไขที่ใช้ตัวดำเนินการตัวเลข บริการการกำหนดค่าระยะไกลจะแปลงค่าของคุณสมบัติผู้ใช้ที่เกี่ยวข้องให้เป็นจำนวนเต็ม/ทศนิยม
เมื่อใช้ตัวดำเนินการ regex คุณสามารถสร้างนิพจน์ทั่วไปในรูปแบบ RE2 ได้ นิพจน์ทั่วไปของคุณสามารถจับคู่สตริงเวอร์ชันเป้าหมายทั้งหมดหรือบางส่วนได้ คุณยังสามารถใช้จุดยึด ^ และ $ เพื่อจับคู่จุดเริ่มต้น สิ้นสุด หรือทั้งหมดของสตริงเป้าหมายได้
ประเทศ/ภูมิภาค ไม่มี อย่างน้อย 1 ประเทศหรือภูมิภาคที่ใช้ในการเลือกผู้ใช้ที่อาจรวมอยู่ในการทดสอบ
ภาษา ไม่มี ภาษาและสถานที่อย่างน้อยหนึ่งรายการที่ใช้ในการเลือกผู้ใช้ที่อาจรวมอยู่ในการทดสอบ
เปิดครั้งแรก ก่อน
หลังจาก

กำหนดเป้าหมายผู้ใช้ตามครั้งแรกที่พวกเขาเปิดแอปของคุณ:

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

การกำหนดเป้าหมายผู้ใช้ด้วยการเปิดครั้งแรกจะใช้งานได้หลังจากที่คุณเลือกแอป Android หรือ iOS ขณะนี้ได้รับการสนับสนุนโดย Remote Config SDK เวอร์ชันต่อไปนี้: แพลตฟอร์ม Apple SDK v9.0.0+ และ Android SDK v21.1.1+ (Firebase BoM v30.3.0+)

จะต้องเปิดใช้งานการวิเคราะห์บนไคลเอนต์ระหว่างเหตุการณ์เปิดครั้งแรกด้วย

ตัวชี้วัดการทดสอบ A/B

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

ตัวอย่างเช่น สมมติว่าคุณกำลังใช้การกำหนดค่าระยะไกลเพื่อเปิดตัวโฟลว์เกม 2 แบบที่แตกต่างกันในแอปของคุณและต้องการเพิ่มประสิทธิภาพสำหรับการซื้อในแอปและรายได้จากโฆษณา แต่คุณยังต้องการติดตามความเสถียรและการรักษาผู้ใช้ของแต่ละตัวแปรด้วย ในกรณีนี้ คุณอาจพิจารณาเลือก รายได้รวมโดยประมาณ เป็นเมตริกเป้าหมายของคุณ เนื่องจากเมตริกดังกล่าวรวมรายได้จากการซื้อในแอปและรายได้จากโฆษณา จากนั้นสำหรับ เมตริกอื่นๆ ที่จะติดตาม คุณอาจเพิ่มสิ่งต่อไปนี้:

  • หากต้องการติดตามการรักษาผู้ใช้รายวันและรายสัปดาห์ ให้เพิ่ม การรักษาผู้ใช้ (2-3 วัน) และ การรักษาผู้ใช้ (4-7 วัน)
  • หากต้องการเปรียบเทียบความเสถียรระหว่างกระแสเกมทั้งสอง ให้เพิ่ม ผู้ใช้ที่ปราศจากข้อขัดข้อง
  • หากต้องการดูรายละเอียดเพิ่มเติมของรายได้แต่ละประเภท ให้เพิ่ม รายได้จากการซื้อ และ รายได้จากโฆษณาโดยประมาณ

ตารางต่อไปนี้ให้รายละเอียดเกี่ยวกับวิธีการคำนวณตัวชี้วัดเป้าหมายและตัวชี้วัดอื่นๆ

ตัวชี้วัดเป้าหมาย

เมตริก คำอธิบาย
ผู้ใช้ที่ปราศจากข้อขัดข้อง เปอร์เซ็นต์ของผู้ใช้ที่ไม่พบข้อผิดพลาดในแอปของคุณที่ Firebase Crashlytics SDK ตรวจพบในระหว่างการทดสอบ
รายได้จากโฆษณาโดยประมาณ รายได้จากโฆษณาโดยประมาณ
รายได้รวมโดยประมาณ มูลค่ารวมสำหรับการซื้อและรายได้จากโฆษณาโดยประมาณ
รายได้ซื้อ มูลค่ารวมสำหรับเหตุการณ์ purchase และ in_app_purchase ทั้งหมด
การเก็บรักษา (1 วัน) จำนวนผู้ใช้ที่กลับมาที่แอปของคุณในแต่ละวัน
การเก็บรักษา (2-3 วัน) จำนวนผู้ใช้ที่กลับมาที่แอปของคุณภายใน 2-3 วัน
การเก็บรักษา (4-7 วัน) จำนวนผู้ใช้ที่กลับมาที่แอปของคุณภายใน 4-7 วัน
การเก็บรักษา (8-14 วัน) จำนวนผู้ใช้ที่กลับมาที่แอปของคุณภายใน 8-14 วัน
การเก็บรักษา (15+ วัน) จำนวนผู้ใช้ที่กลับมาที่แอปของคุณหลังจากใช้งานครั้งล่าสุดเป็นเวลา 15 วันขึ้นไป
first_open เหตุการณ์ Analytics ที่เกิดขึ้นเมื่อผู้ใช้เปิดแอปเป็นครั้งแรกหลังจากติดตั้งหรือติดตั้งใหม่ ใช้เป็นส่วนหนึ่งของช่องทางการแปลง

ตัวชี้วัดอื่นๆ

เมตริก คำอธิบาย
การแจ้งเตือน_ยกเลิก เหตุการณ์ Analytics ที่ทริกเกอร์เมื่อมีการปิดการแจ้งเตือนที่ส่งโดยผู้แต่งการแจ้งเตือน (Android เท่านั้น)
การแจ้งเตือน_รับ เหตุการณ์ Analytics ที่ทริกเกอร์เมื่อได้รับการแจ้งเตือนที่ส่งโดยผู้แต่งการแจ้งเตือนในขณะที่แอปอยู่ในเบื้องหลัง (Android เท่านั้น)
os_update เหตุการณ์ Analytics ที่ติดตามเมื่อระบบปฏิบัติการของอุปกรณ์ได้รับการอัปเดตเป็นเวอร์ชันใหม่ หากต้องการเรียนรู้เพิ่มเติม โปรดดู เหตุการณ์ที่รวบรวมโดยอัตโนมัติ
screen_view เหตุการณ์ Analytics ที่ติดตามหน้าจอที่ดูภายในแอปของคุณ หากต้องการเรียนรู้เพิ่มเติม โปรดดู ติดตามการดูหน้าจอ
เซสชั่น_เริ่มต้น เหตุการณ์ Analytics ที่นับเซสชันผู้ใช้ในแอปของคุณ หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ เหตุการณ์ที่รวบรวมโดยอัตโนมัติ

การส่งออกข้อมูล 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