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

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

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

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

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

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

Remote ConfigการทดสอบRemote Configช่วยให้คุณประเมินตัวแปรหลายรายการในRemote Configพารามิเตอร์อย่างน้อย 1 รายการได้

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

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

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

  3. คลิกสร้างการทดสอบ แล้วเลือก Remote Config เมื่อระบบแจ้งให้เลือกบริการที่ต้องการทดสอบ

  4. ป้อนชื่อและคำอธิบาย (ไม่บังคับ) สำหรับการทดสอบ แล้วคลิกถัดไป

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

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

      การกำหนดเป้าหมายผู้ใช้ตามเวลาที่เปิดครั้งแรกจะใช้ได้หลังจากที่คุณเลือกแอป Android, iOS หรือเว็บ โดยได้รับการรองรับจาก Remote ConfigSDK เวอร์ชันต่อไปนี้: SDK แพลตฟอร์ม Apple เวอร์ชัน 9.0.0 ขึ้นไป, SDK Android เวอร์ชัน 21.1.1 ขึ้นไป (Firebase BoMเวอร์ชัน 30.3.0 ขึ้นไป) และ JavaScript SDK เวอร์ชัน 12.8.0 ขึ้นไป

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

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

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

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

    • app_install
    • app_remove
    • app_update

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

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

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

  10. (ไม่บังคับ) หากต้องการเพิ่มเวอร์ชันมากกว่า 1 รายการในการทดสอบ ให้คลิกเพิ่ม เวอร์ชันอื่น

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

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

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

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

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

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

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

    Swift

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

    Objective-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

    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")
            }
        }

    เว็บ

          import { getInstallations, getToken } from "firebase/installations";
    
          const installations = getInstallations(app);
          const installationAuthToken = getToken(installations);
      

    C++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future<std::string>& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });

    Unity

    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

จัดการการทดสอบ

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

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

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

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

ติดตามการทดสอบ

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

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

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

เปิดตัวการทดสอบต่อผู้ใช้ทั้งหมด

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

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

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

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

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

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

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

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

การระบุไคลเอ็นต์เว็บและการทดสอบที่คงอยู่

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

Firebase A/B Testing ใช้ FID เพื่อกําหนดผู้ใช้ให้กับตัวแปรการทดสอบ และ Google Analytics ใช้ FID เพื่อการรวบรวมเหตุการณ์เพื่อวัดและวิเคราะห์พฤติกรรมของผู้ใช้ภายในแต่ละตัวแปร

เนื่องจาก FID จัดเก็บอยู่ใน IndexedDB Firebase A/B Testing จะถือว่าผู้ใช้เป็นผู้ใช้ใหม่หากเข้าถึง แอปจากเบราว์เซอร์อื่นหรือในหน้าต่างไม่ระบุตัวตน/ส่วนตัว หรือหากผู้ใช้ ล้าง IndexedDB ของเบราว์เซอร์ ซึ่งหมายความว่าระบบอาจรวมผู้ใช้ไว้ใน ตัวแปรการทดสอบที่แตกต่างกันเมื่อใช้เบราว์เซอร์หรือเซสชันการท่องเว็บที่แตกต่างกัน

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

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

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

เมื่อใช้โอเปอเรเตอร์ contains, does not contain หรือ matches exactly คุณจะระบุรายการค่าที่คั่นด้วยคอมมาได้

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

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

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

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

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

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

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

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

การกำหนดเป้าหมายผู้ใช้ตามการเปิดครั้งแรกจะใช้ได้หลังจากที่คุณเลือกแอป Android, iOS หรือเว็บ ปัจจุบัน SDK เวอร์ชันต่อไปนี้Remote Configรองรับการกำหนดเป้าหมายนี้ SDK แพลตฟอร์ม Apple เวอร์ชัน 9.0.0 ขึ้นไป, Android SDK เวอร์ชัน 21.1.1 ขึ้นไป (Firebase BoM เวอร์ชัน 30.3.0 ขึ้นไป) และ JavaScript SDK เวอร์ชัน 12.8.0 ขึ้นไป

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

เมตริก A/B Testing รายการ

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

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

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

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

เมตริกเป้าหมาย

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

หมายเหตุ: Firebase Crashlytics ไม่รองรับสำหรับเว็บแอปพลิเคชัน

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

เมตริกอื่นๆ

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

แอปพลิเคชันบนเว็บไม่รองรับเมตริกนี้

screen_view Analytics เหตุการณ์ที่ติดตามหน้าจอที่ดูภายในแอปของคุณ ดูข้อมูลเพิ่มเติมได้ที่ติดตามการดูหน้าจอ
session_start Analytics เหตุการณ์ที่นับเซสชันของผู้ใช้ในแอป ดูข้อมูลเพิ่มเติมได้ที่เหตุการณ์ที่รวบรวมโดยอัตโนมัติ

การส่งออกข้อมูล 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: นี่คือรหัสพร็อพเพอร์ตี้ 9 หลัก Google Analytics คุณดูข้อมูลนี้ได้ใน 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 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 TestingGoogle 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