AdMob'Firebase 102 Unity: কোনো অ্যাপ আপডেট ছাড়াই অ্যাপের আচরণকে সূক্ষ্ম-টিউন করুন

১. ভূমিকা

ধরা যাক, প্লে স্টোরে আপনার অ্যাপটি প্রকাশ করার পর সেটির কিছু প্যারামিটারের মান পরিবর্তন করার প্রয়োজন হলো। সাধারণত, এক্ষেত্রে আপনার অ্যাপের একটি নতুন সংস্করণ পুনরায় প্রকাশ করা উচিত এবং ব্যবহারকারীদেরও তাদের ফোনে অ্যাপটি আপডেট করে নেওয়া উচিত।

সাধারণত, আপনার অ্যাপে কোনো দীর্ঘস্থায়ী পরিবর্তন আনতে চাইলে অ্যাপ আপডেট কাজ করে। কিন্তু, যদি আপনি আপনার অ্যাপের কিছু প্যারামিটারের মান ঘন ঘন পরিবর্তন করতে চান? অথবা, অ্যাপের সর্বোত্তম কনফিগারেশন খুঁজে বের করার জন্য কিছু পরীক্ষা-নিরীক্ষা চালাতে চান?

এইসব ক্ষেত্রে অ্যাপ আপডেট ভালোভাবে কাজ করবে না। কারণ, আপডেটটি সম্পূর্ণরূপে ব্যবহারকারীদের কাছে পৌঁছাতে কিছুটা সময় লাগে। এছাড়াও, বিভিন্ন অ্যাপ সংস্করণে পরীক্ষাগুলো চালানো বেশ কঠিন।

এছাড়াও, অ্যাপটির ইউজার জার্নি উদ্দেশ্য অনুযায়ী কাজ করছে কিনা, তা আপনি কীভাবে নির্ধারণ করবেন? আপনি প্লে কনসোলে থাকা ব্যবহারকারীদের মন্তব্যের উপর নির্ভর করতে পারেন। তবে, একটি সুস্পষ্ট সিদ্ধান্ত নেওয়ার জন্য তা যথেষ্ট নির্ভুল নাও হতে পারে।

আপনি যা শিখবেন

  • Google Analytics for Firebase-এ কীভাবে একটি ফানেল তৈরি করবেন
  • ফায়ারবেস রিমোট কনফিগ কীভাবে ব্যবহার করবেন
  • ফায়ারবেস এ/বি টেস্টিং কীভাবে চালাবেন

তোমার যা লাগবে

  • ইউনিটি 2018.4.4f1 বা উচ্চতর সংস্করণ
  • Xcode 10 বা উচ্চতর সংস্করণ (iOS-এর জন্য টার্গেট বিল্ড করতে)
  • একটি গুগল অ্যাকাউন্ট
  • আপনার ডিভাইসটি সংযোগ করার জন্য একটি ইউএসবি কেবলসহ অ্যান্ড্রয়েড ৫.০+ চালিত একটি টেস্ট ডিভাইস, অথবা প্লে স্টোর/গুগল এপিআই সমর্থনকারী সিস্টেম ইমেজসহ এভিডি (অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস) চালিত একটি অ্যান্ড্রয়েড এমুলেটর।
  • একটি iOS ডিভাইস বা সিমুলেটর যা iOS 8.0 বা তার উচ্চতর সংস্করণে চালিত।

AdMob নিয়ে আপনার অভিজ্ঞতার স্তরকে আপনি কীভাবে মূল্যায়ন করবেন?

শিক্ষানবিশ মধ্যবর্তী দক্ষ

ফায়ারবেস নিয়ে আপনার অভিজ্ঞতার স্তরকে আপনি কীভাবে মূল্যায়ন করবেন?

শিক্ষানবিশ মধ্যবর্তী দক্ষ

২. উন্নয়ন পরিবেশ সেটআপ করুন

কোডটি ডাউনলোড করুন

এই কোডল্যাবের সম্পূর্ণ কোড ডাউনলোড করতে নিচের বাটনটিতে ক্লিক করুন:

ডাউনলোড করা জিপ ফাইলটি আনপ্যাক করুন। এটি admob-firebase-codelabs-unity-master নামের একটি রুট ফোল্ডার আনপ্যাক করবে।

...অথবা কমান্ড লাইন থেকে গিটহাব রিপোজিটরিটি ক্লোন করুন।

$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity

