Firebase रिमोट कॉन्फ़िगरेशन की मदद से, अपने यूनिटी गेम के लिए A/B टेस्ट लागू करना

1. शुरुआती जानकारी

इस कोडलैब में, आपको MechaHamster: Firebase वर्शन के साथ A/B टेस्टिंग के लिए A/B टेस्टिंग का इस्तेमाल करके रिमोट कॉन्फ़िगरेशन प्रयोग बनाने का तरीका बताया जाएगा. इस वर्शन में आपने Firebase रिमोट कॉन्फ़िगरेशन की मदद से अपने गेम को इंस्ट्रुमेंट करना में बदलाव किया है.

रिमोट कॉन्फ़िगरेशन के साथ A/B टेस्टिंग की मदद से, अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई), सुविधाओं या यूज़र ऐक्टिविटी कैंपेन को ज़्यादा ऑडियंस तक रोल आउट करने से पहले, टारगेट ऑडियंस पर उनकी जांच की जा सकती है. एक्सपेरिमेंट के नतीजों का इस्तेमाल इन कामों के लिए भी किया जा सकता है:

  • यह पता लगाएं कि पैरामीटर वैल्यू के कौनसे वैरिएंट से रेवेन्यू और उपयोगकर्ताओं को अपने साथ जोड़े रखने जैसी मुख्य मेट्रिक को बेहतर बनाया जा सकता है.
  • जानें कि उपयोगकर्ताओं के कौनसे सबग्रुप को पसंद के वैरिएंट हैं.
  • अलग-अलग पैरामीटर वैल्यू को सेट करने के असर का अतिरिक्त विश्लेषण करने के लिए, एक्सपेरिमेंट का डेटा इकट्ठा और स्टोर करें.

यह A/B टेस्टिंग का मूल सिद्धांत है: यह आपको रिमोट कॉन्फ़िगरेशन के लिए इस्तेमाल किए जाने वाले कोड को अपनाने और ऐसे एक्सपेरिमेंट लॉन्च करने में मदद करता है जो रिमोट कॉन्फ़िगरेशन की शर्तों (Google Analytics उपयोगकर्ता प्रॉपर्टी सहित), प्रतिशत रोल आउट, Analytics कन्वर्ज़न इवेंट, और इनके कुछ कॉम्बिनेशन के आधार पर, क्लाइंट को मिलने वाली वैल्यू को कंट्रोल करते हैं.

सबसे पहले, आपको एक ऐसी शर्त लागू करनी होगी जो उपयोगकर्ता की कार्रवाइयों के आधार पर उपयोगकर्ता प्रॉपर्टी सेट करके, प्रयोग में शामिल की जाएगी. इसके बाद, आपको एक A/B टेस्टिंग एक्सपेरिमेंट बनाना होगा जो Google Analytics की उपयोगकर्ता प्रॉपर्टी का इस्तेमाल करके, यह तय करेगा कि एक्सपेरिमेंट में कौनसे क्लाइंट शामिल किए गए हैं. आखिर में, इस डेटा का इस्तेमाल अपनी ऑडियंस के बारे में ज़्यादा समझने के लिए किया जा सकता है.

आपको क्या सीखने को मिलेगा

  • इंस्ट्रुमेंटेड रिमोट कॉन्फ़िगरेशन वैल्यू का इस्तेमाल करके A/B टेस्टिंग सेट अप करने का तरीका
  • A/B टेस्ट में शामिल होने की शर्तों के तौर पर, Google Analytics की उपयोगकर्ता प्रॉपर्टी इस्तेमाल करने का तरीका

ज़रूरी शर्तें

आपको इन चीज़ों की ज़रूरत होगी

  • iOS और/या Android बिल्ड सपोर्ट वाला Unity 2019.1.0f1 या इसके बाद का वर्शन

2. डीबग मेन्यू चालू करना

इस प्रोजेक्ट में एक डीबग मेन्यू छिपा हुआ है और इस मेन्यू को ऐक्सेस करने का बटन गेम में मौजूद है. हालांकि, अभी यह चालू नहीं है. इसे Mainमेन्यू प्रीफ़ैब से ऐक्सेस करने के लिए, आपको बटन को चालू करना होगा.

  1. Unity एडिटर में, प्रोजेक्ट टैब चुनें. इसके बाद, ऐसेट में जाकर Hamster को बड़ा करें > Prefabs > मेन्यू और Mainमेन्यू पर क्लिक करें.

