1. บทนำ
ในโค้ดแล็บนี้ คุณจะได้เรียนรู้วิธีสร้างการทดสอบการกำหนดค่าระยะไกลโดยใช้การทดสอบ A/B สำหรับเกมตัวอย่าง MechaHamster: Level Up with Firebase edition ซึ่งคุณได้แก้ไขในวัดผลเกมด้วยการกำหนดค่าระยะไกลของ Firebase
การทดสอบ A/B ด้วยการกำหนดค่าระยะไกลช่วยให้คุณทดสอบการเปลี่ยนแปลง UI, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอปในกลุ่มเป้าหมายที่กำหนดได้ก่อนที่จะเปิดตัวต่อกลุ่มเป้าหมายที่กว้างขึ้น นอกจากนี้ คุณยังใช้ผลการทดสอบเพื่อทำสิ่งต่อไปนี้ได้ด้วย
- พิจารณาว่าค่าพารามิเตอร์ตัวแปรใดช่วยปรับปรุงเมตริกหลัก เช่น รายได้และการรักษาผู้ใช้
- ดูว่ากลุ่มย่อยของผู้ใช้กลุ่มใดชอบตัวแปรใด
- รวบรวมและจัดเก็บข้อมูลการทดสอบเพื่อทำการวิเคราะห์เพิ่มเติมเกี่ยวกับผลของการตั้งค่าพารามิเตอร์ต่างๆ
นี่คือหัวใจสำคัญของการทดสอบ A/B ซึ่งช่วยให้คุณใช้โค้ดที่ติดตั้งเครื่องมือสำหรับการกำหนดค่าระยะไกลและเปิดตัวการทดสอบที่ควบคุมค่าที่ไคลเอ็นต์ได้รับได้ โดยอิงตามเงื่อนไขการกำหนดค่าระยะไกล (รวมถึงพร็อพเพอร์ตี้ผู้ใช้ Google Analytics) การเปิดตัวแบบเปอร์เซ็นต์ เหตุการณ์ Conversion ของ Analytics และการผสมผสานกันของสิ่งเหล่านี้
ก่อนอื่น คุณจะใช้เงื่อนไขที่ควบคุมผู้ที่จะรวมอยู่ในการทดสอบโดยการตั้งค่าพร็อพเพอร์ตี้ผู้ใช้ตามการกระทําของผู้ใช้ จากนั้นคุณจะสร้างการทดสอบ A/B ที่ใช้พร็อพเพอร์ตี้ผู้ใช้ของ Google Analytics เพื่อพิจารณาว่าไคลเอ็นต์ใดบ้างที่รวมอยู่ในการทดสอบ และสุดท้าย คุณจะใช้ข้อมูลดังกล่าวเพื่อทำความเข้าใจเกี่ยวกับผู้ชมมากขึ้น
สิ่งที่คุณจะได้เรียนรู้
- วิธีตั้งค่าการทดสอบ A/B โดยใช้ค่าการกำหนดค่าระยะไกลที่วัดผล
- วิธีใช้พร็อพเพอร์ตี้ผู้ใช้ของ Google Analytics เป็นส่วนหนึ่งของเงื่อนไขในการเข้าร่วมการทดสอบ A/B
ข้อกำหนดเบื้องต้น
สิ่งที่ต้องมี
- Unity 2019.1.0f1 ขึ้นไปที่รองรับการสร้าง iOS และ/หรือ Android
2. การเปิดใช้เมนูแก้ไขข้อบกพร่อง
โปรเจ็กต์มีเมนูแก้ไขข้อบกพร่องที่ซ่อนอยู่ และมีปุ่มสำหรับเข้าถึงเมนูนี้ในเกม แต่ขณะนี้ยังไม่ได้เปิดใช้ คุณต้องเปิดใช้ปุ่มเพื่อเข้าถึงจาก Prefab ของ MainMenu
- ในโปรแกรมแก้ไข Unity ให้เลือกแท็บโปรเจ็กต์ จากนั้นในส่วนชิ้นงาน ให้ขยายHamster > Prefabs > Menus แล้วคลิก MainMenu
- ในลำดับชั้นของ Prefab ให้ค้นหาออบเจ็กต์ย่อยที่ปิดใช้อยู่ชื่อ DebugMenuButton แล้วคลิกเพื่อเปิดในแท็บ Inspector
- ในแท็บเครื่องมือตรวจสอบ ให้เลือกช่องที่มุมซ้ายบนข้างช่องข้อความที่มี DebugMenuButton เพื่อเปิดใช้
- บันทึก Prefab
หากคุณเรียกใช้เกมในเอดิเตอร์หรือบนอุปกรณ์ ตอนนี้คุณควรเข้าถึงเมนูได้แล้ว
3. เปิดใช้เมนูย่อยการกำหนดค่าระยะไกล
- จากแท็บโปรเจ็กต์ใน Unity Editor ให้ขยายเนื้อหา > Hamster > Prefab > เมนู แล้วดับเบิลคลิกออบเจ็กต์ DebugMenu เพื่อเปิดในแท็บลำดับชั้นของเอดิเตอร์
- ในแท็บลำดับชั้น ให้ขยายลำดับชั้น แล้วคลิกออบเจ็กต์ย่อยในส่วน DebugMenu > Panel ซึ่งมีป้ายกำกับว่า Remote Config Actions
- ในแท็บ Inspector ของ Unity ให้เปิดใช้การดำเนินการของ Remote Config โดยเลือกช่องทางด้านซ้ายของช่องข้อความที่มีชื่อของออบเจ็กต์
โดยมี GameObject ย่อย 2 รายการชื่อ Set Bored Of Subtitle และ Set Enjoys Subtitle ซึ่งทั้ง 2 รายการได้รับการกำหนดค่าให้เรียกใช้เมธอดที่มีอยู่แต่ยังไม่ได้ใช้ใน DebugMenu.cs
4. รีเซ็ตการลบล้างคำบรรยายแทนเสียงเป็นค่าเริ่มต้นในแอป
ในโค้ดแล็บก่อนหน้า คุณได้ลบล้างค่าเริ่มต้นของพารามิเตอร์เป็น JSON และใช้เงื่อนไขเพื่อแสดงตัวแปรต่างๆ ใน Codelab นี้ คุณจะลบเงื่อนไขที่สร้างขึ้นและนำค่าเริ่มต้นในแอปกลับมาใช้ใหม่ และจะลบล้างค่าเริ่มต้นด้วยผลลัพธ์ของการทดสอบ A/B เท่านั้น
วิธีเปิดใช้ค่าเริ่มต้นในแอปอีกครั้ง
- เปิดหน้าการกำหนดค่าระยะไกลในคอนโซล Firebase แล้วคลิกไอคอนดินสอข้างพารามิเตอร์
subtitle_override
เพื่อเปิดแผงด้านข้างแก้ไขพารามิเตอร์ - คลิกไอคอน X ข้างเงื่อนไขเพื่อลบ
- เปิดใช้ปุ่มเปิด/ปิดใช้ค่าเริ่มต้นในแอปข้างค่าเริ่มต้นที่เหลือ
- คลิกบันทึกเพื่อบันทึกการเปลี่ยนแปลง จากนั้นคลิกเผยแพร่การเปลี่ยนแปลงเพื่อเผยแพร่การเปลี่ยนแปลง
5. ตั้งค่าพร็อพเพอร์ตี้ผู้ใช้ในฟังก์ชันการแก้ไขข้อบกพร่อง
ตอนนี้คุณจะเขียนเนื้อหาฟังก์ชันสำหรับฟังก์ชัน Google Analytics บางอย่างที่กำหนดค่าไว้ล่วงหน้าแต่ยังไม่ได้ใช้งานใน DebugMenu.cs
(ซึ่งอยู่ใน Assets > Hamster > Scripts > States)
ฟังก์ชันเหล่านี้ตั้งค่าพร็อพเพอร์ตี้ผู้ใช้ ซึ่งเป็นวิธีอธิบายกลุ่มต่างๆ ในฐานผู้ใช้ และใช้เพื่อบันทึกความรู้สึกของผู้ใช้เกี่ยวกับคำบรรยายแทนเสียงของเกม
ใช้ SetUserBoredOfSubtitle
และ SetUserEnjoysSubtitle
โดยค้นหาเวอร์ชันที่มีอยู่ของ DebugMenu.cs
แล้วเขียนทับตามวิธีต่อไปนี้
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
หากกำหนดค่าแอปด้วย Google Analytics อย่างถูกต้อง คุณจะเรียกใช้ฟังก์ชันใดฟังก์ชันหนึ่งเหล่านี้เพื่อให้พร็อพเพอร์ตี้พร้อมใช้งานกับเงื่อนไขของ Remote Config ได้ หากต้องการโทรหา SetUserBoredOfSubtitle
จากอุปกรณ์เคลื่อนที่ ให้เริ่มเกมแล้วกดปุ่มเมนูแก้ไขข้อบกพร่องในเมนูหลัก จากนั้นกดตั้งค่าเบื่อคำบรรยาย
6. สร้างมิติข้อมูลที่กำหนดเอง
จากนั้นคุณจะตั้งค่าคำบรรยายแทนเสียงหลายรูปแบบสำหรับ subtitle_override
เพื่อดูว่าคำบรรยายแทนเสียงใดทำงานได้ดีที่สุด แต่ในการทดสอบ A/B คุณจะแสดงตัวแปรเหล่านี้ต่อผู้ใช้ที่รู้สึกเบื่อกับคำบรรยายแทนเสียงปัจจุบัน (ตามที่บันทึกไว้ใน subtitle_sentiment
) เท่านั้น
คุณจะใช้มิติข้อมูลที่กําหนดเองเพื่อสร้างและติดตามพารามิเตอร์ที่กําหนดเองในเหตุการณ์ Analytics ดูข้อมูลเพิ่มเติมได้ที่มิติข้อมูลและเมตริกที่กำหนดเอง
วิธีสร้างมิติข้อมูลที่กำหนดเองใหม่
- เปิดคอนโซล Firebase ขยายเมนูข้อมูลวิเคราะห์ แล้วเลือกคำจำกัดความที่กำหนดเอง
- จากหน้าคําจํากัดความที่กําหนดเอง ให้คลิกสร้างมิติข้อมูลที่กําหนดเอง
- ในหน้าต่างมิติข้อมูลที่กําหนดเองใหม่ ให้ตั้งชื่อมิติข้อมูลเป็น "ความรู้สึกของคําบรรยาย" และเลือกผู้ใช้จากเมนูแบบเลื่อนลงขอบเขต
- สำหรับช่องพร็อพเพอร์ตี้ผู้ใช้ ให้เลือก
subtitle_sentiment.
7. สร้างการทดสอบ A/B
จากนั้นสร้างการทดสอบ A/B เพื่อกำหนดค่าต่างๆ สำหรับ subtitle_override
เพื่อทดสอบเทียบกันเพื่อเพิ่มประสิทธิภาพการคงผู้ใช้ไว้ 2-3 วัน
- ก่อนอื่น ให้เลือกแก้ไขในพารามิเตอร์
subtitle_override
ในหน้าการกำหนดค่าระยะไกลของคอนโซล Firebase
- จากกล่องโต้ตอบแก้ไขพารามิเตอร์ที่ปรากฏขึ้น ให้คลิกเพิ่มใหม่
- เลือกการทดสอบจากรายการที่ปรากฏขึ้น
- ป้อนชื่อและคำอธิบายการทดสอบ
- จากนั้นเลือกเงื่อนไขการกำหนดเป้าหมาย ก่อนอื่น ให้เลือกแอปจากเมนูแบบเลื่อนลง
- จากนั้นคลิกและเพื่อเพิ่มเงื่อนไขใหม่ แล้วเลือกพร็อพเพอร์ตี้ผู้ใช้และเลือก
subtitle_sentiment
หากไม่ปรากฏ ให้ป้อนด้วยตนเอง - เนื่องจากคุณต้องการตั้งค่าคำบรรยายสำหรับผู้ที่ความรู้สึกของคำบรรยายปัจจุบันมีคำว่า "เบื่อ" เท่านั้น ให้เลือกมี แล้วพิมพ์
bored
- ไม่บังคับ: เลือกเปอร์เซ็นต์ของกลุ่มเป้าหมายที่ตรงกับเกณฑ์ข้างต้นเพื่อแสดงในการทดสอบ เลือก 100% เพื่อหลีกเลี่ยงความสุ่มที่คุณควบคุมได้ยาก
- จากนั้นเลือกเป้าหมายที่การทดสอบจะพยายามเพิ่มให้ได้สูงสุด เลือกการเก็บรักษา (2-3 วัน)
- จากนั้นตั้งค่าพารามิเตอร์ของการทดสอบและสร้างคำบรรยายแทนเสียงตัวแปรต่างๆ ตัวแปรเหล่านี้คือค่าต่างๆ ที่การทดสอบ A/B จะแสดงต่อผู้ใช้ที่มี
subtitle_sentiment
ซึ่งมีคำว่า "เบื่อ" และการทดสอบ 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
ตัวแปรเหล่านี้ระบุว่า 1 ใน 201 ครั้ง การทดสอบ A/B จะแสดงค่าเริ่มต้นต่อผู้ที่เบื่อคำบรรยาย แต่ 200/201 ครั้ง การทดสอบจะแสดงค่าใหม่ 2 ค่าค่าใดค่าหนึ่งและลบล้างหน้าจอชื่อ
- บันทึกและส่งโดยคลิกเริ่มการทดสอบ จากนั้นคลิกเริ่มในป๊อปอัปยืนยัน
8. เรียกใช้เมธอด Set User Property แล้วรีเฟรช
ตอนนี้คุณได้ตั้งค่าพร็อพเพอร์ตี้ต่างๆ เกี่ยวกับผู้ใช้แล้ว ซึ่งสามารถใช้เพื่อกำหนดตรรกะหรือการนำเสนอของเกมได้
หากก่อนหน้านี้คุณไม่ได้เรียกใช้เมธอด SetUserProperty
หรือตั้งค่าเป็น enjoys
คุณจะยังเห็นคำบรรยายแทนเสียงเริ่มต้นเมื่อเปิดเกม
หากตั้งค่าเป็น bored
(ก่อนที่จะดึงข้อมูลอีกครั้ง) คุณควรเห็นค่าใหม่ค่าใดค่าหนึ่งในอัตราส่วนประมาณ 50/50
เมื่ออุปกรณ์เข้าสู่การทดสอบ A/B แล้ว ค่าที่ได้รับจากการทดสอบนั้นจะไม่เปลี่ยนแปลงและจะคงอยู่ต่อการติดตั้ง ด้วยเหตุนี้ หากต้องการรับค่าทดสอบอื่นๆ คุณต้องสร้างการติดตั้งใหม่โดยการติดตั้งเกมอีกครั้งในอุปกรณ์/โปรแกรมจำลองเดียวกัน หรือติดตั้งเกมในอุปกรณ์/โปรแกรมจำลองใหม่
ในการทดสอบ A/B จริงที่เปิดตัวในฐานผู้ใช้ คุณควรกำหนดน้ำหนักพื้นฐานให้คล้ายกับตัวแปรอื่นๆ แต่ในกรณีนี้ คุณจะกำหนดความน่าจะเป็นที่เบ้มากเพื่อตรวจสอบว่าการทดสอบทำงานได้ หาก (ในกรณี 1/201) คุณยังได้รับค่าเริ่มต้นอยู่ ให้ลองติดตั้งเกมลงในอุปกรณ์/โปรแกรมจำลองอีกครั้ง
อีกผลกระทบหนึ่งของการดำเนินการนี้คือการเปลี่ยนพร็อพเพอร์ตี้ผู้ใช้กลับไปเป็น enjoys
จะไม่เปลี่ยนค่ากลับไปเป็นค่าพื้นฐาน แต่คุณสามารถทำได้โดยเปลี่ยนไปใช้ enjoys
แล้วติดตั้งอีกครั้ง
9. ยินดีด้วย
คุณใช้การทดสอบ A/B ของการกำหนดค่าระยะไกลเพื่อทดสอบค่าการกำหนดค่าระยะไกลต่างๆ และพิจารณาว่าแต่ละค่าส่งผลต่อเมตริก Analytics อย่างไร
สิ่งที่เราได้พูดถึงไปแล้ว
- วิธีตั้งค่าการทดสอบ A/B โดยใช้ค่าการกำหนดค่าระยะไกลที่วัดผล
- วิธีใช้พร็อพเพอร์ตี้ผู้ใช้ของ Google Analytics เป็นส่วนหนึ่งของเงื่อนไขในการยอมรับให้เข้าร่วมการทดสอบ A/B
ขั้นตอนถัดไป
เมื่อการทดสอบสิ้นสุดลง คุณจะเลือกการทดสอบจากรายการการทดสอบในโปรเจ็กต์เพื่อตัดสินใจได้ว่าจะทำอะไรกับการทดสอบนั้น คุณต้องการเลือกโฆษณาหนึ่งเป็น "ผู้ชนะ" หรือทำการทดสอบเพิ่มเติม