রিপোজিটরিটিতে নিম্নলিখিত চারটি ফোল্ডার রয়েছে:

  • android_studio_folder.png 101-base — এই কোডল্যাবে আপনি যে প্রারম্ভিক কোডটি তৈরি করবেন।
  • android_studio_folder.png 101-complete_and_102-base — এই কোডল্যাবের সম্পূর্ণ কোড এবং ১০২ নম্বর কোডল্যাবের সূচনা।
  • android_studio_folder.png ১০২-সম্পূর্ণ — ১০২ কোডল্যাবের জন্য কোড সম্পন্ন হয়েছে।

প্রয়োজনীয় ফাইল প্রস্তুত করুন

অসম ড্রয়িং কুইজটিতে বেশ কিছু ওপেন-সোর্স কোড ব্যবহার করা হয়েছে, যেগুলো প্রজেক্টটি কম্পাইল ও রান করার জন্য প্রয়োজন।

টার্মিনাল খুলুন এবং রিপোজিটরি রুট ডিরেক্টরিতে যান। এরপর, প্রজেক্টে প্রয়োজনীয় ফাইলগুলো কপি করার জন্য টার্মিনাল থেকে ./gradlew :prepareThirdPartyFiles (উইন্ডোজে gradlew.bat :prepareThirdPartyFiles ) কমান্ডটি চালান।

স্টার্টার অ্যাপটি ইম্পোর্ট করুন

ইউনিটি চালু করুন, স্বাগত স্ক্রিনে "Open" নির্বাচন করুন। তারপর আপনার ডাউনলোড করা কোড থেকে 101-complete_and_102-base ডিরেক্টরিটি নির্বাচন করুন।

এখন আপনার ইউনিটিতে প্রজেক্টটি খোলা থাকা উচিত।

গুগল মোবাইল বিজ্ঞাপন ইউনিটি প্লাগইন যোগ করুন

ইউনিটি অ্যাপে AdMob বিজ্ঞাপন দেখানোর জন্য, আপনাকে প্রজেক্টে Google Mobile Ads Unity Plugin-টি যোগ করতে হবে।

  1. Google Mobile Ads Unity Plugin 3.18.1 প্যাকেজটি ডাউনলোড করুন। (উল্লেখ্য যে, এই কোডল্যাবটি প্লাগইনের অন্য সংস্করণের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে)
  2. Awesome Drawing Quiz ইউনিটি প্রোজেক্টে, Assets > Import Package > Custom Package- এ যান।
  3. আপনার ডাউনলোড করা প্রজেক্টটিতে GoogleMobileAds.unitypackage- টি ইম্পোর্ট করুন।

আপনাকে AdMob অ্যাপ আইডি-ও সেট করতে হবে। ইউনিটি এডিটরে, মেনু থেকে Assets > Google Mobile Ads > Settings নির্বাচন করুন।

44fc84fe88235c1f.png

Google AdMob বিভাগের অধীনে থাকা ‘Enabled’ চেকবক্সে ক্লিক করে AdMob সক্রিয় করুন। তারপর নিম্নরূপভাবে AdMob অ্যাপ আইডিটি প্রবেশ করান:

  • অ্যান্ড্রয়েড: ca-app-pub-3940256099942544~3048611032
  • iOS: ca-app-pub-3940256099942544~2753522596

a6ad7402d4daf330.png

ইউনিটি প্রজেক্টে ফায়ারবেস কনফিগারেশন ফাইলগুলো যোগ করুন

  1. Awesome Drawing Quiz প্রোজেক্টের ওভারভিউ স্ক্রিন থেকে সেটিংস আইকনে ক্লিক করুন। 9bacb5ada7cbaaf6.png
  2. জেনারেল ট্যাবের অধীনে, google-service.json (অ্যান্ড্রয়েডের জন্য) এবং GoogleService-Info.plist (আইওএসের জন্য) ফাইলটি ডাউনলোড করতে প্রতিটি অ্যান্ড্রয়েড এবং আইওএস অ্যাপ নির্বাচন করুন।
  3. উভয় কনফিগারেশন ফাইল সরান android_studio_folder.png ইউনিটি প্রজেক্টের অ্যাসেটস ফোল্ডার।

704aa8e97df63c4e.png

