Google Analytics-এ পরিমাপ প্রোটোকল ইভেন্টগুলি পাঠান

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

এই নির্দেশিকায় আপনি যে প্ল্যাটফর্মটি দেখতে চান তা বেছে নিন:

অনুরোধটি ফরম্যাট করুন

গুগল অ্যানালিটিক্স মেজারমেন্ট প্রোটোকল শুধুমাত্র HTTP POST অনুরোধ সমর্থন করে।

ইভেন্ট পাঠাতে নিম্নলিখিত ফরম্যাটটি ব্যবহার করুন:

POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json

PAYLOAD_DATA

অনুরোধ URL-এ আপনাকে অবশ্যই নিম্নলিখিতগুলি প্রদান করতে হবে:

  • api_secret : গুগল অ্যানালিটিক্স UI-তে তৈরি হওয়া API SECRET

    নতুন সিক্রেট তৈরি করতে, Admin > Data collection and modification > Data streams > আপনার স্ট্রিমটি বেছে নিন > Measurement Protocol API secrets > Create -এ যান।

  • firebase_app_id : ফায়ারবেস অ্যাপ আইডি, যা ফায়ারবেস কনসোলে প্রজেক্ট সেটিংস > সাধারণ > আপনার অ্যাপস > অ্যাপ আইডি-এর অধীনে পাওয়া যায়।

    firebase_app_id এবং app_instance_id এক নয়। firebase_app_id আপনার অ্যাপকে শনাক্ত করে, অপরদিকে app_instance_id অ্যাপটির একটিমাত্র ইনস্টলেশনকে শনাক্ত করে।

মেজারমেন্ট প্রোটোকলের জন্য আপনাকে অবশ্যই JSON POST বডি ফরম্যাটে একটি রিকোয়েস্ট বডি প্রদান করতে হবে। এখানে একটি উদাহরণ দেওয়া হলো:

  {
   "app_instance_id": "APP_INSTANCE_ID",
   "events": [
      {
        "name": "login",
        "params": {
          "method": "Google",
          "session_id": "SESSION_ID",
          "engagement_time_msec": 100
        }
      }
   ]
  }

যদিও session_start একটি সংরক্ষিত ইভেন্টের নাম , একটি নতুন session_id তৈরি করলে session_start পাঠানোর প্রয়োজন হয় না। সেশন কীভাবে গণনা করা হয় তা বুঝুন।

চেষ্টা করে দেখুন

একসাথে একাধিক ইভেন্ট পাঠানোর জন্য এখানে একটি উদাহরণ দেওয়া হলো। এই উদাহরণটি আপনার গুগল অ্যানালিটিক্স সার্ভারে একটি tutorial_begin ইভেন্ট এবং একটি join_group ইভেন্ট পাঠায়, user_location ফিল্ড ব্যবহার করে ভৌগোলিক তথ্য এবং device ফিল্ড ব্যবহার করে ডিভাইসের তথ্য অন্তর্ভুক্ত করে।

const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";

