สร้างการทดสอบการรับส่งข้อความด้วยการทดสอบ A/B

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

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

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

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

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

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

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

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

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

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

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

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

  7. ในส่วนตัวแปร ให้พิมพ์ข้อความที่จะส่งไปยังกลุ่มพื้นฐานในช่องป้อนข้อความ หากต้องการไม่ส่งข้อความไปยังกลุ่มพื้นฐาน ให้ปล่อยช่องนี้ว่างไว้

  8. (ไม่บังคับ) หากต้องการเพิ่มเวอร์ชันมากกว่า 1 รายการในการทดสอบ ให้คลิกเพิ่ม เวอร์ชัน โดยค่าเริ่มต้น การทดสอบจะมีเกณฑ์พื้นฐาน 1 รายการและตัวแปร 1 รายการ

  9. (ไม่บังคับ) ป้อนชื่อสำหรับแต่ละเวอร์ชันในการทดสอบเพื่อแทนที่ชื่อ เวอร์ชัน A, เวอร์ชัน B ฯลฯ

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

  11. เลือกตัวเลือกสำหรับข้อความ

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

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

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

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

  1. รับโทเค็นการลงทะเบียน FCM โดยทำดังนี้

    Swift

    Messaging.messaging().token { token, error in
      if let error = error {
        print("Error fetching remote FCM registration token: \(error)")
      } else if let token = token {
        print("Remote instance ID token: \(token)")
      }
    }

    Objective-C

    [[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"Error fetching the remote FCM registration token: %@", error);
      } else {
        NSLog(@"Remote FCM registration token: %@", token);
        NSString* message =
          [NSString stringWithFormat:@"FCM registration token: %@", token];
        // display message
        NSLog(@"%@", message);
      }
    }];

    Java

    FirebaseMessaging.getInstance().getToken()
        .addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
              if (!task.isSuccessful()) {
                Log.w(TAG, "Fetching FCM registration token failed", task.getException());
                return;
              }
    
              // Get new FCM registration token
              String token = task.getResult();
    
              // Log and toast
              String msg = getString(R.string.msg_token_fmt, token);
              Log.d(TAG, msg);
              Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    Kotlin

    FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
        if (!task.isSuccessful) {
            Log.w(TAG, "Fetching FCM registration token failed", task.exception)
            return@OnCompleteListener
        }
    
        // Get new FCM registration token
        val token = task.result
    
        // Log and toast
        val msg = getString(R.string.msg_token_fmt, token)
        Log.d(TAG, msg)
        Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
    })

    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.Messaging.FirebaseMessaging.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("FCM registration token {0}", task.Result));
        }
      });
  2. ในFirebaseคอนโซล ให้ไปที่ DevOps และการมีส่วนร่วม > การทดสอบ A/B
  3. คลิกฉบับร่าง วางเมาส์เหนือการทดสอบ คลิกเมนูบริบท () แล้วคลิกจัดการอุปกรณ์ทดสอบ
  4. ป้อนFCMโทเค็นสำหรับอุปกรณ์ทดสอบ แล้วเลือกตัวแปรการทดสอบ ที่จะส่งไปยังอุปกรณ์ทดสอบนั้น
  5. เรียกใช้แอปและยืนยันว่าอุปกรณ์ทดสอบได้รับตัวแปรที่เลือก

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

ไม่ว่าคุณจะสร้างการทดสอบด้วย 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. คลิกเสร็จสมบูรณ์หรือกําลังทํางาน วางเมาส์เหนือการทดสอบ คลิกเมนูบริบท () แล้ว คลิกทําซ้ำการทดสอบหรือหยุดการทดสอบ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เมตริก คำอธิบาย
ผู้ใช้ที่ไม่พบข้อขัดข้อง เปอร์เซ็นต์ของผู้ใช้ที่ไม่พบข้อผิดพลาดในแอปซึ่ง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