Firebase রিমোট কনফিগারেশনের সাথে আপনার ইউনিটি গেমের জন্য A/B পরীক্ষাগুলি প্রয়োগ করুন

1। পরিচিতি

এই কোডল্যাবে, আপনি শিখবেন কিভাবে নমুনা গেমের জন্য A/B টেস্টিং ব্যবহার করে একটি রিমোট কনফিগার পরীক্ষা তৈরি করতে হয়, MechaHamster: Firebase সংস্করণের সাথে লেভেল আপ , যা আপনি Firebase রিমোট কনফিগারেশনের মাধ্যমে আপনার গেমের ইনস্ট্রুমেন্টে পরিবর্তন করেছেন।

রিমোট কনফিগারেশনের সাথে A/B টেস্টিং আপনাকে আপনার অ্যাপের UI, বৈশিষ্ট্য, বা এনগেজমেন্ট প্রচারাভিযানের পরিবর্তনগুলিকে একটি বৃহত্তর শ্রোতাদের কাছে রোল আউট করার আগে লক্ষ্যযুক্ত দর্শকদের উপর পরীক্ষা করতে দেয়৷ এছাড়াও আপনি পরীক্ষার ফলাফল ব্যবহার করতে পারেন:

  • কোন প্যারামিটার মানের বৈকল্পিকগুলি আয় এবং ধরে রাখার মতো মূল মেট্রিকগুলিকে উন্নত করে তা নির্ধারণ করুন।
  • ব্যবহারকারীদের কোন উপগোষ্ঠী কোন বৈকল্পিক পছন্দ করে তা আবিষ্কার করুন।
  • বিভিন্ন পরামিতি মান সেট করার প্রভাবের উপর অতিরিক্ত বিশ্লেষণ সঞ্চালনের জন্য পরীক্ষার ডেটা সংগ্রহ এবং সঞ্চয় করুন।

এটি হল A/B পরীক্ষার সারমর্ম: এটি আপনাকে রিমোট কনফিগারেশনের জন্য যন্ত্রযুক্ত কোড নিতে এবং রিমোট কনফিগার অবস্থার (Google Analytics ব্যবহারকারীর বৈশিষ্ট্য সহ), শতাংশ রোলআউট, অ্যানালিটিক্স রূপান্তর ইভেন্টগুলির উপর ভিত্তি করে ক্লায়েন্টদের প্রাপ্ত মানগুলি নিয়ন্ত্রণ করে এমন পরীক্ষাগুলি চালু করতে সক্ষম করে। এবং এই কিছু সমন্বয়.

প্রথমত, আপনি একটি শর্ত বাস্তবায়ন করবেন যে গেট যারা ব্যবহারকারীর কর্মের উপর ভিত্তি করে ব্যবহারকারীর বৈশিষ্ট্য সেট করে পরীক্ষায় অন্তর্ভুক্ত হবে। তারপরে, আপনি একটি A/B টেস্টিং পরীক্ষা তৈরি করবেন যা পরীক্ষায় কোন ক্লায়েন্টদের অন্তর্ভুক্ত করা হয়েছে তা নির্ধারণ করতে Google Analytics ব্যবহারকারীর বৈশিষ্ট্য ব্যবহার করে। এবং, অবশেষে, আপনি আপনার দর্শকদের সম্পর্কে আরও বুঝতে সেই ডেটা ব্যবহার করবেন।

আপনি কি শিখবেন

  • ইনস্ট্রুমেন্টেড রিমোট কনফিগার মান ব্যবহার করে কিভাবে A/B টেস্টিং সেট আপ করবেন
  • A/B পরীক্ষায় ভর্তির শর্তের অংশ হিসাবে Google Analytics ব্যবহারকারীর বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন

পূর্বশর্ত

আপনি কি প্রয়োজন হবে

  • Unity 2019.1.0f1 বা iOS এবং/অথবা Android বিল্ড সমর্থন সহ উচ্চতর

2. ডিবাগ মেনু সক্রিয় করা হচ্ছে