ফায়ারবেস অ্যানালিটিক্স এসডিকে যোগ করুন

  1. Firebase Unity SDK 5.5.0 ডাউনলোড করুন এবং আপনার সুবিধামত কোনো জায়গায় আনজিপ করুন। (যদি আপনি আগে থেকেই SDK ডাউনলোড করে থাকেন, তবে এই ধাপটি বাদ দিন)
  2. Awesome Drawing Quiz ইউনিটি প্রজেক্টটি খুলুন, এরপর Assets > Import Package > Custom Package- এ যান।
  3. আনজিপ করা SDK থেকে Firebase Analytics SDK ( dotnet4/FirebaseAnalytics.unitypackage ) ইম্পোর্ট করুন।
  4. ইউনিটি প্যাকেজ ইম্পোর্ট উইন্ডোতে, ইম্পোর্ট-এ ক্লিক করুন।

৩. কনসোল থেকে ফায়ারবেস প্রজেক্টটি খুলুন।

পরবর্তী ধাপে যাওয়ার আগে, AdMob+Firebase 101 কোডল্যাবের 'সেটআপ ফায়ারবেস প্রজেক্ট' ধাপে আপনার তৈরি করা প্রজেক্টটি ফায়ারবেস কনসোল থেকে খুলুন।

e0a028059c9e00cb.png

৪. অ্যাপ ইভেন্টের একটি ফানেল তৈরি করুন

অ্যাপের মধ্যে ব্যবহারকারীর কার্যকলাপ ট্র্যাক করার জন্য আপনি কয়েকটি অ্যাপ ইভেন্ট যোগ করে থাকতে পারেন। প্রতিটি অ্যাপ ইভেন্টের রিপোর্ট পড়ে আপনি সেই ইভেন্ট সম্পর্কিত বিস্তারিত তথ্য, যেমন মোট সংখ্যা, ব্যবহারকারী প্রতি গড় সংখ্যা, জনসংখ্যাতাত্ত্বিক তথ্য ইত্যাদি জানতে পারবেন।

তবে, কোনো একটি নির্দিষ্ট ইভেন্টের উপর মনোযোগ না দিয়ে, আপনি যদি একাধিক ইভেন্টের একটি সিরিজের সমাপ্তির হার দেখতে চান, তাহলে কী হবে? Google Analytics for Firebase-এ, আপনি ফানেল ব্যবহার করে একাধিক অ্যাপ ইভেন্টের সমাপ্তির হারকে দৃশ্যমান ও অপ্টিমাইজ করতে পারেন।

একটি ফানেল তৈরি করুন

একটি ফানেল তৈরি করতে:

  1. Firebase কনসোলে যান এবং আপনার আগে তৈরি করা Awesome Drawing Quiz প্রজেক্টটি নির্বাচন করুন।
  2. ফানেলগুলোতে ক্লিক করুন।
  3. নতুন ফানেল-এ ক্লিক করুন।
  4. ফানেলটির জন্য একটি নাম ও বিবরণ লিখুন।
  5. ফানেলের ধাপ হিসেবে ব্যবহার করতে চান এমন প্রথম দুটি ইভেন্ট নির্বাচন করুন।
  6. প্রতিটি অতিরিক্ত ধাপের জন্য ‘ADD ANOTHER EVENT’-এ ক্লিক করুন এবং একটি ইভেন্ট নির্বাচন করুন।
  7. তৈরি করুন- এ ক্লিক করুন।

উপরের ধাপগুলো অনুসরণ করে নিম্নলিখিত ফানেলগুলো তৈরি করুন:

#১ ফানেলের নাম: লেভেল সফলতার হার ইভেন্টসমূহ: level_start , level_success d3bc78ef61a261d7.png

#২ ফানেলের নাম: রিওয়ার্ডেড অ্যাড কমপ্লিশন রেট ইভেন্টসমূহ: ad_reward_prompt , ad_reward_impression , ad_reward 45c9542dfa663014.png

#৩ ফানেলের নাম: গেম সমাপ্তির হার ইভেন্টসমূহ: game_start , game_complete dab25e8501746d5f.png

ফানেল বিশ্লেষণ দেখুন

একবার কিছু ফানেল তৈরি করে ফেললে, আপনি ফায়ারবেস কনসোলের ফানেলস মেনু থেকে সেটিতে প্রবেশ করতে পারবেন। তালিকা থেকে ফানেলের নামে ক্লিক করে আপনি প্রতিটি ফানেলের বিস্তারিত বিশ্লেষণ দেখতে পারেন।

620c0e84587c8ad4.png

উদাহরণস্বরূপ, 'Level success rate'- এ ক্লিক করুন। এটি ফানেলের বিবরণ নিম্নরূপভাবে দেখাবে:

c889f9b6ece15847.png

উপরের স্ক্রিনশট থেকে, আপনি দেখতে পাচ্ছেন যে কত শতাংশ ব্যবহারকারী একটি লেভেল শুরু করার ( level_success ইভেন্ট ট্রিগার করার) পর লেভেলটি সম্পন্ন করেছেন ( level_start ইভেন্ট ট্রিগার করেছেন)। এখানে আপনি দেখতে পাচ্ছেন যে ৪৬.২% ব্যবহারকারী লেভেলটি সম্পন্ন করেছেন।

আপনি 'ইভেন্ট কাউন্ট'-এ ক্লিক করলে, ইভেন্টের সংখ্যার উপর ভিত্তি করে মেট্রিকগুলো নিম্নরূপভাবে দেখানো হবে:

d044fb7b07e6e0d9.png

উপরের স্ক্রিনশটের মেট্রিক্স অনুসারে, উক্ত সময়কালে ১১৬টি প্রচেষ্টা (যা level_start ইভেন্টটি ট্রিগার করেছে) এবং ৫৭টি ক্লিয়ার (যা level_success ইভেন্টটি ট্রিগার করেছে) হয়েছিল।

যেহেতু ইভেন্টের উপর ভিত্তি করে সম্পন্ন করার হার (৪৯.১%) ব্যবহারকারীর উপর ভিত্তি করে হারের (৪৬.২%) চেয়ে সামান্য বেশি, তাই বলা যায় যে এমন কিছু লোক আছেন যারা অন্যদের চেয়ে ভালো কাজ করেন।

৫. রিমোট কনফিগকে অ্যাপের সাথে একীভূত করুন।

যেহেতু অ্যাপ ইভেন্ট এবং ফানেলের উপর ভিত্তি করে আপনি আপনার অ্যাপ সম্পর্কে কিছু ধারণা পেতে পারেন, তাই আপনি আপনার অ্যাপটি অপ্টিমাইজ করতে চাইতে পারেন। এর মধ্যে সাধারণত অ্যাপের প্যারামিটার ভ্যালুগুলোর সূক্ষ্ম সমন্বয় অন্তর্ভুক্ত থাকে। সেই প্যারামিটারগুলোর ভ্যালু পরিবর্তন করতে হলে, আপনাকে অ্যাপটি আপডেট করতে হবে, যাতে পরিবর্তনগুলো ব্যবহারকারীদের কাছে পৌঁছে যায়।

Firebase-এর রিমোট কনফিগ ব্যবহার করে, আপনি অ্যাপ আপডেট ছাড়াই সেই মানগুলো পরিবর্তন করতে পারেন। এর মানে হলো, ব্যবহারকারীদের আপডেট ডাউনলোড করতে বাধ্য করে তাদের বিরক্ত না করেই আপনি অ্যাপের আচরণ পরিবর্তন করতে পারবেন।

এই কোডল্যাবে আপনি শিখবেন, কীভাবে রিমোট কনফিগ ব্যবহার করে অ্যাপ আপডেট ছাড়াই পুরস্কারের পরিমাণ (একটি রিওয়ার্ডেড ভিডিও বিজ্ঞাপন দেখার পর প্রদর্শিত অক্ষরের সংখ্যা) পরিবর্তনযোগ্য করা যায়।

ফায়ারবেস রিমোট কনফিগ এসডিকে যোগ করুন

  1. Firebase Unity SDK 5.5.0 ডাউনলোড করে আপনার সুবিধামত কোনো জায়গায় আনজিপ করুন।
  2. Awesome Drawing Quiz ইউনিটি প্রজেক্টটি খুলুন, এরপর Assets > Import Package > Custom Package- এ যান।
  3. আনজিপ করা SDK থেকে, রিমোট কনফিগ SDK ( dotnet4/FirebaseRemoteConfig.unitypackage ) ইম্পোর্ট করুন।
  4. ইউনিটি প্যাকেজ ইম্পোর্ট উইন্ডোতে, ইম্পোর্ট-এ ক্লিক করুন।

Firebase.RemoteConfig আমদানি করুন

সম্পূর্ণ কোয়ালিফাইড নাম ব্যবহার না করেই Firebase.RemoteConfig থেকে টাইপ ব্যবহার করার জন্য Main.cs ফাইলটি পরিবর্তন করুন।

দৃশ্য/প্রধান.সিএস

...

using AwesomeDrawingQuiz.Game;

// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;

namespace AwesomeDrawingQuiz.Scene {
    ...
}