Unity एडिटर प्रोजेक्ट टैब, जिसमें\nऐसेट दिख रही हैं. हैमस्टर, प्रीफ़ैब्स, मेन्यू

  1. प्रीफ़ैब हैरारकी में, DebugmenuButton नाम का बंद किया गया सब-ऑब्जेक्ट ढूंढें और उसे इंस्पेक्टर टैब में खोलने के लिए क्लिक करें.

Unity एडिटर, डीबगमेन्यू को बंद करके\nमुख्य मेन्यू दिखाता है

  1. इंस्पेक्टर टैब में, ऊपर बाएं कोने में मौजूद टेक्स्ट फ़ील्ड के बगल में मौजूद बॉक्स पर सही का निशान लगाएं, जिसमें Debugमेन्यूButton लिखा गया हो.

चेकबॉक्स के साथ Debug menuButton\n के लिए इंस्पेक्टर टैब

  1. प्रीफ़ैब सेव करें.

अगर गेम को एडिटर या अपने डिवाइस पर चलाया जा रहा है, तो अब आपको मेन्यू को ऐक्सेस करना होगा.

3. रिमोट कॉन्फ़िगरेशन सबमेन्यू चालू करें

  1. Unity Editor में प्रोजेक्ट टैब से, ऐसेट को बड़ा करें > हैम्स्टर > Prefabs > मेन्यू और DebugView ऑब्जेक्ट को एडिटर क्रम टैब में खोलने के लिए, उस पर दो बार क्लिक करें.

    ऐसेट,\nHamster, Prefabs, मेन्यू में नेस्ट किया गया Debugमेन्यू आइटम
  2. क्रम टैब में, हैरारकी को बड़ा करें और DebugViewमेन्यू > में सब-ऑब्जेक्ट पर क्लिक करें पैनल, जिसे रिमोट कॉन्फ़िगरेशन कार्रवाइयां के तौर पर लेबल किया गया है.

रिमोट कॉन्फ़िगरेशन कार्रवाइयां,\nकैनवस, डीबगमेन्यू में नेस्ट की गई हैं

  1. Unity इंस्पेक्टर टैब में, ऑब्जेक्ट के नाम वाले टेक्स्ट फ़ील्ड की बाईं ओर मौजूद बॉक्स पर सही का निशान लगाकर, रिमोट कॉन्फ़िगरेशन कार्रवाइयां चालू करें.

रिमोट कॉन्फ़िगरेशन वाला यूनिटी एडिटर\nडीबगमेन्यू, पैनल में चालू की गई कार्रवाइयां

इसमें दो GameObject चिल्ड्रेन का नाम है, 'सबटाइटल सेट करें' और 'सबटाइटल का आनंद लें'. इन दोनों को DebugMenu.cs में मौजूदा लेकिन लागू नहीं किए गए तरीकों को कॉल करने के लिए कॉन्फ़िगर किया गया है.

4. सबटाइटल को इन-ऐप्लिकेशन डिफ़ॉल्ट पर रीसेट करें

पिछले कोडलैब में, आपने किसी पैरामीटर की डिफ़ॉल्ट वैल्यू को JSON में बदल दिया है और अलग-अलग वैरिएंट दिखाने के लिए शर्तों का इस्तेमाल किया है. इस कोडलैब के हिस्से के तौर पर, आपकी बनाई गई शर्त मिटा दी जाएगी और इन-ऐप्लिकेशन डिफ़ॉल्ट सेटिंग को फिर से लागू किया जाएगा. साथ ही, इस स्थिति को सिर्फ़ A/B टेस्टिंग के नतीजे से बदला जाएगा.

इन-ऐप्लिकेशन डिफ़ॉल्ट सेटिंग को फिर से चालू करने के लिए:

  1. Firebase कंसोल में रिमोट कॉन्फ़िगरेशन पेज खोलें. पैरामीटर में बदलाव करें साइड पैनल खोलने के लिए, subtitle_override पैरामीटर के बगल में मौजूद पेंसिल आइकॉन पर क्लिक करें.
  2. शर्त को मिटाने के लिए, उसके बगल में मौजूद X आइकॉन पर क्लिक करें.
  3. बाकी डिफ़ॉल्ट वैल्यू के आगे, इन-ऐप्लिकेशन डिफ़ॉल्ट वैल्यू का इस्तेमाल करें टॉगल को चालू करें.