প্রজেক্টে একটি ডিবাগ মেনু লুকানো আছে, এবং এই মেনু অ্যাক্সেস করার বোতামটি গেমটিতে বিদ্যমান কিন্তু বর্তমানে সক্ষম করা নেই। MainMenu prefab থেকে এটি অ্যাক্সেস করতে আপনাকে অবশ্যই বোতামটি সক্রিয় করতে হবে।

  1. ইউনিটি এডিটরে, প্রজেক্ট ট্যাবটি নির্বাচন করুন, তারপর সম্পদের অধীনে, হ্যামস্টার > প্রিফ্যাবস > মেনু প্রসারিত করুন এবং মেইনমেনুতে ক্লিক করুন।

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

  1. প্রিফ্যাব হায়ারার্কিতে, ডিবাগমেনুবাটন নামে অক্ষম সাব-অবজেক্টটি খুঁজুন এবং ইন্সপেক্টর ট্যাবে এটি খুলতে ক্লিক করুন।

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

  1. ইন্সপেক্টর ট্যাবের মধ্যে, এটি সক্রিয় করতে DebugMenuButton ধারণকারী পাঠ্য ক্ষেত্রের পাশে উপরের বাম কোণে বাক্সটি চেক করুন।

The Inspector tab for DebugMenuButton\nwith checkbox

  1. prefab সংরক্ষণ করুন.

আপনি যদি সম্পাদক বা আপনার ডিভাইসে গেমটি চালান তবে মেনুটি এখন অ্যাক্সেসযোগ্য হওয়া উচিত।

3. রিমোট কনফিগ সাবমেনু সক্রিয় করুন

  1. ইউনিটি এডিটরের প্রজেক্ট ট্যাব থেকে, সম্পদ > হ্যামস্টার > প্রিফ্যাবস > মেনু প্রসারিত করুন এবং ডিবাগমেনু অবজেক্টে ডাবল-ক্লিক করুন এটি এডিটর হায়ারার্কি ট্যাবে খুলতে।

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. শ্রেণিবিন্যাস ট্যাবে, অনুক্রমটি প্রসারিত করুন এবং ডিবাগমেনু > প্যানেলের অধীনে সাব-অবজেক্টে ক্লিক করুন, যা রিমোট কনফিগ অ্যাকশন লেবেলযুক্ত।

Remote Config Actions nested under\nCanvas, DebugMenu

  1. ইউনিটি ইন্সপেক্টর ট্যাবে, অবজেক্টের নাম সম্বলিত টেক্সট ফিল্ডের বামে বাক্সে টিক চিহ্ন দিয়ে রিমোট কনফিগ অ্যাকশন সক্রিয় করুন।

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

এতে সেট বোরড অফ সাবটাইটেল এবং সেট এনজয়স সাবটাইটেল নামে দুটি গেমঅবজেক্ট শিশু রয়েছে, যেগুলি উভয়ই DebugMenu.cs এ বিদ্যমান কিন্তু অবাস্তব পদ্ধতিগুলিকে কল করার জন্য কনফিগার করা হয়েছে।

4. সাবটাইটেল ওভাররাইড ইন-অ্যাপ ডিফল্টে রিসেট করুন

পূর্ববর্তী কোডল্যাবে , আপনি JSON হিসাবে একটি প্যারামিটারের ডিফল্ট মানকে ওভাররড করেছেন এবং বিভিন্ন ভেরিয়েন্ট পরিবেশন করতে শর্তগুলি ব্যবহার করেছেন৷ এই কোডল্যাবের অংশ হিসাবে, আপনি আপনার তৈরি করা শর্তটি মুছে ফেলবেন এবং ইন-অ্যাপ ডিফল্ট পুনরায় প্রবর্তন করবেন এবং আপনি শুধুমাত্র 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. ডিবাগ ফাংশনে ব্যবহারকারীর বৈশিষ্ট্য সেট করুন

