পরিমাপ প্রোটোকল ব্যবহার করে GA4 এ অ্যাপ ইভেন্ট পাঠান

১. ভূমিকা

সর্বশেষ হালনাগাদ: ২০২১-০৬-০৮

আপনি যা তৈরি করবেন

এই কোডল্যাবে, আপনি শিখবেন কীভাবে মেজারমেন্ট প্রোটোকল ব্যবহার করে GA4-এ এক্সটার্নাল ইভেন্ট পাঠাতে হয়।

এই কোডল্যাবটি ধরে নেয় যে আপনার কাছে ইতিমধ্যেই Google Analytics for Firebase সহ একটি অ্যাপ রয়েছে। আপনি যদি Google Analytics for Firebase-এর সাথে ইন্টিগ্রেট করার পদ্ধতি শিখতে চান, তাহলে অনুগ্রহ করে প্রথমে এই কোডল্যাবটি দেখুন। আর যদি আপনি Firebase দিয়ে একটি অ্যাপ তৈরি করার পদ্ধতি শিখতে চান, তাহলে অনুগ্রহ করে Firebase Android Codelab-Build Friendly Chat দেখুন।

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

  • আপনার প্রথম এমপি কল করার পদক্ষেপ
  • কলের জন্য প্রয়োজনীয় প্যারামিটারগুলো বুঝুন
  • আপনার টেস্ট কলটি পাঠান এবং যাচাই করুন
  • কলটি করার জন্য পাইথনে একটি নমুনা স্ক্রিপ্ট তৈরি করুন।

আপনার যা যা লাগবে

  • আপনার অ্যান্ড্রয়েড বা আইওএস অ্যাপ
  • পরিবর্তন করার জন্য যেকোনো IDE
  • GA4 অ্যাকাউন্ট
  • ঐচ্ছিক - পাইথন ডেভেলপমেন্ট এনভায়রনমেন্ট (অথবা কোলাব )

২. আবশ্যিক ক্ষেত্রগুলো সংগ্রহ করুন।

GA4-এ API সিক্রেট তৈরি করুন

GA4-এ যান এবং Admin > Data Streams > আপনার স্ট্রিমটি বেছে নিন > Measurement Protocol > Create- এ গিয়ে আপনার নতুন API সিক্রেট তৈরি করুন।

6e4afca63054d291.pngc9e9ccd2ffba98eb.pnge714cd969fca4a4d.png

আপনি যেকোনো ডাকনাম দিতে পারেন, এবং গোপন মানটি প্রদর্শিত হবে, যা আপনি আপনার কলে ব্যবহার করতে পারবেন।

GA4 কীভাবে অ্যাক্সেস করতে হয় সে সম্পর্কে আপনি যদি নিশ্চিত না হন, তবে আপনি আপনার Firebase প্রজেক্টে গিয়ে Project Settings > Integrations > Google Analytics চেক করে "Manage"-এ ক্লিক করতে পারেন। Google Analytics কানেকশনটি সেখানে দেখা যাবে এবং আপনি সেখান থেকেও সরাসরি নেভিগেট করতে পারবেন।

73b4d77a57eddfba.png

অ্যাপ_ইনস্ট্যান্স_আইডি সংগ্রহ করুন

আপনার app_instance_id সংগ্রহ করতে আপনি নিচের যেকোনো পদ্ধতি ব্যবহার করতে পারেন।

  1. BigQuery এক্সপোর্ট ব্যবহার করে
  2. আপনার অ্যাপের সোর্স কোডে নেটিভভাবে ফেচ করা

এই দুটি বিষয়ই নিচে বিস্তারিতভাবে ব্যাখ্যা করা হলো।

  1. BigQuery এক্সপোর্ট ব্যবহার করে

আপনার BigQuery এক্সপোর্ট সক্রিয় করা থাকলে, আপনি নিচের ধাপগুলো অনুসরণ করতে পারেন।

  • ফায়ারবেসে সাইন ইন করুন
  • প্রজেক্ট সেটিংস > ইন্টিগ্রেশন > বিগকোয়েরি-তে যান
  • ডেটা সেটের কাছে 'View in BigQuery'-তে ক্লিক করুন।

দ্রষ্টব্য: টগলটি প্রায় ২৪-৪৮ ঘণ্টা চালু রাখার পরেই ডেটাসেটটি পাওয়া যাবে।

63d061088b622961.png

  • BigQuery-তে, আপনি টেবিলে user_pseudo_id খুঁজে দেখতে পারেন। এটিই হলো app_instance_id যা আপনি আপনার কলে ব্যবহার করতে পারবেন।

4b1b80bdc2884581.png

  1. আপনার অ্যাপের সোর্স কোডে নেটিভভাবে ফেচ করা