रिमोट\nकॉन्फ़िगरेशन पैरामीटर एडिटर से कोई शर्त मिटाना

  1. अपने बदलावों को सेव करने के लिए, सेव करें पर क्लिक करें. इसके बाद, उन्हें पब्लिश करने के लिए, बदलावों को पब्लिश करें पर क्लिक करें.रिमोट कॉन्फ़िगरेशन पेज पर, बदलावों को पब्लिश करने का विकल्प

5. डीबग फ़ंक्शन में उपयोगकर्ता प्रॉपर्टी सेट करें

अब आपको DebugMenu.cs में, पहले से कॉन्फ़िगर किए गए कुछ, लेकिन लागू नहीं किए गए Google Analytics फ़ंक्शन के लिए फ़ंक्शन बॉडी लिखेंगे. ये फ़ंक्शन ऐसेट > हैमस्टर > स्क्रिप्ट > स्थितियों में देखे जा सकते हैं.

ये फ़ंक्शन उपयोगकर्ता प्रॉपर्टी सेट करते हैं. इनकी मदद से, आपके उपयोगकर्ता आधार के सेगमेंट के बारे में जानकारी दी जाती है. साथ ही, इनका इस्तेमाल यह रिकॉर्ड करने के लिए भी किया जाता है कि गेम के सबटाइटल के बारे में उपयोगकर्ता को कैसा महसूस होता है.

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 टेस्टिंग प्रयोग सेट अप करें

इसके बाद, subtitle_override के लिए अलग-अलग वैल्यू सेट करें, ताकि एक-दूसरे से तुलना करके दो से तीन दिन के उपयोगकर्ता को अपने साथ जोड़े रखने के लिए, A/B टेस्टिंग एक्सपेरिमेंट बनाया जा सके.

  1. सबसे पहले, Firebase कंसोल रिमोट कॉन्फ़िगरेशन पेज पर subtitle_override पैरामीटर पर बदलाव करें चुनें:

रिमोट कॉन्फ़िगरेशन पेज पर\nसबटाइटल_override पैरामीटर, जिसमें 'बदलाव करें' विकल्प दिख रहा है.

  1. इसके बाद, आपको पैरामीटर में बदलाव करें डायलॉग बॉक्स में, नया जोड़ें पर क्लिक करें.

रिमोट कॉन्फ़िगरेशन के पैरामीटर में बदलाव करें पेज पर जाकर नया प्रयोग जोड़ें.

  1. अब जो सूची दिखेगी उसमें जाकर एक्सपेरिमेंट चुनें.

रिमोट कॉन्फ़िगरेशन पैरामीटर पेज: नया\nप्रयोग जोड़ें

  1. अपने एक्सपेरिमेंट का नाम और ब्यौरा डालें.

एक्सपेरिमेंट का नाम और ब्यौरा\nसेक्शन

  1. इसके बाद, टारगेटिंग की शर्तें चुनें. सबसे पहले, ड्रॉप-डाउन से अपना ऐप्लिकेशन चुनें.

A/B टेस्टिंग\nकॉन्फ़िगरेशन का टारगेटिंग (विज्ञापन के लिए सही दर्शक चुनना) चरण, जिसमें कोई ऐप्लिकेशन चुना गया हो

  1. इसके बाद, नई शर्त जोड़ने के लिए और पर क्लिक करें. इसके बाद, उपयोगकर्ता प्रॉपर्टी चुनें और subtitle_sentiment चुनें. अगर यह नहीं दिखता है, तो इसे मैन्युअल तरीके से डालें.
  2. आप सिर्फ़ उन दर्शकों के लिए सबटाइटल सेट करना चाहते हैं जिनकी फ़िलहाल सबटाइटल की भावना में "बोरियत" है, इसमें शामिल है चुनें और bored टाइप करें.
  3. इसके अलावा, आप यह भी चुन सकते हैं कि ऊपर दी गई शर्तों को पूरा करने वाले कितने प्रतिशत दर्शकों को जांच में शामिल किया जाए. ऐसी किसी भी गड़बड़ी से बचने के लिए 100% चुनें जिसे आसानी से कंट्रोल न किया जा सके.