আপনি এখন 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 প্যারামিটারে সম্পাদনা নির্বাচন করুন:

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. এর পরে, একটি লক্ষ্য নির্বাচন করুন যা পরীক্ষাটি সর্বাধিক করার চেষ্টা করবে। ধারণ বাছাই করুন (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
    • ভেরিয়েন্ট বি : 100
    এর ফলে বেসলাইনের জন্য মোট ওজন 0.5%, ভেরিয়েন্ট A-এর জন্য 49.8% এবং ভেরিয়েন্ট B-এর জন্য 49.8% হবে। Variant weights configuration\nsection এই ভেরিয়েন্টগুলি নির্দিষ্ট করে যে 201 বারের মধ্যে একটি, A/B টেস্টিং তাদের জন্য ডিফল্ট পরিবেশন করে যারা সাবটাইটেল নিয়ে বিরক্ত, কিন্তু 200/201 বার, এটি দুটি নতুন মানের একটি পরিবেশন করবে এবং শিরোনাম স্ক্রীনকে ওভাররাইড করবে।
  5. পরীক্ষা শুরু করুন ক্লিক করে সংরক্ষণ করুন এবং জমা দিন, তারপর নিশ্চিতকরণ পপআপে স্টার্ট ক্লিক করুন। Click Start to start the\nexperiment

8. সেট ইউজার প্রপার্টি পদ্ধতি চালান এবং রিফ্রেশ করুন

আপনি এখন ব্যবহারকারী সম্পর্কে বিভিন্ন বৈশিষ্ট্য সেট করেছেন, যা আপনার গেমের যুক্তি বা উপস্থাপনা নির্দেশ করতে ব্যবহার করা যেতে পারে।

আপনি যদি পূর্বে SetUserProperty পদ্ধতিটি না চালান বা এটি enjoys সেট না করে থাকেন, তাহলেও গেমটি খোলার সময় আপনার ডিফল্ট সাবটাইটেল দেখতে হবে।

যদি আপনি এটিকে bored (পুনরায় আনার আগে) সেট করে থাকেন, তাহলে আপনাকে মোটামুটি 50/50 অনুপাতে একটি নতুন মান দেখতে হবে।

একবার একটি ডিভাইস একটি A/B টেস্টিং পরীক্ষায় প্রবেশ করলে, সেই পরীক্ষা থেকে তারা যে মানগুলি পাবে তা পরিবর্তিত হবে না এবং প্রতি ইনস্টলেশনের জন্য স্থায়ী হয়৷ ফলস্বরূপ, অন্যান্য পরীক্ষামূলক মানগুলির একটি পেতে, আপনাকে অবশ্যই একই ডিভাইস/সিমুলেটরে গেমটি পুনরায় ইনস্টল করে বা একটি নতুন ডিভাইস/সিমুলেটরে গেমটি ইনস্টল করে একটি নতুন ইনস্টল তৈরি করতে হবে।

আপনার ব্যবহারকারী বেস জুড়ে চালু করা একটি বাস্তব A/B পরীক্ষায়, আপনার বেসলাইনটিকে অন্যান্য ভেরিয়েন্টের সমান ওজন দেওয়া উচিত। কিন্তু এই ক্ষেত্রে, আপনি পরীক্ষাটি কাজ করছে তা যাচাই করার জন্য খুব তির্যক সম্ভাব্যতা নির্ধারণ করেন। যদি (1/201 ক্ষেত্রে), আপনি এখনও ডিফল্ট মান পান, আপনার ডিভাইস/সিমুলেটরে গেমটি পুনরায় ইনস্টল করার চেষ্টা করুন।

এর আরেকটি প্রভাব হল যে ব্যবহারকারীর সম্পত্তিকে enjoys ফিরিয়ে দিলে মানটি বেসলাইনে ফিরে আসবে না কিন্তু আবার, আপনি enjoys স্যুইচ করে এবং পুনরায় ইনস্টল করে এটি করতে পারেন।

9. অভিনন্দন!

আপনি বিভিন্ন রিমোট কনফিগার মান নিয়ে পরীক্ষা করতে এবং প্রতিটি অ্যানালিটিক্স মেট্রিক্সকে কীভাবে প্রভাবিত করে তা নির্ধারণ করতে রিমোট কনফিগারেশন A/B টেস্টিং ব্যবহার করেছেন।

আমরা কভার করেছি কি

  • ইনস্ট্রুমেন্টেড রিমোট কনফিগার মান ব্যবহার করে কিভাবে A/B টেস্টিং সেট আপ করবেন
  • A/B টেস্টিং পরীক্ষায় ভর্তির শর্তের অংশ হিসাবে Google Analytics ব্যবহারকারীর বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন

পরবর্তী পদক্ষেপ

একবার পরীক্ষা শেষ হয়ে গেলে, আপনি এটির সাথে কী করতে চান তা সিদ্ধান্ত নিতে আপনার প্রকল্পের পরীক্ষার তালিকা থেকে একটি নির্বাচন করতে পারেন। আপনি কি একজনকে "বিজয়ী" হিসেবে বেছে নিতে চান নাকি আরো পরীক্ষা-নিরীক্ষা করতে চান?