fetch(`https://www.google-analytics.com/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    app_instance_id: "APP_INSTANCE_ID",
    events: [
      {
        name: "tutorial_begin",
        params: {
          "session_id": "SESSION_ID",
          "engagement_time_msec": 100
        }
      },
      {
        name: "join_group",
        params: {
          "group_id": "G_12345",
          "session_id": "SESSION_ID",
          "engagement_time_msec": 150
        }
      }
    ],
    user_location: {
      city: "Mountain View",
      region_id: "US-CA",
      country_id: "US",
      subcontinent_id: "021",
      continent_id: "019"
    },
    device: {
      category: "mobile",
      language: "en",
      screen_resolution: "1280x2856",
      operating_system: "Android",
      operating_system_version: "14",
      model: "Pixel 9 Pro",
      brand: "Google",
      browser: "Chrome",
      browser_version: "136.0.7103.60"
    }
  })
});

firebase_app_id এর ফরম্যাট প্ল্যাটফর্ম-ভিত্তিক। Firebase কনফিগারেশন ফাইল এবং অবজেক্ট- এর অধীনে অ্যাপ্লিকেশন আইডি দেখুন।

টাইমস্ট্যাম্প ওভাররাইড করুন

মেজারমেন্ট প্রোটোকল অনুরোধের প্রতিটি ইভেন্ট এবং ব্যবহারকারীর প্রপার্টির জন্য নিম্নলিখিত তালিকা থেকে খুঁজে পাওয়া প্রথম টাইমস্ট্যাম্পটি ব্যবহার করে:

  1. ইভেন্ট বা ব্যবহারকারী প্রপার্টির timestamp_micros
  2. অনুরোধের timestamp_micros
  3. যে সময়ে পরিমাপ প্রোটোকল অনুরোধটি গ্রহণ করে।

নিম্নলিখিত উদাহরণটি একটি অনুরোধ-স্তরের টাইমস্ট্যাম্প পাঠায় যা অনুরোধের সমস্ত ইভেন্ট এবং ব্যবহারকারীর প্রপার্টিতে প্রযোজ্য। ফলস্বরূপ, মেজারমেন্ট প্রোটোকল tutorial_begin এবং join_group ইভেন্ট এবং customer_tier ব্যবহারকারী প্রপার্টিতে requestUnixEpochTimeInMicros টাইমস্ট্যাম্পটি নির্ধারণ করে।

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin"
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ],
  "user_properties": {
    "customer_tier": {
      "value": "PREMIUM"
    }
  }
}

নিম্নলিখিত উদাহরণটি একটি অনুরোধ-স্তরের টাইমস্ট্যাম্প, একটি ইভেন্ট-স্তরের টাইমস্ট্যাম্প এবং একটি ব্যবহারকারী প্রপার্টি-স্তরের টাইমস্ট্যাম্প পাঠায়। ফলস্বরূপ, মেজারমেন্ট প্রোটোকল নিম্নলিখিত টাইমস্ট্যাম্পগুলি বরাদ্দ করে:

  • tutorial_begin ইভেন্টের জন্য tutorialBeginUnixEpochTimeInMicros
  • customer_tier ব্যবহারকারী প্রপার্টির জন্য customerTierUnixEpochTimeInMicros
  • join_group ইভেন্ট এবং newsletter_reader ইউজার প্রপার্টির জন্য requestUnixEpochTimeInMicros
{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin",
      "timestamp_micros": tutorialBeginUnixEpochTimeInMicros
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ],
  "user_properties": {
    "customer_tier": {
      "value": "PREMIUM",
      "timestamp_micros": customerTierUnixEpochTimeInMicros
    },
    "newsletter_reader": {
      "value": "true"
    }
  }
}

অতীতের ঘটনা এবং ব্যবহারকারীর বৈশিষ্ট্যগুলির জন্য বৈধতা যাচাইয়ের আচরণ

ইভেন্ট এবং ব্যবহারকারীর বৈশিষ্ট্যগুলো ৭২ ঘন্টা পর্যন্ত পূর্ববর্তী তারিখের করা যেতে পারে। যদি timestamp_micros মান ৭২ ঘন্টারও আগের হয়, তাহলে মেজারমেন্ট প্রোটোকল নিম্নলিখিতভাবে ইভেন্ট বা ব্যবহারকারীর বৈশিষ্ট্যটি গ্রহণ বা প্রত্যাখ্যান করে:

  • যদি validation_behavior সেট করা না থাকে বা RELAXED এ সেট করা থাকে, তাহলে Measurement Protocol ইভেন্ট বা ইউজার প্রপার্টিটি গ্রহণ করে, কিন্তু এর টাইমস্ট্যাম্পকে ৭২ ঘণ্টা আগের সময়ে ওভাররাইড করে দেয়।
  • যদি validation_behavior ENFORCE_RECOMMENDATIONS এ সেট করা থাকে, তাহলে Measurement Protocol ইভেন্ট বা ব্যবহারকারীর প্রপার্টিটি প্রত্যাখ্যান করে।

মেজারমেন্ট প্রোটোকল ব্যবহার করে পাঠানো যে ইভেন্টগুলো Google Analytics for Firebase SDK বা gtag.js দ্বারা সংগৃহীত ইভেন্টগুলোর সাথে যুক্ত বা প্রক্রিয়াজাত করার জন্য পাঠানো হয়, সেগুলো মূল ক্লায়েন্ট-সাইড ইভেন্টের টাইমস্ট্যাম্পের ৪৮ ঘণ্টার মধ্যে Google Analytics-এর কাছে পৌঁছানো উচিত। এর পরে প্রাপ্ত ইভেন্টগুলো প্রত্যাশিতভাবে প্রক্রিয়াজাত নাও হতে পারে, বিশেষ করে কনভার্সন অ্যাট্রিবিউশনের মতো উদ্দেশ্যে।

সীমাবদ্ধতা

গুগল অ্যানালিটিক্সে মেজারমেন্ট প্রোটোকল ইভেন্ট পাঠানোর ক্ষেত্রে নিম্নলিখিত সীমাবদ্ধতাগুলো প্রযোজ্য:

  • একটি অনুরোধে সর্বোচ্চ ২৫টি ইভেন্ট থাকতে পারে।
  • একটি ইভেন্টে সর্বাধিক ২৫টি প্যারামিটার থাকতে পারে।
  • একটি ইভেন্টে সর্বাধিক ২৫টি ব্যবহারকারী বৈশিষ্ট্য থাকতে পারে।
  • ব্যবহারকারীর প্রপার্টির নাম অবশ্যই ২৪ অক্ষর বা তার কম হতে হবে।
  • ব্যবহারকারীর প্রপার্টির মান অবশ্যই ৩৬ অক্ষর বা তার কম হতে হবে।
  • অনুষ্ঠানের নাম অবশ্যই ৪০ অক্ষর বা তার কম হতে হবে, এতে শুধুমাত্র আলফানিউমেরিক অক্ষর ও আন্ডারস্কোর থাকতে পারবে এবং নামটি অবশ্যই একটি বর্ণ দিয়ে শুরু হতে হবে।
  • আইটেম প্যারামিটার সহ প্যারামিটারের নাম অবশ্যই ৪০ অক্ষর বা তার কম হতে হবে, এতে শুধুমাত্র আলফানিউমেরিক অক্ষর এবং আন্ডারস্কোর থাকতে পারবে এবং এটি অবশ্যই একটি আলফাবেটিক অক্ষর দিয়ে শুরু হতে হবে।
  • একটি স্ট্যান্ডার্ড গুগল অ্যানালিটিক্স প্রপার্টির জন্য আইটেম প্যারামিটার ভ্যালু সহ প্যারামিটার ভ্যালুগুলো অবশ্যই ১০০ অক্ষর বা তার কম হতে হবে এবং একটি গুগল অ্যানালিটিক্স ৩৬০ প্রপার্টির জন্য তা ৫০০ অক্ষর বা তার কম হতে হবে।

    এই সীমাবদ্ধতা session_id এবং session_number প্যারামিটারগুলোর ক্ষেত্রে প্রযোজ্য নয়, যখন তাদের মান Google Tag Manager-এর সংশ্লিষ্ট Analytics Session ID এবং Analytics Session Number বিল্ট-ইন ভেরিয়েবলগুলো থেকে সরবরাহ করা হয়।

  • আইটেমের প্যারামিটারগুলিতে সর্বোচ্চ ১০টি কাস্টম প্যারামিটার থাকতে পারে।

  • পোস্ট বডির আকার অবশ্যই ১৩০ কিলোবাইটের চেয়ে ছোট হতে হবে।

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

প্রতিটি ইউজ কেসের অতিরিক্ত প্রয়োজনীয়তার জন্য, কমন ইউজ কেসেস দেখুন।