রিমোট কনফিগারেশনের মানগুলি শুরু করুন এবং আনুন

রিমোট কনফিগ ইনস্ট্যান্সটি নিম্নরূপভাবে ইনিশিয়ালাইজ করার জন্য Main.cs এর InitAndFetchRemoteConfig() মেথডটি পরিবর্তন করুন। লক্ষ্য করুন যে, GameSettings.KEY_REWARD_AMOUNT রিমোট কনফিগের প্যারামিটারের নামটি ধারণ করে। (এই কোডল্যাবে আপনি শীঘ্রই এই ফিল্ডটি ডিক্লেয়ার করবেন)

দৃশ্য/প্রধান.সিএস

private Task InitAndFetchRemoteConfig() {
    // TODO: Initialize and Fetch values from the Remote Config (102)
    Dictionary<string, object> defaults = new Dictionary<string, object>();
    defaults.Add(GameSettings.KEY_REWARD_AMOUNT, 1);
    FirebaseRemoteConfig.SetDefaults(defaults);

    if (Debug.isDebugBuild) {
        ConfigSettings config = new ConfigSettings();
        config.IsDeveloperMode = true;
        FirebaseRemoteConfig.Settings = config;
        return FirebaseRemoteConfig.FetchAsync(System.TimeSpan.Zero);
    } else {
        return FirebaseRemoteConfig.FetchAsync();
    }
}

আপনি দেখতে পাবেন যে, ডেভেলপমেন্ট প্রক্রিয়ায় সাহায্য করার জন্য FirebaseRemoteConfig ইনস্ট্যান্সটি ডিবাগ মোডে সার্ভার থেকে সর্বশেষ মানগুলো আনার জন্য কনফিগার করা হয়েছে। ( IsDeveloperMode = true এবং FetchAsync(System.TimeSpan.Zero) )

ফেচ করা রিমোট কনফিগ মানগুলি সক্রিয় করুন

যখন আপনি সফলভাবে রিমোট কনফিগ ভ্যালুগুলো ফেচ করবেন, তখন অ্যাপে সেগুলোকে উপলব্ধ করার জন্য অ্যাক্টিভেট করতে হবে। ActivateRemoteConfigValues() মেথডটি নিম্নরূপভাবে পরিবর্তন করুন।

দৃশ্য/প্রধান.সিএস

private void ActivateRemoteConfigValues() {
    // TODO: Activate fetched Remote Config values (102)
    FirebaseRemoteConfig.ActivateFetched();
}

Start() পদ্ধতিটি পরিবর্তন করুন

অ্যাপটি চালু হওয়ার সাথে সাথে যেন রিমোট কনফিগ ভ্যালুটি ফেচ ও অ্যাক্টিভেট হয়, তা নিশ্চিত করতে Main.cs ফাইলের Start() মেথডটি নিম্নরূপভাবে পরিবর্তন করুন।

দৃশ্য/প্রধান.সিএস

void Start () {
    ...
    Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
        ...
    }).ContinueWith(task => { 
        // TODO: Call InitAndFetchRemoteConfig() (102)
        InitAndFetchRemoteConfig();
    }).ContinueWith(task => {
        // TODO: Call ActivateRemoteConfigValues() (102)
        ActivateRemoteConfigValues();

        // Enable 'Start a game' button
        UnityMainThreadDispatcher.Instance()
            .Enqueue(() => buttonStartGame.interactable = true);
    });
    #else
    QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);

    // TODO: Call InitAndFetchRemoteConfig() (102)
    InitAndFetchRemoteConfig().ContinueWith(task => {
        // TODO: Call ActivateRemoteConfigValues() (102)
        ActivateRemoteConfigValues();
    });
    #endif
}

রিমোট কনফিগ থেকে পুরস্কারের পরিমাণটি সংগ্রহ করুন।

Remote Config থেকে পুরস্কারের পরিমাণ নেওয়ার জন্য GameSettings ক্লাসটি পরিবর্তন করুন।

গেম/গেমসেটিংস.সিএস

// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;

namespace AwesomeDrawingQuiz.Game {
    public class GameSettings {

        ...
        
        // TODO: Apply reward amount from the Remote Config (102)
        public const string KEY_REWARD_AMOUNT = "reward_amount";

        public static GameSettings Instance {
            get {
                return instance;
            }
        }

        ...

