1. ভূমিকা
এই কোডল্যাবে, আপনি শিখবেন কিভাবে নমুনা গেম, MechaHamster: Level Up with Firebase সংস্করণের জন্য A/B টেস্টিং ব্যবহার করে একটি রিমোট কনফিগ পরীক্ষা তৈরি করতে হয়, যা আপনি Instrument your game with Firebase Remote Config এ পরিবর্তন করেছেন।
রিমোট কনফিগের মাধ্যমে A/B টেস্টিং আপনাকে আপনার অ্যাপের UI, বৈশিষ্ট্য, অথবা এনগেজমেন্ট ক্যাম্পেইনের পরিবর্তনগুলি লক্ষ্যবস্তুতে পরীক্ষা করতে দেয়, তারপর আরও বিস্তৃত দর্শকদের কাছে পৌঁছে দেয়। আপনি পরীক্ষার ফলাফলগুলিও ব্যবহার করতে পারেন:
- কোন প্যারামিটার মানের ভেরিয়েন্টগুলি রাজস্ব এবং ধরে রাখার মতো গুরুত্বপূর্ণ মেট্রিক্সগুলিকে উন্নত করে তা নির্ধারণ করুন।
- ব্যবহারকারীদের কোন উপগোষ্ঠী কোন রূপগুলি পছন্দ করে তা আবিষ্কার করুন।
- বিভিন্ন প্যারামিটার মান নির্ধারণের প্রভাব সম্পর্কে অতিরিক্ত বিশ্লেষণ করতে পরীক্ষার তথ্য সংগ্রহ এবং সংরক্ষণ করুন।
এটিই A/B পরীক্ষার সারমর্ম: এটি আপনাকে রিমোট কনফিগের জন্য ইনস্ট্রুমেন্টেড কোড নিতে এবং রিমোট কনফিগ শর্ত (গুগল অ্যানালিটিক্স ব্যবহারকারীর বৈশিষ্ট্য সহ), শতাংশ রোলআউট, অ্যানালিটিক্স রূপান্তর ইভেন্ট এবং এর কিছু সংমিশ্রণের উপর ভিত্তি করে ক্লায়েন্টদের প্রাপ্ত মান নিয়ন্ত্রণ করে এমন পরীক্ষা-নিরীক্ষা শুরু করতে সক্ষম করে।
প্রথমে, আপনি এমন একটি শর্ত বাস্তবায়ন করবেন যা ব্যবহারকারীর ক্রিয়াকলাপের উপর ভিত্তি করে ব্যবহারকারীর বৈশিষ্ট্য নির্ধারণ করে পরীক্ষায় কারা অন্তর্ভুক্ত হবে তা নির্ধারণ করবে। তারপরে, আপনি একটি A/B পরীক্ষার পরীক্ষা তৈরি করবেন যা Google Analytics ব্যবহারকারীর বৈশিষ্ট্য ব্যবহার করে পরীক্ষায় কোন ক্লায়েন্টদের অন্তর্ভুক্ত করা হবে তা নির্ধারণ করবে। এবং, অবশেষে, আপনি আপনার দর্শকদের সম্পর্কে আরও বুঝতে সেই ডেটা ব্যবহার করবেন।
তুমি কি শিখবে
- ইন্সট্রুমেন্টেড রিমোট কনফিগ মান ব্যবহার করে কীভাবে A/B টেস্টিং সেট আপ করবেন
- A/B পরীক্ষায় ভর্তির শর্তাবলীর অংশ হিসেবে Google Analytics ব্যবহারকারীর বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন
পূর্বশর্ত
তোমার যা লাগবে
- iOS এবং/অথবা Android বিল্ড সাপোর্ট সহ ইউনিটি 2019.1.0f1 বা উচ্চতর
2. ডিবাগ মেনু সক্রিয় করা
এই প্রজেক্টে একটি ডিবাগ মেনু লুকানো আছে, এবং এই মেনু অ্যাক্সেস করার বোতামটি গেমটিতে বিদ্যমান কিন্তু বর্তমানে এটি সক্রিয় করা হয়নি। মেইনমেনু প্রিফ্যাব থেকে এটি অ্যাক্সেস করার জন্য আপনাকে অবশ্যই বোতামটি সক্ষম করতে হবে।
- ইউনিটি এডিটরে, প্রজেক্ট ট্যাবটি নির্বাচন করুন, তারপর Assets এর অধীনে, Hamster > Prefabs > Menus প্রসারিত করুন এবং MainMenu এ ক্লিক করুন।

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

- ইন্সপেক্টর ট্যাবের মধ্যে, DebugMenuButton ধারণকারী টেক্সট ফিল্ডের পাশে উপরের বাম কোণে থাকা বাক্সটি সক্রিয় করতে চেক করুন।

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

