ใช้การทดสอบ A/B สําหรับเกม Unity ด้วยการกำหนดค่าระยะไกลของ Firebase

1. บทนำ

ใน Codelab นี้ คุณจะได้เรียนรู้วิธีการสร้างการทดสอบการกำหนดค่าระยะไกลโดยใช้การทดสอบ A/B สำหรับเกมตัวอย่าง MechaHamster: Level Up with Firebase Edition ซึ่งได้แก้ไขในเครื่องมือของเกมด้วยการกำหนดค่าระยะไกลของ Firebase

การทดสอบ A/B ด้วยการกำหนดค่าระยะไกลช่วยให้คุณทดสอบการเปลี่ยนแปลงที่ทำกับ UI, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอปกับกลุ่มเป้าหมายก่อนที่จะนำไปใช้กับกลุ่มเป้าหมายในวงกว้างขึ้น นอกจากนี้ คุณยังใช้ผลการทดสอบเพื่อทําสิ่งต่อไปนี้ได้ด้วย

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

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

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

สิ่งที่คุณจะได้เรียนรู้

  • วิธีตั้งค่าการทดสอบ A/B โดยใช้ค่าการกำหนดค่าระยะไกลที่มีการวัดคุม
  • วิธีใช้พร็อพเพอร์ตี้ผู้ใช้ Google Analytics เป็นส่วนหนึ่งของเงื่อนไขในการเข้าร่วมการทดสอบ A/B

ข้อกำหนดเบื้องต้น

สิ่งที่ต้องมี

  • Unity 2019.1.0f1 ขึ้นไปที่รองรับบิลด์ของ iOS และ/หรือ Android

2. การเปิดใช้เมนูการแก้ไขข้อบกพร่อง

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

  1. ในตัวแก้ไข Unity ให้เลือกแท็บโปรเจ็กต์ จากนั้นในส่วนเนื้อหา ให้ขยาย Hamster > Prefabs > เมนู และคลิก เมนูหลัก

แท็บโปรเจ็กต์ของเครื่องมือแก้ไข Unity ที่แสดง\nเนื้อหา แฮมสเตอร์ อาหาร Prefabs เมนู

  1. ในลำดับชั้น Prefab ให้ค้นหาออบเจ็กต์ย่อยที่ปิดใช้งานอยู่ชื่อ DebugMenuButton แล้วคลิกเพื่อเปิดออบเจ็กต์ในแท็บ Inspector

ตัวแก้ไข Unity จะแสดงเมนูหลัก\nโดยปิดใช้ DebugMenu

  1. ในแท็บตัวตรวจสอบ ให้เลือกช่องที่มุมซ้ายบนข้างช่องข้อความที่มี DebugMenuButton เพื่อเปิดใช้

แท็บเครื่องมือตรวจสอบสำหรับ DebugMenuButton\nที่มีช่องทำเครื่องหมาย

  1. บันทึก Prefab

หากคุณเล่นเกมในโปรแกรมตัดต่อหรือในอุปกรณ์ เมนูก็จะเข้าถึงได้แล้ว

3. เปิดใช้เมนูย่อยการกำหนดค่าระยะไกล

  1. จากแท็บโปรเจ็กต์ใน Unity Editor ให้ขยายเนื้อหา > แฮมสเตอร์ > Prefabs > เมนู แล้วดับเบิลคลิกที่ออบเจ็กต์ DebugMenu เพื่อเปิดในแท็บ Hierarchy ของตัวแก้ไข

    รายการ DebugMenu ฝังอยู่ใต้ชิ้นงาน,\nHamster, Prefabs, เมนู
  2. ในแท็บลำดับชั้น ให้ขยายลำดับชั้นและคลิกออบเจ็กต์ย่อยใต้เมนูแก้ไขข้อบกพร่อง > Panel ซึ่งมีป้ายกำกับการดำเนินการกำหนดค่าระยะไกล

การดำเนินการกำหนดค่าระยะไกลฝังอยู่ใน\nCanvas, DebugMenu

  1. ในแท็บเครื่องมือตรวจสอบ Unity ให้เปิดใช้การดำเนินการกำหนดค่าระยะไกลโดยเลือกช่องทางด้านซ้ายของช่องข้อความที่มีชื่อออบเจ็กต์

ตัวแก้ไข Unity พร้อมการกำหนดค่าระยะไกล\nเปิดใช้การดำเนินการในส่วน DebugMenu, Panel

นี้มีรายการย่อย GameObject 2 รายการที่ชื่อ Set Bored Of Subtitle และ Set Likes Subtitle ซึ่งมีการกำหนดค่าให้เรียกใช้เมธอดที่มีอยู่แต่ยังไม่ได้นำไปใช้ใน DebugMenu.cs