আপনার অ্যাপটি যদি জাভা ব্যবহার করে তৈরি করা হয়, তাহলে app_instance_id পুনরুদ্ধার করতে আপনি এই ধরনের কিছু ব্যবহার করতে পারেন।

 FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
            if (task.isSuccessful()) {
                String user_pseudo_id = task.getResult();
            }
        }
    });

কোটলিনের জন্য, আপনি নিচেরটি চেষ্টা করতে পারেন।

Thread {
   Firebase.analytics.appInstanceId.addOnSuccessListener { user_pseudo_id ->
       Log.d("Firebase", "user_pseudo_id using appInstanceId is $user_pseudo_id")
       /*
       Store the value to your server or do something with the retrieved id
        */
   }
}.start()

আপনার যদি একটি iOS অ্যাপ থাকে, তাহলে আপনি Swift-এ নিম্নলিখিতগুলি ব্যবহার করতে পারেন।

let user_pseudo_id = Analytics.appInstanceID()
print("user_pseudo_id = \(user_pseudo_id)")
/*
Store the value to your server or do something with the retrieved id
*/

আপনার পরিকাঠামোর উপর নির্ভর করে নিচে আরও কিছু লিঙ্ক দেওয়া হলো।

৩. আহ্বানটি গঠন করা

আপনি GA4-এর ইভেন্ট বিল্ডার ব্যবহার করে একটি নমুনা কল তৈরি করতে পারেন। (এর জন্য আপনাকে লগইন করতে হবে এবং কুকি চালু রাখতে হবে)। নিশ্চিত করুন যে টগলটি "firebase"-এ সেট করা আছে।

fd78d961f3e48238.png

আপনাকে নিম্নলিখিত ক্ষেত্রগুলি পূরণ করতে হবে।

  • api_secret - GA4-এ আগেই তৈরি করা হয়েছে
  • firebase_app_id - এটি পেতে, আপনি Admin > Data Streams- এ গিয়ে আপনার স্ট্রিমটি বেছে নিন । এটি নীচের মতো প্রদর্শিত হবে।

19801c8e5cb29222.png

  • app_instance_id - আপনি ইতিমধ্যেই এই মানটি সংগ্রহ করেছেন
  • user_id বাধ্যতামূলক নয়। আপনি আপাতত এটি খালি রাখতে পারেন।
  • ক্যাটাগরি - ড্রপডাউন থেকে এটিকে 'কাস্টম'-এ পরিবর্তন করুন এবং আপনার পছন্দমতো যেকোনো ইভেন্টের নাম দিন (কোনো অটো কালেক্টেড ইভেন্ট ব্যবহার করবেন না)। এখানে আমরা 'test_from_codelab' ব্যবহার করছি।

54cce53df64d697.png

ঐচ্ছিকভাবে, আপনি নিচের বাটনগুলোতে ক্লিক করে ইভেন্ট প্যারামিটার এবং/অথবা ব্যবহারকারীর বৈশিষ্ট্যসমূহও প্রদান করতে পারেন।

16a8f531a3894021.png

সবকিছু পূরণ করার পরে, আপনি এইরকম কিছু দেখতে পাবেন, যেখানে "ইভেন্ট যাচাই করুন" (Validate Event) লেখা একটি বাটন থাকবে।

475801f25c3caf26.png

এখানে পৌঁছানোর পর, কমলা রঙে হাইলাইট করা 'VALIDATE EVENT' বোতামটিতে ক্লিক করুন। এটি নিচের বার্তাটি প্রদর্শন করবে, যা নির্দেশ করবে যে ইভেন্টটি বৈধ, এবং আপনি এখন 'SEND TO GA' করার জন্য একটি বোতাম দেখতে পাবেন। এই পর্যায়ে, যদি ইভেন্টটি অবৈধ হিসেবে আসে, তাহলে টুলটি আপনাকে নির্দিষ্ট ফিল্ডটি বলে দেবে যেখানে সমস্যা আছে, এবং আপনি সেটি ঠিক করে আবার চেষ্টা করতে পারবেন।

23e4e6800705b4aa.png

আপনি এখন বোতামটিতে ক্লিক করতে পারেন, এবং এটি GA4-এ একটি টেস্ট ইভেন্ট পাঠাবে।

৪. GA4-এ ইভেন্ট যাচাইকরণ

ইভেন্টটি পাঠানোর পর, আপনি আপনার GA4 অ্যাকাউন্টে গিয়ে রিয়েলটাইম চেক করতে পারেন। সেখানে আপনি ইভেন্টটি দেখতে পাবেন।

994b51ca46bb1973.png