        public int RewardAmount {
            get {
                // TODO: Apply reward amount from the Remote Config (102)
                return (int) FirebaseRemoteConfig.GetValue(KEY_REWARD_AMOUNT).LongValue;
            }
            private set { }
        }
    }
}

কনসোল থেকে একটি রিমোট কনফিগ প্যারামিটার তৈরি করুন।

এরপরে, আপনি পুরস্কারের পরিমাণের জন্য একটি নতুন রিমোট কনফিগ প্যারামিটার তৈরি করবেন, যাতে আপনি প্রয়োজন অনুযায়ী এর মান পরিবর্তন করতে পারেন।

একটি নতুন প্যারামিটার তৈরি করতে, Firebase কনসোলে যান, তারপর আপনার পূর্বে তৈরি করা Awesome Drawing Quiz প্রজেক্টটি নির্বাচন করুন। Remote Config -> ADD YOUR FIRST PARAMETER বোতামে ক্লিক করুন।

7f52617141c53726.png

প্যারামিটারটির নাম reward_amount দিন এবং এর ডিফল্ট মান 1 সেট করুন। তারপর Add Parameter বাটনে ক্লিক করুন।

cbc771fd1685b29c.png

ব্যবহারকারীদের কাছে পরিবর্তনটি কার্যকর করতে 'পরিবর্তন প্রকাশ করুন' বোতামে ক্লিক করুন।

d6a6aa4a60e06ee9.png

৬. রিমোট কনফিগের মাধ্যমে অ্যাপের আচরণ পরিবর্তন করুন

এখন থেকে অ্যাপ কোড আপডেট না করেই ফায়ারবেস কনসোল থেকে 'অসাম ড্রয়িং কুইজ' -এর পুরস্কারের পরিমাণ নির্ধারণ করা যাবে।

এই অংশে, আপনি পুরস্কারের পরিমাণ ১ থেকে ২-এ পরিবর্তন করবেন, যাতে একটি রিওয়ার্ডেড অ্যাড দেখার পর অ্যাপটি ইঙ্গিত হিসেবে আরও দুটি চরিত্র প্রকাশ করে।

reward_amount প্যারামিটারের ডিফল্ট মান আপডেট করুন।

Firebase কনসোলে যান, তারপর আপনার আগে তৈরি করা Awesome Drawing Quiz প্রজেক্টটি নির্বাচন করুন। Remote Config-এ ক্লিক করুন এবং তালিকা থেকে reward_amount ক্লিক করুন। এরপর, ডিফল্ট মানটি 2-এ পরিবর্তন করে Update বোতামে ক্লিক করুন।

9a9bd8a26a39bfe3.png

ব্যবহারকারীদের কাছে পরিবর্তনটি কার্যকর করতে 'পরিবর্তনগুলি প্রকাশ করুন' বোতামে ক্লিক করুন।

d6a6aa4a60e06ee9.png

অ্যাপের আচরণের পরিবর্তন যাচাই করুন

অ্যাপের আচরণের পরিবর্তন নিশ্চিত করতে, প্রজেক্টটি আবার চালান। একটি রিওয়ার্ডেড অ্যাড দেখা শেষ হলে, আপনি লক্ষ্য করবেন যে অ্যাপটি এখন পুরস্কার হিসেবে দুটি অক্ষর দেখাচ্ছে, যেমনটি আমরা রিমোট কনফিগ কনসোলে কনফিগার করেছিলাম।

পুরস্কারপ্রাপ্ত বিজ্ঞাপন দেখার আগে

পুরস্কার হিসেবে দুটি অতিরিক্ত চিঠি প্রকাশ করা হয়েছে।

৭. পুরস্কারের পরিমাণ অপ্টিমাইজ করার জন্য পরীক্ষাটি তৈরি করুন।

এখন আপনি অ্যাপ আপডেট প্রকাশ না করেই পুরস্কারের পরিমাণ পরিবর্তন করতে পারবেন। তবে, আপনি যে পরিমাণটি পরিবর্তন করেছেন তা অ্যাপের জন্য উপযুক্ত কিনা, তা কীভাবে নির্ধারণ করবেন?

Firebase A/B Testing-এর মাধ্যমে, আপনি অ্যাপটি আপডেট না করেই অথবা প্রতিটি পরীক্ষার পারফরম্যান্স চালানো ও ট্র্যাক করার জন্য আলাদা টুল তৈরি না করেই, অ্যাপটির সামগ্রিক ইউজার এক্সপেরিয়েন্স অপ্টিমাইজ করার জন্য পরীক্ষাগুলো চালাতে পারেন।