4. รีเซ็ตการลบล้างคำบรรยายเป็นค่าเริ่มต้นในแอป

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

วิธีเปิดใช้ค่าเริ่มต้นในแอปอีกครั้ง

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

การลบเงื่อนไขออกจากเครื่องมือแก้ไขพารามิเตอร์ Remote\nConfig

  1. คลิกบันทึกเพื่อบันทึกการเปลี่ยนแปลง จากนั้นคลิกเผยแพร่การเปลี่ยนแปลงเพื่อเผยแพร่การเปลี่ยนแปลงตัวเลือก "เผยแพร่\nการเปลี่ยนแปลง" ในหน้าการกำหนดค่าระยะไกล

5. ตั้งค่าพร็อพเพอร์ตี้ผู้ใช้ในฟังก์ชันแก้ไขข้อบกพร่อง

ตอนนี้คุณจะเขียนส่วนฟังก์ชันสำหรับฟังก์ชัน Google Analytics ที่กำหนดค่าล่วงหน้าแต่ยังไม่ได้ใช้งานใน DebugMenu.cs (ซึ่งอยู่ในชิ้นงาน > แฮมสเตอร์ > สคริปต์ > สถานะ)

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

ใช้งาน SetUserBoredOfSubtitle และ SetUserEnjoysSubtitle โดยค้นหาเวอร์ชันที่มีอยู่ใน DebugMenu.cs และเขียนทับดังนี้

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

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

6. สร้างมิติข้อมูลที่กำหนดเอง

ต่อไป คุณจะต้องตั้งค่ารายละเอียดปลีกย่อยต่างๆ สำหรับ subtitle_override เพื่อดูว่าคำบรรยายแบบใดทำงานได้ดีที่สุด แต่ในการทดสอบ A/B คุณจะแสดงตัวแปรเหล่านี้ต่อผู้ใช้ที่มีความรู้สึกเกี่ยวกับคำบรรยายปัจจุบัน (ตามที่บันทึกไว้ในsubtitle_sentiment) ที่มีคำว่า "เบื่อ" เท่านั้น

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

วิธีสร้างมิติข้อมูลที่กำหนดเองใหม่

  1. เปิดคอนโซล Firebase ขยายเมนู Analytics แล้วเลือกคำจำกัดความที่กำหนดเอง
  2. จากหน้าคําจํากัดความที่กําหนดเอง ให้คลิกสร้างมิติข้อมูลที่กําหนดเอง
  3. ในหน้าต่างมิติข้อมูลที่กำหนดเองใหม่ ให้ตั้งชื่อมิติข้อมูลเป็น "ความเห็นคำบรรยาย" และเลือกผู้ใช้จากรายการแบบเลื่อนลงขอบเขต
  4. สำหรับช่องพร็อพเพอร์ตี้ผู้ใช้ ให้เลือก subtitle_sentiment.

7. ตั้งค่าการทดสอบ A/B Testing

จากนั้นสร้างการทดสอบ A/B Testing เพื่อตั้งค่าต่างๆ สำหรับ subtitle_override ที่จะนำมาทดสอบเทียบกัน เพื่อเพิ่มประสิทธิภาพการคงผู้ใช้ไว้ 2-3 วัน

  1. ขั้นแรก ให้เลือกแก้ไขในพารามิเตอร์ subtitle_override ในหน้าการกำหนดค่าระยะไกลของคอนโซล Firebase

พารามิเตอร์ subtitle_override\nหน้าการกำหนดค่าระยะไกล ที่แสดงตัวเลือก "แก้ไข"

  1. จากภายในกล่องโต้ตอบแก้ไขพารามิเตอร์ที่ปรากฏขึ้น ให้คลิกเพิ่มใหม่

ตัวเลือก "เพิ่มการทดสอบใหม่" ใน\nหน้าแก้ไขการกำหนดค่าระยะไกล

  1. เลือกการทดสอบจากรายการที่ปรากฏขึ้น

หน้าพารามิเตอร์การกำหนดค่าระยะไกล: เพิ่ม\nการทดสอบใหม่

  1. ป้อนชื่อและคำอธิบายการทดสอบ

ส่วนชื่อและคำอธิบายของการทดสอบ

  1. จากนั้นให้เลือกเงื่อนไขการกำหนดเป้าหมาย ก่อนอื่นให้เลือก "แอป" จากเมนูแบบเลื่อนลง