রিয়েলটাইম ভিউ থেকে আসল ইভেন্ট রিপোর্টিং ট্যাবে ইভেন্টগুলো আসতে প্রায় ২৪ ঘণ্টা সময় লাগতে পারে, তাই নিয়মিত ইভেন্ট রিপোর্টিং-এ এটি সঙ্গে সঙ্গে দেখতে না পেলে চিন্তার কোনো কারণ নেই!

আপনি যদি কোনো সমস্যা বা অসঙ্গতির সম্মুখীন হন, তাহলে এখানে মেজারমেন্ট প্রোটোকলের জ্ঞাত সীমাবদ্ধতাগুলো দেখে নেওয়া সহায়ক হতে পারে।

৫. পাইথন স্ক্রিপ্ট তৈরি করা

এখন যেহেতু আপনি এটি পরীক্ষা করে দেখেছেন, আপনি এপিআই কল এবং ইভেন্ট পেলোডটি খতিয়ে দেখে পাইথনে (বা আপনার পছন্দের যেকোনো ভাষায়) একটি অনুরূপ আর্কিটেকচার তৈরি করতে পারেন যা এই কলটি করতে সক্ষম। এরপর আপনি আপনার কাঙ্ক্ষিত ফ্রিকোয়েন্সিতে এটি শিডিউল করতে এবং কার্যকর করতে পারেন। এই অংশের জন্য, আপনি পাইথন সাপোর্ট করে এমন আপনার পছন্দের যেকোনো আইডিই (IDE) ব্যবহার করতে পারেন অথবা একটি গুগল কোলাব নোটবুক ব্যবহার করতে পারেন, যার জন্য আপনার ডিভাইসে কোনো ইনস্টলেশনের প্রয়োজন হয় না।

GA4 ইভেন্ট বিল্ডারে ফিরে গেলে আপনি দেখতে পাবেন যে এন্ডপয়েন্টটি নিম্নরূপ।

POST /mp/collect?firebase_app_id=XXXX&api_secret=XXXX 
HTTP/1.1
Host: www.google-analytics.com

ইভেন্ট পেলোডটি নিম্নরূপ ছিল।

{
  "app_instance_id": XXXX,
  "non_personalized_ads": false,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}

আপনি এই ধরনের কিছু ব্যবহার করে এটিকে পাইথনে অনুবাদ করতে পারেন।

import requests
import json
url = "https://www.google-analytics.com/mp/collect?firebase_app_id=XXXX&api_secret=XXXX"
payload = {
  "app_instance_id": XXXX,
  "non_personalized_ads": False,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}
r = requests.post(url,data=json.dumps(payload),verify=True)
print(r.status_code)

একবার আপনি সঠিক মানগুলো দিয়ে এটি কার্যকর করলে, একইভাবে GA4-এ ইভেন্টটি রিয়েলটাইমে প্রতিফলিত হতে দেখবেন।

৬. অভিনন্দন

অভিনন্দন, আপনি GA4-এ সফলভাবে মেজারমেন্ট প্রোটোকল ব্যবহার করেছেন। এখন আপনি গুগল অ্যানালিটিক্সে আরও অর্থবহ ডেটা পাঠাতে এবং আপনার মার্কেটিং ও বিজনেস অ্যানালিটিক্স উন্নত করতে শক্তিশালী সলিউশন আর্কিটেকচার তৈরি করতে পারেন। এর থেকে সর্বাধিক সুবিধা পেতে, আমরা গুগল অ্যাডসের সাথে সংযোগ স্থাপন এবং এই ইভেন্টগুলোকে কনভার্সন হিসেবে ইম্পোর্ট করার পরামর্শ দিচ্ছি। এ বিষয়ে বিস্তারিত নির্দেশনার জন্য আপনি এই কোডল্যাবের ধাপ ৬ দেখতে পারেন। কনভার্সন ট্র্যাকিংয়ের উদ্দেশ্যে, গুগল অ্যাডস শুধুমাত্র সেই ডেটা দেখাবে যা গত ৬০ দিনের মধ্যে ফায়ারবেস এসডিকে (Firebase SDK) থেকে সংগৃহীত IDFA বা ডিভাইস আইডির সাথে সম্পর্কিত। অনুগ্রহ করে মনে রাখবেন যে এটি এখনও একটি আলফা এপিআই (alpha API) এবং এখানে তালিকাভুক্ত সীমাবদ্ধতাগুলো দেখে নিন, যা সম্পূর্ণ লঞ্চের আগে সমাধান করা উচিত।

আপনি শিখেছেন

  • এমপি কল করার জন্য সঠিক ভেরিয়েবলগুলো কীভাবে সংগ্রহ করবেন
  • টেস্ট ইভেন্টগুলি কীভাবে পাঠাতে এবং যাচাই করতে হয়
  • এমপি কল পাঠানোর জন্য কীভাবে একটি স্ক্রিপ্ট তৈরি করবেন