- হায়ারার্কি ট্যাবে, হায়ারার্কি প্রসারিত করুন এবং DebugMenu > Panel এর অধীনে সাব-অবজেক্টে ক্লিক করুন, যা Remote Config Actions লেবেলযুক্ত।

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

এতে Set Bored Of Subtitle এবং Set Enjoys Subtitle নামে দুটি GameObject শিশু রয়েছে, যেগুলি DebugMenu.cs এ বিদ্যমান কিন্তু বাস্তবায়িত না হওয়া পদ্ধতিগুলিকে কল করার জন্য কনফিগার করা হয়েছে।
৪. সাবটাইটেল ওভাররাইডকে অ্যাপ-মধ্যস্থ ডিফল্টে রিসেট করুন
পূর্ববর্তী কোডল্যাবে , আপনি একটি প্যারামিটারের ডিফল্ট মান JSON হিসেবে ওভাররাইড করেছেন এবং বিভিন্ন ভেরিয়েন্ট পরিবেশন করার জন্য শর্ত ব্যবহার করেছেন। এই কোডল্যাবের অংশ হিসাবে, আপনি আপনার তৈরি করা শর্তটি মুছে ফেলবেন এবং ইন-অ্যাপ ডিফল্টটি পুনরায় চালু করবেন এবং আপনি কেবল A/B পরীক্ষার ফলাফল দিয়ে এটি ওভাররাইড করবেন।
অ্যাপ-মধ্যস্থ ডিফল্ট পুনরায় সক্ষম করতে:
- Firebase কনসোলে Remote Config পৃষ্ঠাটি খুলুন এবং Edit প্যারামিটার সাইড প্যানেলটি খুলতে
subtitle_overrideপ্যারামিটারের পাশে পেন্সিল আইকনে ক্লিক করুন। - শর্তটি মুছে ফেলার জন্য, এর পাশে থাকা X আইকনে ক্লিক করুন।
- অবশিষ্ট ডিফল্ট মানের পাশে, "অ্যাপ-মধ্যস্থ ডিফল্ট ব্যবহার করুন" টগল সক্ষম করুন।

- আপনার পরিবর্তনগুলি সংরক্ষণ করতে সংরক্ষণ করুন- এ ক্লিক করুন, তারপর আপনার পরিবর্তনগুলি প্রকাশ করতে পরিবর্তনগুলি প্রকাশ করুন- এ ক্লিক করুন।

৫. ডিবাগ ফাংশনে ব্যবহারকারীর বৈশিষ্ট্য সেট করুন
এখন আপনি DebugMenu.cs এ কিছু পূর্ব-কনফিগার করা কিন্তু বাস্তবায়িত না হওয়া Google Analytics ফাংশনের জন্য ফাংশন বডি লিখবেন (যা Assets > Hamster > Scripts > States-এ পাওয়া যাবে)।
এই ফাংশনগুলি ব্যবহারকারীর বৈশিষ্ট্য নির্ধারণ করে , যা আপনার ব্যবহারকারীর বেসের অংশগুলি বর্ণনা করার উপায় এবং গেমের সাবটাইটেল সম্পর্কে ব্যবহারকারীর অনুভূতি রেকর্ড করতে ব্যবহৃত হয়।
DebugMenu.cs এ বিদ্যমান সংস্করণগুলি খুঁজে বের করে এবং নিম্নলিখিতভাবে ওভাররাইট করে SetUserBoredOfSubtitle এবং SetUserEnjoysSubtitle বাস্তবায়ন করুন:
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
যদি আপনার অ্যাপটি Google Analytics-এর সাথে সঠিকভাবে কনফিগার করা থাকে, তাহলে আপনি Remote Config-এর শর্তাবলী অনুসারে সম্পত্তিটি উপলব্ধ করতে এই ফাংশনগুলির একটিতে কল করতে পারেন। মোবাইল ডিভাইস থেকে SetUserBoredOfSubtitle কল করতে, গেমটি শুরু করুন এবং প্রধান মেনুতে Debug Menu বোতাম টিপুন, তারপর Set Bored of Subtitle টিপুন।
৬. একটি কাস্টম মাত্রা তৈরি করুন
এরপর, আপনি subtitle_override এর জন্য বিভিন্ন সাবটাইটেল ভেরিয়েন্ট সেট আপ করবেন যাতে কোন সাবটাইটেলটি সবচেয়ে ভালো কাজ করে তা দেখা যায়। কিন্তু, আপনার A/B পরীক্ষায়, আপনি শুধুমাত্র সেই ব্যবহারকারীদের জন্য এই ভেরিয়েন্টগুলি পরিবেশন করবেন যাদের বর্তমান সাবটাইটেল সম্পর্কে অনুভূতি (যেমন subtitle_sentiment এ রেকর্ড করা হয়েছে) "bored" শব্দটি অন্তর্ভুক্ত করে।
Analytics ইভেন্টগুলিতে কাস্টম প্যারামিটার তৈরি এবং ট্র্যাক করার জন্য আপনাকে একটি কাস্টম ডাইমেনশন ব্যবহার করতে হবে। আরও তথ্যের জন্য কাস্টম ডাইমেনশন এবং মেট্রিক্স দেখুন।
একটি নতুন কাস্টম মাত্রা তৈরি করতে:
- Firebase কনসোলটি খুলুন, Analytics মেনুটি প্রসারিত করুন এবং কাস্টম সংজ্ঞা নির্বাচন করুন।
- কাস্টম সংজ্ঞা পৃষ্ঠা থেকে, কাস্টম মাত্রা তৈরি করুন ক্লিক করুন।
- নতুন কাস্টম ডাইমেনশন উইন্ডোতে, ডাইমেনশনের নাম "সাবটাইটেল সেন্টিমেন্ট" তে সেট করুন এবং স্কোপ ড্রপ-ডাউন থেকে, ব্যবহারকারী নির্বাচন করুন।
- ব্যবহারকারী সম্পত্তি ক্ষেত্রের জন্য,
subtitle_sentiment.
৭. A/B পরীক্ষার পরীক্ষা সেট আপ করুন
এরপর, দুই থেকে তিন দিনের ব্যবহারকারী ধরে রাখার ক্ষমতা অপ্টিমাইজ করার জন্য subtitle_override জন্য একে অপরের বিরুদ্ধে পরীক্ষা করার জন্য বিভিন্ন মান সেট করার জন্য একটি A/B পরীক্ষার পরীক্ষা তৈরি করুন।
- প্রথমে, Firebase কনসোল রিমোট কনফিগ পৃষ্ঠার
subtitle_overrideপ্যারামিটারে Edit নির্বাচন করুন:

