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
ข้อกำหนดเบื้องต้น
- ทำเครื่องมือในเกมของคุณด้วยการกำหนดค่าระยะไกลของ Firebase เสร็จสมบูรณ์แล้ว
สิ่งที่ต้องมี
- Unity 2019.1.0f1 ขึ้นไปที่รองรับบิลด์ของ iOS และ/หรือ Android
2. การเปิดใช้เมนูการแก้ไขข้อบกพร่อง
โปรเจ็กต์ซ่อนเมนูแก้ไขข้อบกพร่องไว้ และปุ่มสำหรับเข้าถึงเมนูนี้มีอยู่ในเกมแต่ยังไม่ได้เปิดใช้ คุณต้องเปิดใช้งานปุ่มเพื่อเข้าถึงปุ่มจาก Prefab ของ MainMenu
- ในตัวแก้ไข Unity ให้เลือกแท็บโปรเจ็กต์ จากนั้นในส่วนเนื้อหา ให้ขยาย Hamster > Prefabs > เมนู และคลิก เมนูหลัก
- ในลำดับชั้น Prefab ให้ค้นหาออบเจ็กต์ย่อยที่ปิดใช้งานอยู่ชื่อ DebugMenuButton แล้วคลิกเพื่อเปิดออบเจ็กต์ในแท็บ Inspector
- ในแท็บตัวตรวจสอบ ให้เลือกช่องที่มุมซ้ายบนข้างช่องข้อความที่มี DebugMenuButton เพื่อเปิดใช้
- บันทึก Prefab
หากคุณเล่นเกมในโปรแกรมตัดต่อหรือในอุปกรณ์ เมนูก็จะเข้าถึงได้แล้ว
3. เปิดใช้เมนูย่อยการกำหนดค่าระยะไกล
- จากแท็บโปรเจ็กต์ใน Unity Editor ให้ขยายเนื้อหา > แฮมสเตอร์ > Prefabs > เมนู แล้วดับเบิลคลิกที่ออบเจ็กต์ DebugMenu เพื่อเปิดในแท็บ Hierarchy ของตัวแก้ไข
- ในแท็บลำดับชั้น ให้ขยายลำดับชั้นและคลิกออบเจ็กต์ย่อยใต้เมนูแก้ไขข้อบกพร่อง > Panel ซึ่งมีป้ายกำกับการดำเนินการกำหนดค่าระยะไกล
- ในแท็บเครื่องมือตรวจสอบ Unity ให้เปิดใช้การดำเนินการกำหนดค่าระยะไกลโดยเลือกช่องทางด้านซ้ายของช่องข้อความที่มีชื่อออบเจ็กต์
นี้มีรายการย่อย GameObject 2 รายการที่ชื่อ Set Bored Of Subtitle และ Set Likes Subtitle ซึ่งมีการกำหนดค่าให้เรียกใช้เมธอดที่มีอยู่แต่ยังไม่ได้นำไปใช้ใน DebugMenu.cs
4. รีเซ็ตการลบล้างคำบรรยายเป็นค่าเริ่มต้นในแอป
ใน Codelab ก่อนหน้า คุณได้ลบล้างค่าเริ่มต้นของพารามิเตอร์เป็น JSON และใช้เงื่อนไขในการแสดงตัวแปรต่างๆ ในฐานะส่วนหนึ่งของ Codelab นี้ คุณจะลบเงื่อนไขที่สร้างไว้และเริ่มใช้ค่าเริ่มต้นในแอปอีกครั้ง และจะลบล้างเงื่อนไขดังกล่าวด้วยผลลัพธ์ของการทดสอบ A/B เท่านั้น
วิธีเปิดใช้ค่าเริ่มต้นในแอปอีกครั้ง
- เปิดหน้าการกำหนดค่าระยะไกลในคอนโซล Firebase แล้วคลิกไอคอนดินสอข้างพารามิเตอร์
subtitle_override
เพื่อเปิดแผงด้านข้างสำหรับแก้ไขพารามิเตอร์ - คลิกไอคอน X ข้างเงื่อนไขเพื่อลบ
- เปิดใช้ปุ่มสลับใช้ค่าเริ่มต้นในแอปถัดจากค่าเริ่มต้นที่เหลืออยู่
- คลิกบันทึกเพื่อบันทึกการเปลี่ยนแปลง จากนั้นคลิกเผยแพร่การเปลี่ยนแปลงเพื่อเผยแพร่การเปลี่ยนแปลง
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 ดูมิติข้อมูลและเมตริกที่กำหนดเองสำหรับข้อมูลเพิ่มเติม
วิธีสร้างมิติข้อมูลที่กำหนดเองใหม่
- เปิดคอนโซล Firebase ขยายเมนู Analytics แล้วเลือกคำจำกัดความที่กำหนดเอง
- จากหน้าคําจํากัดความที่กําหนดเอง ให้คลิกสร้างมิติข้อมูลที่กําหนดเอง
- ในหน้าต่างมิติข้อมูลที่กำหนดเองใหม่ ให้ตั้งชื่อมิติข้อมูลเป็น "ความเห็นคำบรรยาย" และเลือกผู้ใช้จากรายการแบบเลื่อนลงขอบเขต
- สำหรับช่องพร็อพเพอร์ตี้ผู้ใช้ ให้เลือก
subtitle_sentiment.
7. ตั้งค่าการทดสอบ A/B Testing
จากนั้นสร้างการทดสอบ A/B Testing เพื่อตั้งค่าต่างๆ สำหรับ subtitle_override
ที่จะนำมาทดสอบเทียบกัน เพื่อเพิ่มประสิทธิภาพการคงผู้ใช้ไว้ 2-3 วัน
- ขั้นแรก ให้เลือกแก้ไขในพารามิเตอร์
subtitle_override
ในหน้าการกำหนดค่าระยะไกลของคอนโซล Firebase
- จากภายในกล่องโต้ตอบแก้ไขพารามิเตอร์ที่ปรากฏขึ้น ให้คลิกเพิ่มใหม่
- เลือกการทดสอบจากรายการที่ปรากฏขึ้น
- ป้อนชื่อและคำอธิบายการทดสอบ
- จากนั้นให้เลือกเงื่อนไขการกำหนดเป้าหมาย ก่อนอื่นให้เลือก "แอป" จากเมนูแบบเลื่อนลง
- จากนั้นคลิกและเพื่อเพิ่มเงื่อนไขใหม่ จากนั้นเลือกพร็อพเพอร์ตี้ผู้ใช้ แล้วเลือก
subtitle_sentiment
หากชื่อไม่ปรากฏขึ้น ให้ป้อนรหัสด้วยตนเอง - เนื่องจากคุณต้องการสร้างคำบรรยายเฉพาะให้แก่ผู้ที่มีความรู้สึกของคำบรรยายปัจจุบันเป็นคำว่า "เบื่อ" เท่านั้น เลือกมี และพิมพ์
bored
- (ไม่บังคับ) เลือกเปอร์เซ็นต์ของกลุ่มเป้าหมายที่ตรงกับเกณฑ์ข้างต้นเพื่อแสดงการทดสอบ เลือก 100% เพื่อหลีกเลี่ยงการสุ่มที่คุณควบคุมได้ยาก
- จากนั้น ให้เลือกเป้าหมายที่การทดสอบจะพยายามทำให้ได้ผลลัพธ์สูงสุด เลือกการเก็บรักษา (2-3 วัน)
- จากนั้น ตั้งค่าพารามิเตอร์ของการทดสอบและสร้าง ตัวแปรคำบรรยายต่างๆ ตัวแปรเหล่านี้เป็นค่าที่แตกต่างกันของการทดสอบ A/B ที่จะแสดงต่อผู้ใช้ที่
subtitle_sentiment
มีข้อความว่า "bored" (เบื่อ) และการทดสอบ A/B จะพิจารณาว่าตัวแปรใด เหมาะกับการคงผู้ใช้ไว้มากที่สุด - ป้อนค่าพารามิเตอร์ต่อไปนี้สำหรับตัวแปร A
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
- ป้อนค่าพารามิเตอร์ต่อไปนี้สำหรับตัวแปร B
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
- กำหนดอัตราส่วนของตัวแปรด้วยจำนวนเต็มดังนี้
- เกณฑ์พื้นฐาน: 1
- ตัวแปร A: 100
- ตัวแปร B: 100
- บันทึกและส่งโดยคลิกเริ่มการทดสอบ แล้วคลิกเริ่มในป๊อปอัปการยืนยัน
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 รายการจากรายการการทดสอบในโปรเจ็กต์เพื่อตัดสินใจว่าจะทำอะไรกับการทดสอบนั้น คุณจะเลือกคนใดคนหนึ่งเป็น "ผู้ชนะ" ไหม หรือทำการทดสอบเพิ่มเติม