ใช้การทดสอบ A/B สำหรับเกม Unity ของคุณด้วย Firebase Remote Config

1. บทนำ

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

การทดสอบ 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 build

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

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

  1. ในตัวแก้ไข Unity ให้เลือกแท็บ Project จากนั้นภายใต้ Assets ขยาย Hamster > Prefabs > Menus และคลิก MainMenu

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

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

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

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

The Inspector tab for DebugMenuButton\nwith checkbox

  1. บันทึกรูปแบบสำเร็จรูป

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

3. เปิดใช้งานเมนูย่อย Remote Config

  1. จากแท็บ Project ใน Unity Editor ให้ขยาย Assets > Hamster > Prefabs > Menus และดับเบิลคลิกออบเจ็กต์ DebugMenu เพื่อเปิดในแท็บ Hierarchy ของเอดิเตอร์

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

Remote Config Actions nested under\nCanvas, DebugMenu

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

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

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

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

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

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

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

Deleting a condition from the Remote\nConfig parameter editor

  1. คลิก บันทึก เพื่อบันทึกการเปลี่ยนแปลงของคุณ จากนั้นคลิก เผยแพร่การเปลี่ยนแปลง เพื่อเผยแพร่การเปลี่ยนแปลงของคุณ Publish\nchanges option on the Remote Config page

5. ตั้งค่าคุณสมบัติผู้ใช้ในฟังก์ชัน Debug

ตอนนี้ คุณจะเขียนเนื้อหาของฟังก์ชันสำหรับฟังก์ชัน 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 คุณสามารถเรียกใช้ฟังก์ชันใดฟังก์ชันหนึ่งเหล่านี้เพื่อทำให้พร็อพเพอร์ตี้พร้อมใช้งานตามเงื่อนไขของการกำหนดค่าระยะไกล หากต้องการเรียก SetUserBoredOfSubtitle จากอุปกรณ์มือถือ ให้เริ่มเกมแล้วกดปุ่ม Debug Menu ในเมนูหลัก จากนั้นกด Set Bored of Subtitle

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 ที่จะทดสอบเปรียบเทียบกันเพื่อเพิ่มประสิทธิภาพการรักษาผู้ใช้สองถึงสามวัน

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

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

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

The Add new experiment option on the\nRemote Config Edit parameter page.

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

Remote Config parameter page: Add new\nexperiment

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

Experiment name and description\nsection

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

The Targeting step of an A/B Testing\nconfiguration, with an app selected

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

A/B Testing Targeting section with\nsubtitle_sentiment selected

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

A/B Testing Goals section

  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 Variant weights configuration\nsection รูปแบบเหล่านี้ระบุว่าหนึ่งใน 201 ครั้ง การทดสอบ A/B จะทำหน้าที่เป็นค่าเริ่มต้นสำหรับผู้ที่เบื่อคำบรรยาย แต่ 200/201 ครั้งจะให้บริการหนึ่งในสองค่าใหม่และแทนที่หน้าจอชื่อเรื่อง
  5. บันทึกและส่งโดยคลิก เริ่มการทดสอบ จากนั้นคลิก เริ่ม ในป๊อปอัปยืนยัน Click Start to start the\nexperiment

8. เรียกใช้วิธี Set User Property และรีเฟรช

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

หากคุณไม่เคยเรียกใช้เมธอด 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

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

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