- প্রদর্শিত Edit প্যারামিটার ডায়ালগ থেকে, Add new এ ক্লিক করুন।

- প্রদর্শিত তালিকা থেকে, পরীক্ষা নির্বাচন করুন।

- আপনার পরীক্ষার জন্য একটি নাম এবং বিবরণ লিখুন।

- এরপর, টার্গেটিং কন্ডিশন নির্বাচন করুন। প্রথমে, ড্রপ-ডাউন থেকে আপনার অ্যাপটি নির্বাচন করুন।

- এরপর, নতুন শর্ত যোগ করতে And এ ক্লিক করুন, তারপর User Property নির্বাচন করুন এবং
subtitle_sentimentনির্বাচন করুন। যদি এটি প্রদর্শিত না হয়, তাহলে ম্যানুয়ালি এটি লিখুন। - যেহেতু আপনি শুধুমাত্র তাদের জন্য একটি সাবটাইটেল সেট করতে চান যাদের বর্তমান সাবটাইটেল অনুভূতি "bored" অন্তর্ভুক্ত, তাই contains নির্বাচন করুন এবং
boredটাইপ করুন। - ঐচ্ছিকভাবে, পরীক্ষার জন্য উপরের মানদণ্ডের সাথে মেলে এমন দর্শকদের কোন শতাংশকে প্রকাশ করা হবে তা নির্বাচন করুন। আপনি সহজেই নিয়ন্ত্রণ করতে পারবেন না এমন এলোমেলোতা এড়াতে ১০০% নির্বাচন করুন।

- এরপর, এমন একটি লক্ষ্য নির্বাচন করুন যা পরীক্ষাটি সর্বাধিক করার চেষ্টা করবে। ধরে রাখা (২-৩ দিন) নির্বাচন করুন।

- এরপর, পরীক্ষার প্যারামিটার সেট আপ করুন এবং বিভিন্ন সাবটাইটেল ভেরিয়েন্ট তৈরি করুন। এই ভেরিয়েন্টগুলি হল বিভিন্ন মান যা A/B টেস্টিং সেই ব্যবহারকারীদের জন্য পরিবেশন করবে যাদের
subtitle_sentiment'bored' আছে, এবং A/B টেস্টিং নির্ধারণ করবে কোন ভেরিয়েন্টটি সর্বাধিক ধারণের জন্য সবচেয়ে ভালো। - ভেরিয়েন্ট A এর জন্য নিম্নলিখিত প্যারামিটার মান লিখুন:
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}} - ভেরিয়েন্ট B এর জন্য নিম্নলিখিত প্যারামিটার মান লিখুন:
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}} - পূর্ণ সংখ্যা সহ ভ্যারিয়েন্ট অনুপাত নিম্নরূপ সেট করুন:
- ভিত্তিরেখা : ১
- ভেরিয়েন্ট A : ১০০
- ভেরিয়েন্ট B : ১০০
এই ভেরিয়েন্টগুলি উল্লেখ করে যে ২০১ বারের মধ্যে ১ বার, A/B টেস্টিং তাদের জন্য ডিফল্ট পরিবেশন করে যারা সাবটাইটেল দেখে বিরক্ত, কিন্তু ২০০/২০১ বার, এটি দুটি নতুন মানের মধ্যে একটি পরিবেশন করবে এবং টাইটেল স্ক্রিনকে ওভাররাইড করবে। - Start experiment এ ক্লিক করে সংরক্ষণ করুন এবং জমা দিন, তারপর নিশ্চিতকরণ পপআপে Start এ ক্লিক করুন।

