สร้างการทดสอบการกำหนดค่าระยะไกลของ 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พารามิเตอร์อย่างน้อย 1 รายการ

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

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

  2. ในFirebaseคอนโซล ให้ไปที่ DevOps และการมีส่วนร่วม > การทดสอบ A/B

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

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

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

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

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

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

  6. กำหนดเปอร์เซ็นต์ของผู้ใช้เป้าหมาย: ป้อนเปอร์เซ็นต์ฐานผู้ใช้ของแอปที่ตรงกับเกณฑ์ที่ตั้งไว้ในส่วนผู้ใช้เป้าหมาย ซึ่งคุณต้องการแบ่งอย่างเท่าๆ กันระหว่างกลุ่มควบคุมกับตัวแปรอย่างน้อย 1 รายการในการทดสอบ โดยสามารถเป็นเปอร์เซ็นต์ใดก็ได้ระหว่าง 0% ถึง 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คอนโซล ให้ไปที่ DevOps และการมีส่วนร่วม > การทดสอบ A/B
  3. คลิกฉบับร่าง (และ/หรือกำลังทำงานสำหรับการทดสอบการกำหนดค่าระยะไกล) วางเมาส์เหนือการทดสอบ คลิกเมนูบริบท () แล้วคลิกจัดการอุปกรณ์ทดสอบ
  4. ป้อนโทเค็นการให้สิทธิ์การติดตั้งสำหรับอุปกรณ์ทดสอบ แล้วเลือก ตัวแปรการทดสอบที่จะส่งไปยังอุปกรณ์ทดสอบนั้น
  5. เรียกใช้แอปและยืนยันว่าอุปกรณ์ทดสอบได้รับตัวแปรที่เลือก

ดูข้อมูลเพิ่มเติมเกี่ยวกับFirebaseการติดตั้งใช้งานได้ที่จัดการการติดตั้งใช้งาน Firebase

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. ในFirebaseคอนโซล ให้ไปที่ DevOps และการมีส่วนร่วม > การทดสอบ A/B
  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 หรือเว็บ ปัจจุบัน Remote Config SDK เวอร์ชันต่อไปนี้รองรับการกำหนดเป้าหมายนี้: 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 เหตุการณ์ที่ทริกเกอร์เมื่อผู้ใช้เปิดแอปเป็นครั้งแรกหลังจากติดตั้งหรือติดตั้งอีกครั้ง ใช้เป็นส่วนหนึ่งของ Conversion Funnel

เมตริกอื่นๆ

เมตริก คำอธิบาย
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 ให้คลิกจัดการและตรวจสอบว่าโปรเจ็กต์ของคุณส่งออกข้อมูล Analytics ไปยัง BigQuery

    หากการ์ดระบุว่าลิงก์ แสดงว่าคุณต้องตั้งค่าการส่งออก (ไปยัง ขั้นตอนถัดไป)

  3. หากต้องการตั้งค่าการส่งออก ให้ทำดังนี้

    1. อ่านเกี่ยวกับการลิงก์ Firebase กับ BigQuery แล้วคลิกถัดไป

    2. ในส่วนกำหนดค่าการผสานรวม ให้เปิดใช้ Google Analytics

    3. เลือกภูมิภาคและเลือกการตั้งค่าการส่งออก

    4. คลิกลิงก์ไปยัง 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. ในGoogle Cloudคอนโซล ให้ไปที่ BigQuery
  2. เลือกโปรเจ็กต์ แล้วเลือกสร้างการค้นหา SQL
  3. เพิ่มคำค้นหา ดูตัวอย่างการค้นหาที่จะเรียกใช้ได้ที่ สำรวจตัวอย่างการค้นหา
  4. คลิกเรียกใช้

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

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

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

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