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

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

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

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

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

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

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

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

  1. บันทึก Prefab

หากคุณเรียกใช้เกมในเอดิเตอร์หรือบนอุปกรณ์ ตอนนี้คุณควรเข้าถึงเมนูได้แล้ว

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

  1. จากแท็บโปรเจ็กต์ใน Unity Editor ให้ขยายเนื้อหา > Hamster > Prefab > เมนู แล้วดับเบิลคลิกออบเจ็กต์ DebugMenu เพื่อเปิดในแท็บลำดับชั้นของเอดิเตอร์

    รายการ DebugMenu ที่ซ้อนอยู่ใต้ Assets, Hamster, Prefabs, Menus
  2. ในแท็บลำดับชั้น ให้ขยายลำดับชั้น แล้วคลิกออบเจ็กต์ย่อยในส่วน DebugMenu > Panel ซึ่งมีป้ายกำกับว่า Remote Config Actions

การดำเนินการในการกำหนดค่าระยะไกลที่ซ้อนอยู่ภายใต้ Canvas, DebugMenu

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

Unity Editor ที่มีการกำหนดค่าระยะไกล\nเปิดใช้การดำเนินการใน DebugMenu, Panel

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

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

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

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

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

การลบเงื่อนไขออกจากเครื่องมือแก้ไขพารามิเตอร์การกำหนดค่าระยะไกล

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

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 ดูข้อมูลเพิ่มเติมได้ที่มิติข้อมูลและเมตริกที่กำหนดเอง

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

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

7. สร้างการทดสอบ A/B

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

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

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

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

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

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

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

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

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

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

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

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

ส่วนการกำหนดเป้าหมายของการทดสอบ A/B โดยเลือก\nsubtitle_sentiment

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

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

  1. จากนั้นตั้งค่าพารามิเตอร์ของการทดสอบและสร้างคำบรรยายแทนเสียงตัวแปรต่างๆ ตัวแปรเหล่านี้คือค่าต่างๆ ที่การทดสอบ A/B จะแสดงต่อผู้ใช้ที่มีsubtitle_sentimentซึ่งมีคำว่า "เบื่อ" และการทดสอบ 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ส่วนการกำหนดค่าน้ำหนักของตัวแปรตัวแปรเหล่านี้ระบุว่า 1 ใน 201 ครั้ง การทดสอบ A/B จะแสดงค่าเริ่มต้นต่อผู้ที่เบื่อคำบรรยาย แต่ 200/201 ครั้ง การทดสอบจะแสดงค่าใหม่ 2 ค่าค่าใดค่าหนึ่งและลบล้างหน้าจอชื่อ
  5. บันทึกและส่งโดยคลิกเริ่มการทดสอบ จากนั้นคลิกเริ่มในป๊อปอัปยืนยันคลิกเริ่มเพื่อเริ่มการทดสอบ

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

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

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