৮. Set User Property পদ্ধতিটি চালান এবং রিফ্রেশ করুন।
আপনি এখন ব্যবহারকারীর বিভিন্ন বৈশিষ্ট্য নির্ধারণ করেছেন, যা আপনার গেমের যুক্তি বা উপস্থাপনা নির্দেশ করতে ব্যবহার করা যেতে পারে।
যদি আপনি আগে SetUserProperty পদ্ধতিটি না চালান অথবা এটিকে enjoys এ সেট করে থাকেন, তাহলেও গেমটি খোলার সময় আপনার ডিফল্ট সাবটাইটেলটি দেখা উচিত।
যদি আপনি এটিকে bored হিসেবে সেট করে থাকেন (পুনরায় আনার আগে), তাহলে আপনি নতুন মানগুলির মধ্যে একটি দেখতে পাবেন যার অনুপাত প্রায় ৫০/৫০।
একবার কোনও ডিভাইস A/B টেস্টিং পরীক্ষায় প্রবেশ করলে, সেই পরীক্ষা থেকে প্রাপ্ত মানগুলি পরিবর্তিত হবে না এবং প্রতিটি ইনস্টলেশনের জন্য স্থায়ী থাকবে। ফলস্বরূপ, অন্য কোনও পরীক্ষামূলক মান পেতে, আপনাকে একই ডিভাইস/সিমুলেটরে গেমটি পুনরায় ইনস্টল করে অথবা একটি নতুন ডিভাইস/সিমুলেটরে গেমটি ইনস্টল করে একটি নতুন ইনস্টল তৈরি করতে হবে।
আপনার ব্যবহারকারী বেস জুড়ে চালু করা একটি আসল A/B পরীক্ষায়, আপনার বেসলাইনকে অন্যান্য ভেরিয়েন্টের মতোই গুরুত্ব দেওয়া উচিত। কিন্তু এই ক্ষেত্রে, আপনি পরীক্ষাটি কাজ করছে কিনা তা যাচাই করার জন্য খুব তির্যক সম্ভাবনা নির্ধারণ করেন। যদি (1/201 ক্ষেত্রে), আপনি এখনও ডিফল্ট মান পান, তাহলে আপনার ডিভাইস/সিমুলেটরে গেমটি পুনরায় ইনস্টল করার চেষ্টা করুন।
এর আরেকটি প্রভাব হল, ব্যবহারকারীর বৈশিষ্ট্যকে enjoys এ ফিরিয়ে আনলে মানটি বেসলাইনে ফিরে যাবে না , তবে আবার, আপনি enjoys এ স্যুইচ করে এবং পুনরায় ইনস্টল করে এটি করতে পারেন।
9. অভিনন্দন!
আপনি রিমোট কনফিগ A/B টেস্টিং ব্যবহার করে বিভিন্ন রিমোট কনফিগ মান নিয়ে পরীক্ষা করেছেন এবং প্রতিটি অ্যানালিটিক্স মেট্রিক্সকে কীভাবে প্রভাবিত করে তা নির্ধারণ করেছেন।
আমরা যা কভার করেছি
- ইন্সট্রুমেন্টেড রিমোট কনফিগ মান ব্যবহার করে কীভাবে A/B টেস্টিং সেট আপ করবেন
- A/B পরীক্ষার পরীক্ষায় ভর্তির শর্তাবলীর অংশ হিসেবে Google Analytics ব্যবহারকারীর বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন
পরবর্তী পদক্ষেপ
পরীক্ষাটি শেষ হয়ে গেলে, আপনি আপনার প্রকল্পের পরীক্ষাগুলির তালিকা থেকে একটি নির্বাচন করতে পারেন এবং এটি দিয়ে কী করতে চান তা নির্ধারণ করতে পারেন। আপনি কি "বিজয়ী" হিসেবে একটি বেছে নিতে চান নাকি আরও পরীক্ষা পরিচালনা করতে চান?