পরীক্ষাটি ডিজাইন করুন

নতুন কোনো পরীক্ষা তৈরি করার আগে, আপনার সেই পরীক্ষার একটি সুস্পষ্ট উদ্দেশ্য বা লক্ষ্য নির্ধারণ করা উচিত। নতুন কোনো পরীক্ষা তৈরি করার আগে নিচের চেকলিস্টটি অবশ্যই দেখে নিন।

  • কী: আপনি কী অপ্টিমাইজ করতে চান? (যেমন, গেমের কঠিনতা, বিজ্ঞাপনের সময়/দৃশ্যমানতা, ইত্যাদি)
  • কেন: এই পরীক্ষাটি চালানোর পেছনে আপনার ব্যবসায়িক লক্ষ্য কী? (যেমন, বিজ্ঞাপনের আয় সর্বাধিক করা, গ্রাহক ধরে রাখার হার বাড়ানো, ইত্যাদি)
  • কারা এই পরীক্ষায় অংশগ্রহণ করতে পারবে? (যেমন, সকল ব্যবহারকারী, নির্দিষ্ট ব্যবহারকারী গোষ্ঠী, ইত্যাদি)

এই কোডল্যাবে, আপনি 'Awesome Drawing Quiz'- এর দৈনিক ব্যবহারকারীর সম্পৃক্ততা সর্বাধিক করার জন্য পুরস্কারের পরিমাণ অপ্টিমাইজ করতে একটি এক্সপেরিমেন্ট তৈরি করবেন।

পরীক্ষাটি তৈরি করুন

Firebase কনসোল থেকে Awesome Drawing Quiz প্রজেক্টটি খুলুন। A/B Testing মেনুটি নির্বাচন করুন, তারপর Create experiment বোতামে ক্লিক করুন।

একটি রিমোট কনফিগ এক্সপেরিমেন্ট তৈরি করতে রিমোট কনফিগ নির্বাচন করুন।

f38a85328ab54e7e.png

নিচের স্ক্রিনশটে দেখানো অনুযায়ী এক্সপেরিমেন্টটির নাম 'পুরস্কারের পরিমাণ' দিন।

15d552adb61c0b08.png

টার্গেটিং অপশনগুলো কনফিগার করুন। এই কোডল্যাবে, আপনি 'Awesome Drawing Quiz'- এর ১০০% ব্যবহারকারীকে টার্গেট করবেন।

61b316741a63050f.png

যেহেতু এই পরীক্ষার মূল উদ্দেশ্য হলো দৈনিক ব্যবহারকারীর সম্পৃক্ততা সর্বাধিক করে এমন একটি সর্বোত্তম মান খুঁজে বের করা, তাই ট্র্যাক করার জন্য প্রাথমিক মেট্রিক হিসেবে দৈনিক ব্যবহারকারীর সম্পৃক্ততা নির্বাচন করুন।

694641b57d90ff65.png

সবশেষে, কন্ট্রোল এবং ভ্যারিয়েন্ট গ্রুপ সেটআপ করুন, যাতে আপনি বুঝতে পারেন কোন গ্রুপটি ভালো পারফর্ম করছে। কন্ট্রোল গ্রুপ থেকে reward_amount সিলেক্ট করুন এবং এর ভ্যালু অপরিবর্তিত রাখুন। ভ্যারিয়েন্ট গ্রুপের জন্য, এর নাম দিন 'Less reward', তারপর reward_amount এর ভ্যালু পরিবর্তন করে 1 করুন।

10ed7f5b06858519.png

এই কনফিগারেশনের ফলে, 'কম পুরস্কার' গ্রুপের লোকেরা পুরস্কার হিসেবে একটি অক্ষর পাবে, আর কন্ট্রোল গ্রুপের লোকেরা পুরস্কার হিসেবে দুটি অক্ষর পাবে। এর ফলে, পুরস্কারের পরিমাণ ব্যবহারকারীদের উপর কীভাবে প্রভাব ফেলে, তা আপনি দেখতে পাবেন।

রিভিউ বাটনে ক্লিক করলে আপনি পরীক্ষাটির একটি সংক্ষিপ্ত বিবরণ দেখতে পাবেন, যা নিম্নরূপ।

ae6477ce79f6265d.png

পরীক্ষাটি চালান

পরীক্ষাটি চালানোর জন্য 'স্টার্ট এক্সপেরিমেন্ট' বোতামে ক্লিক করুন। মনে রাখবেন, একবার শুরু হয়ে গেলে পরীক্ষার কনফিগারেশন আর পরিবর্তন করা যাবে না।