A/B टेस्टिंग टारगेटिंग सेक्शन, जिसमें\nसबटाइटल_sentiment चुना गया है

  1. इसके बाद, एक ऐसा लक्ष्य चुनें जिसे टेस्ट के ज़रिए बढ़ाने की कोशिश की जाए. उपयोगकर्ता को अपने साथ जोड़े रखना (दो से तीन दिन) चुनें.

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%, वैरिएंट A के लिए 49.8%, और वैरिएंट B के लिए 49.8% होगा.वैरिएंट के ट्रैफ़िक का कॉन्फ़िगरेशन\nसेक्शनइन वैरिएंट से पता चलता है कि 201 में से एक बार A/B टेस्टिंग, सबटाइटल से ऊब चुके लोगों को डिफ़ॉल्ट तौर पर इस्तेमाल करती है, लेकिन 200/201 बार, यह दो नई वैल्यू में से एक होगी और टाइटल स्क्रीन को बदल देगी.
  5. एक्सपेरिमेंट शुरू करें पर क्लिक करके, सेव करें और सबमिट करें. इसके बाद, पुष्टि करने वाले पॉप-अप में शुरू करें पर क्लिक करें.प्रयोग शुरू करने के लिए\n'शुरू करें' पर क्लिक करें

8. 'उपयोगकर्ता प्रॉपर्टी सेट करें' तरीका चलाएं और रीफ़्रेश करें

अब आपने उपयोगकर्ता के बारे में अलग-अलग प्रॉपर्टी सेट कर दी हैं. इन प्रॉपर्टी का इस्तेमाल, आपके गेम के लॉजिक या प्रज़ेंटेशन के लिए किया जा सकता है.

अगर आपने पहले कभी SetUserProperty तरीके का इस्तेमाल नहीं किया है या इसे enjoys पर सेट किया है, तब भी गेम खोलने पर आपको डिफ़ॉल्ट सबटाइटल दिखेगा.

अगर आपने इसे bored (फिर से फ़ेच करने से पहले) पर सेट किया है, तो आपको करीब 50/50 के अनुपात में कोई नई वैल्यू दिखेगी.

किसी डिवाइस के A/B टेस्टिंग एक्सपेरिमेंट में शामिल होने के बाद, उस एक्सपेरिमेंट से मिलने वाली वैल्यू में कोई बदलाव नहीं होगा. साथ ही, ये हर इंस्टॉलेशन के लिए स्थायी होंगी. नतीजे के तौर पर, एक्सपेरिमेंट के तौर पर उपलब्ध कोई वैल्यू पाने के लिए, आपको नया इंस्टॉल करना होगा. इसके लिए, गेम को उसी डिवाइस/सिम्युलेटर पर फिर से इंस्टॉल करना होगा या गेम को किसी नए डिवाइस/सिम्युलेटर पर इंस्टॉल करना होगा.

आपके उपयोगकर्ता आधार पर असल में लॉन्च किए गए A/B टेस्ट में, आपको बेसलाइन को दूसरे वैरिएंट के बराबर अहमियत देनी चाहिए. हालांकि, इस मामले में, प्रयोग के काम करने की पुष्टि करने के लिए, बहुत-सी संभावनाएं असाइन की जाती हैं. अगर (1/201 के मामले में) आपको अब भी डिफ़ॉल्ट वैल्यू मिलती है, तो अपने डिवाइस/सिम्युलेटर पर गेम को फिर से इंस्टॉल करके देखें.

इसका एक और असर यह है कि उपयोगकर्ता प्रॉपर्टी को वापस enjoys पर स्विच करने से, वैल्यू वापस बेसलाइन में नहीं बदलती है. हालांकि, enjoys पर स्विच करके और फिर से इंस्टॉल करके ऐसा किया जा सकता है.

9. बधाई हो!

आपने रिमोट कॉन्फ़िगरेशन की A/B टेस्टिंग का इस्तेमाल करके, अलग-अलग रिमोट कॉन्फ़िगरेशन वैल्यू के साथ एक्सपेरिमेंट किया है. साथ ही, यह भी पता लगाया है कि इन वैल्यू से Analytics मेट्रिक पर क्या असर पड़ता है.

हमने इन विषयों के बारे में बताया

  • इंस्ट्रुमेंटेड रिमोट कॉन्फ़िगरेशन वैल्यू का इस्तेमाल करके A/B टेस्टिंग सेट अप करने का तरीका
  • A/B टेस्टिंग एक्सपेरिमेंट में शामिल होने की शर्तों के तौर पर, Google Analytics में उपयोगकर्ता प्रॉपर्टी को इस्तेमाल करने का तरीका

अगले चरण

एक्सपेरिमेंट खत्म होने के बाद, अपने प्रोजेक्ट में एक्सपेरिमेंट की सूची में से किसी एक्सपेरिमेंट को चुनकर यह तय करें कि आपको उसके साथ क्या करना है. क्या किसी एक को "विनर" के तौर पर चुनना है या और प्रयोग करने हैं?