ขั้นตอนการกำหนดเป้าหมายของการกำหนดค่า\nการทดสอบ A/B ที่เลือกแอปไว้

  1. จากนั้นคลิกและเพื่อเพิ่มเงื่อนไขใหม่ จากนั้นเลือกพร็อพเพอร์ตี้ผู้ใช้ แล้วเลือก subtitle_sentiment หากชื่อไม่ปรากฏขึ้น ให้ป้อนรหัสด้วยตนเอง
  2. เนื่องจากคุณต้องการสร้างคำบรรยายเฉพาะให้แก่ผู้ที่มีความรู้สึกของคำบรรยายปัจจุบันเป็นคำว่า "เบื่อ" เท่านั้น เลือกมี และพิมพ์ bored
  3. (ไม่บังคับ) เลือกเปอร์เซ็นต์ของกลุ่มเป้าหมายที่ตรงกับเกณฑ์ข้างต้นเพื่อแสดงการทดสอบ เลือก 100% เพื่อหลีกเลี่ยงการสุ่มที่คุณควบคุมได้ยาก

ส่วนการกำหนดเป้าหมายการทดสอบ A/B ที่เลือก\nข้อความคำบรรยายไว้

  1. จากนั้น ให้เลือกเป้าหมายที่การทดสอบจะพยายามทำให้ได้ผลลัพธ์สูงสุด เลือกการเก็บรักษา (2-3 วัน)

ส่วนเป้าหมายการทดสอบ A/B

  1. จากนั้น ตั้งค่าพารามิเตอร์ของการทดสอบและสร้าง ตัวแปรคำบรรยายต่างๆ ตัวแปรเหล่านี้เป็นค่าที่แตกต่างกันของการทดสอบ A/B ที่จะแสดงต่อผู้ใช้ที่ subtitle_sentiment มีข้อความว่า "bored" (เบื่อ) และการทดสอบ A/B จะพิจารณาว่าตัวแปรใด เหมาะกับการคงผู้ใช้ไว้มากที่สุด
  2. ป้อนค่าพารามิเตอร์ต่อไปนี้สำหรับตัวแปร A
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. ป้อนค่าพารามิเตอร์ต่อไปนี้สำหรับตัวแปร B
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. กำหนดอัตราส่วนของตัวแปรด้วยจำนวนเต็มดังนี้
    • เกณฑ์พื้นฐาน: 1
    • ตัวแปร A: 100
    • ตัวแปร B: 100
    ผลที่ได้คือน้ำหนักรวม 0.5% สำหรับเกณฑ์พื้นฐาน, 49.8% สำหรับตัวแปร A และ 49.8% สำหรับตัวแปร Bส่วนการกำหนดค่าน้ำหนักตัวแปร\nตัวแปรเหล่านี้ระบุว่า 1 จาก 201 ครั้ง การทดสอบ A/B แสดงค่าเริ่มต้นสำหรับผู้ที่เบื่อคำบรรยาย แต่ 200/201 ครั้งจะแสดงค่าใหม่ 1 ใน 2 ค่าและลบล้างหน้าจอชื่อ
  5. บันทึกและส่งโดยคลิกเริ่มการทดสอบ แล้วคลิกเริ่มในป๊อปอัปการยืนยันคลิก "เริ่ม" เพื่อเริ่ม\nการทดสอบ

8. เรียกใช้เมธอด "ตั้งค่าพร็อพเพอร์ตี้ผู้ใช้" และรีเฟรช

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

หากก่อนหน้านี้คุณยังไม่เคยเรียกใช้เมธอด SetUserProperty หรือตั้งค่าเป็น enjoys คุณควรเห็นคำบรรยายเริ่มต้นเมื่อเปิดเกม

หากตั้งค่าเป็น bored (ก่อนดึงข้อมูลอีกครั้ง) คุณควรจะเห็นค่าใหม่ค่าใดค่าหนึ่งในอัตราส่วน 50/50 โดยประมาณ

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

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

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

9. ยินดีด้วย

คุณได้ใช้การทดสอบ A/B กับการกำหนดค่าระยะไกลเพื่อทดสอบกับค่าต่างๆ ของการกำหนดค่าระยะไกล และดูว่าแต่ละค่าส่งผลต่อเมตริก Analytics อย่างไร

สรุปประเด็นที่ได้พูดถึง

  • วิธีตั้งค่าการทดสอบ A/B โดยใช้ค่าการกำหนดค่าระยะไกลที่มีการวัดคุม
  • วิธีใช้พร็อพเพอร์ตี้ผู้ใช้ Google Analytics เป็นส่วนหนึ่งของเงื่อนไขในการเข้าร่วมการทดสอบ A/B Testing

ขั้นตอนถัดไป

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