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

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

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

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

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

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

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

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

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

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

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

  • iOS और/या Android के साथ काम करने वाला Unity 2019.1.0f1 या इसके बाद का वर्शन

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

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

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

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

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

Unity एडिटर में मुख्य मेन्यू दिख रहा है. इसमें DebugMenu बंद है

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

चेकबॉक्स के साथ DebugMenuButton के लिए इंस्पेक्टर टैब

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

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

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

  1. Unity Editor में प्रोजेक्ट टैब से, ऐसेट > हैम्स्टर > प्रीफ़ैब > मेन्यू को बड़ा करें. इसके बाद, DebugMenu ऑब्जेक्ट पर डबल-क्लिक करके, इसे एडिटर के हायरार्की टैब में खोलें.

    DebugMenu आइटम को Assets, Hamster, Prefabs, Menus में नेस्ट किया गया है
  2. हायरार्की टैब में, हायरार्की को बड़ा करें. इसके बाद, DebugMenu > Panel में मौजूद सब-ऑब्जेक्ट पर क्लिक करें. इस सब-ऑब्जेक्ट को Remote Config Actions के तौर पर लेबल किया गया है.

Canvas और DebugMenu में नेस्ट की गई Remote Config Actions

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

रिमोट कॉन्फ़िगरेशन के साथ Unity एडिटर\nDebugMenu, Panel में कार्रवाइयां चालू हैं

इसमें दो GameObject चाइल्ड हैं, जिनके नाम Set Bored Of Subtitle और Set Enjoys Subtitle हैं. इन दोनों को DebugMenu.cs में मौजूद, लेकिन लागू नहीं की गई विधियों को कॉल करने के लिए कॉन्फ़िगर किया गया है.

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

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

ऐप्लिकेशन में डिफ़ॉल्ट रूप से उपलब्ध सुविधा को फिर से चालू करने के लिए:

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

Remote Config पैरामीटर एडिटर से किसी शर्त को मिटाना

  1. अपने बदलावों को सेव करने के लिए, सेव करें पर क्लिक करें. इसके बाद, बदलावों को पब्लिश करने के लिए बदलाव पब्लिश करें पर क्लिक करें.Remote Config पेज पर, बदलावों को पब्लिश करने का विकल्प

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 को कॉल करने के लिए, गेम शुरू करें और मुख्य मेन्यू में 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 टेस्टिंग एक्सपेरिमेंट सेट अप करना

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

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

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

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

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

  1. इसके बाद, स्क्रीन पर दिखने वाली सूची में से एक्सपेरिमेंट को चुनें.

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

  1. अपने एक्सपेरिमेंट का नाम और जानकारी डालें.

एक्सपेरिमेंट का नाम और जानकारी\nसेक्शन

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

ऐप्लिकेशन को चुनने के बाद, A/B टेस्टिंग कॉन्फ़िगरेशन का टारगेटिंग चरण

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

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

8. Set User Property तरीके को चलाएं और रीफ़्रेश करें

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

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

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

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

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

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

9. बधाई हो!

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

हमने क्या-क्या कवर किया है

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

अगले चरण

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