7131bf9b4fa74fa5.png

৮. পরীক্ষাটি পরিচালনা করুন

পরীক্ষার অগ্রগতি দেখুন

আপনি Firebase কনসোলের A/B Testing মেনু থেকে এক্সপেরিমেন্টের অগ্রগতি দেখতে পারেন, যা নিচের স্ক্রিনশটের মতো দেখাবে। লক্ষ্য করুন, আপনি কার্ডটিতে গত ৩০ মিনিটে এক্সপেরিমেন্টে অংশগ্রহণকারী ব্যবহারকারীর সংখ্যাও দেখতে পাবেন।

8a7009bdd8871d95.png

তালিকা থেকে এক্সপেরিমেন্টটিতে ক্লিক করলে, আপনি এক্সপেরিমেন্টের বিস্তারিত বিবরণ দেখতে পাবেন। এক্সপেরিমেন্টটি লিডার (অর্থাৎ, সেরা পারফর্মিং ভ্যারিয়েন্ট) ঘোষণা করার আগ পর্যন্ত, আপনি 'লিডার ঘোষণা করার জন্য এখনও খুব তাড়াতাড়ি' বার্তাটি দেখতে পাবেন।

a4e7ca3e3f4711cd.png

পরীক্ষাটি কিছুক্ষণ চলার পর, এটি 'ইমপ্রুভমেন্ট ওভারভিউ' বিভাগের অধীনে পরীক্ষা চলাকালীন এখন পর্যন্ত সংগৃহীত ডেটা প্রদর্শন করতে শুরু করবে। কোনটি ভালো কাজ করছে তা দেখার জন্য আপনি প্রতিটি ভ্যারিয়েন্টের পারফরম্যান্স তুলনা করতে পারেন। নিচের স্ক্রিনশটটিতে 'ইমপ্রুভমেন্ট ওভারভিউ' বিভাগের একটি উদাহরণ দেখানো হয়েছে।

e2d00fc27c053fd3.png

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

c3859d642f85cc52.png

সকল ব্যবহারকারীর কাছে লিডারটি চালু করুন।

পরীক্ষাটি দীর্ঘ সময় ধরে চলার পর যখন আপনি একটি সেরা বা বিজয়ী ভ্যারিয়েন্ট খুঁজে পাবেন, তখন আপনি পরীক্ষাটি ১০০% ব্যবহারকারীর কাছে চালু করতে পারেন। একবার A/B টেস্টিং একটি সুস্পষ্ট সেরা ভ্যারিয়েন্ট খুঁজে পেলে, এটি আপনাকে সেই সেরা ভ্যারিয়েন্টটি সকল ব্যবহারকারীর কাছে চালু করতে উৎসাহিত করবে।

86cb6a6c07516634.png

তবে, পরীক্ষাটি কোনো সুস্পষ্ট বিজয়ীকে ঘোষণা না করলেও, আপনি সকল ব্যবহারকারীর জন্য একটি ভ্যারিয়েন্ট চালু করার সিদ্ধান্ত নিতে পারেন।

পরীক্ষার বিবরণ স্ক্রিনে, কনটেক্সট মেনুতে ক্লিক করুন ( 73afe611adf58774.png ), এবং তারপর 'Roll out variant'-এ ক্লিক করুন।

374e1c72be1d0656.png

সকল ব্যবহারকারীর জন্য একটি ভ্যারিয়েন্ট বেছে নিন, তারপর রিমোট কনফিগে কোনো পরিবর্তন করার আগে পরিবর্তনগুলো পর্যালোচনা করতে 'রিভিউ ইন রিমোট কনফিগ' বাটনে ক্লিক করুন।

e176f6e6a72c754.png

খসড়াটিতে কোনো সমস্যা নেই তা নিশ্চিত করার পর, সকল ব্যবহারকারীর জন্য পরিবর্তনটি কার্যকর করতে ‘পরিবর্তন প্রকাশ করুন’ বোতামে ক্লিক করুন।

d65d545620ce93f6.png

৯. সব হয়ে গেছে!

আপনি AdMob+Firebase 102 ইউনিটি কোডল্যাবটি সম্পন্ন করেছেন। এই কোডল্যাবের সম্পূর্ণ কোডটি আপনি এখানে খুঁজে পাবেন। android_studio_folder.png ১০২-সম্পূর্ণ ফোল্ডার।