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

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

หากต้องการทดสอบ A/B ตัวแปรของฟีเจอร์กับกลุ่มฐาน ให้ทําดังนี้

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

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

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

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

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

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

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

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

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

    • เวอร์ชัน: แอปของคุณอย่างน้อย 1 เวอร์ชัน
    • กลุ่มเป้าหมายของผู้ใช้: กลุ่มเป้าหมาย 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 FCM registration token: \(error)")
      } else if let token = token {
        print("FCM registration token: \(token)")
        self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
      }
    }
    

    Objective-C

    [[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
      if (error != nil) {
        NSLog(@"Error getting FCM registration token: %@", error);
      } else {
        NSLog(@"FCM registration token: %@", token);
        self.fcmRegTokenMessage.text = token;
      }
    }];
    

    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+KTX

    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& 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. คลิกการทดสอบ A/B ในแถบนําทางของFirebaseคอนโซล
  3. คลิกฉบับร่าง วางเมาส์เหนือการทดสอบ คลิกเมนูตามบริบท () แล้วคลิกจัดการอุปกรณ์ทดสอบ
  4. ป้อนโทเค็น FCM สําหรับอุปกรณ์ทดสอบ แล้วเลือกตัวแปรการทดสอบที่จะส่งไปยังอุปกรณ์ทดสอบนั้น
  5. เรียกใช้แอปและยืนยันว่าอุปกรณ์ทดสอบได้รับตัวแปรที่เลือก

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

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

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

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

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

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

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

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

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

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

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

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

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

  • รายได้ทั้งหมดโดยประมาณเพื่อดูความแตกต่างของรายได้จากการซื้อในแอปและรายได้จากโฆษณารวมกันระหว่างตัวแปร 2 รายการ
  • การคงผู้ใช้ไว้ (1 วัน), การคงผู้ใช้ไว้ (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 ที่ทริกเกอร์เมื่อผู้ใช้เปิดแอปเป็นครั้งแรกหลังจากติดตั้งหรือติดตั้งอีกครั้ง ใช้เป็นส่วนหนึ่งของ 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: รหัสพร็อพเพอร์ตี้ 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 events, ad_impression หรือ user_retention events

หลังจากรวบรวมข้อมูลที่จำเป็นในการสร้างการค้นหาแล้ว ให้ทำดังนี้

  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 Testingการทดสอบจากตารางเหตุการณ์ Google 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