ঘটনা যাচাই

আপনার প্ল্যাটফর্ম বেছে নিন:

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

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

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

যাচাইকরণের জন্য ইভেন্ট পাঠান

মেজারমেন্ট প্রোটোকল এবং মেজারমেন্ট প্রোটোকল ভ্যালিডেশন সার্ভারে পাঠানো ইভেন্টের অনুরোধের মধ্যে একমাত্র পার্থক্য হলো ইউআরএল (URL)।

সার্ভার ইউআরএল
পরিমাপ প্রোটোকল /mp/collect
পরিমাপ প্রোটোকল বৈধতা সার্ভার / debug /mp/collect

অনুরোধের অন্যান্য সমস্ত ক্ষেত্র একই।

যাচাইকরণের জন্য আমরা নিম্নলিখিত পদ্ধতিটি সুপারিশ করি:

  • ডেভেলপমেন্টের সময় নিম্নলিখিত বিকল্পগুলির যেকোনো একটি ব্যবহার করে কঠোর যাচাইকরণ পরীক্ষা করুন:
    • ইভেন্ট বিল্ডার ব্যবহার করে অনুরোধগুলো যাচাই করুন।
    • validation_behavior ENFORCE_RECOMMENDATIONS এ সেট করে ভ্যালিডেশন সার্ভারে অনুরোধ পাঠান।
  • প্রোডাকশনে, মেজারমেন্ট প্রোটোকল দ্বারা প্রত্যাখ্যাত ডেটার পরিমাণ কমাতে validation_behavior সেট না করে রিকোয়েস্ট পাঠান।

একটি অবৈধ ইভেন্টের উদাহরণ

নিম্নলিখিত কোডটি দেখাচ্ছে যে মেজারমেন্ট প্রোটোকল ভ্যালিডেশন সার্ভারে একটি অবৈধ ইভেন্ট পাঠানো হচ্ছে:

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

fetch(`https://www.google-analytics.com/debug/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",
    validation_behavior: "ENFORCE_RECOMMENDATIONS",
    events: [{
      // Event names must start with an alphabetic character.
      name: "_badEventName",
      params: {},
    }]
  })
});

একটি বৈধ ঘটনার উদাহরণ

নিম্নলিখিত কোডটি মেজারমেন্ট প্রোটোকল ভ্যালিডেশন সার্ভারে একটি বৈধ ইভেন্ট পাঠানোর প্রক্রিয়া দেখাচ্ছে। এই অনুরোধটির ফলে প্রতিক্রিয়ায় একটি খালি validationMessages অ্যারে পাওয়া যাবে, যেমনটি ভ্যালিডেশন প্রতিক্রিয়া বিভাগে দেখানো হয়েছে।

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

fetch(`https://www.google-analytics.com/debug/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",
    validation_behavior: "ENFORCE_RECOMMENDATIONS",
    events: [{
      name: "level_up",
      params: {
        level: 2,
        character: "MyHero"
      },
    }]
  })
});

বৈধতা প্রতিক্রিয়া

এখানে অবৈধ ইভেন্টের উদাহরণের ক্ষেত্রে ভ্যালিডেশন সার্ভারের প্রতিক্রিয়া দেওয়া হলো।

{
  "validationMessages": [
    {
      "fieldPath": "events",
      "description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
      "validationCode": "NAME_INVALID"
    }
  ]
}

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

{
  "validationMessages": []
}

প্রতিক্রিয়া

চাবি প্রকার বর্ণনা
validationMessages অ্যারে< বৈধতা বার্তা > যাচাইকরণ বার্তাগুলির একটি অ্যারে।

বৈধতা বার্তা

চাবি প্রকার বর্ণনা
fieldPath স্ট্রিং ফিল্ডটির পথটি অবৈধ ছিল।
description স্ট্রিং ত্রুটিটির বিবরণ।
validationCode বৈধতা কোড একটি যাচাইকরণ কোড যা ত্রুটির সাথে সঙ্গতিপূর্ণ।

বৈধতা কোড

মূল্য বর্ণনা
VALUE_INVALID fieldPath এর জন্য প্রদত্ত মানটি অবৈধ ছিল। সীমাবদ্ধতাগুলো দেখুন।
VALUE_REQUIRED fieldPath এর জন্য প্রয়োজনীয় মান প্রদান করা হয়নি।
NAME_INVALID প্রদত্ত নামটি অবৈধ। সীমাবদ্ধতাগুলো দেখুন।
NAME_RESERVED প্রদত্ত নামটি সংরক্ষিত নামগুলোর মধ্যে একটি ছিল। সংরক্ষিত নামসমূহ দেখুন।
VALUE_OUT_OF_BOUNDS প্রদত্ত মানটি অনেক বেশি ছিল। সীমাবদ্ধতাগুলো দেখুন।
EXCEEDED_MAX_ENTITIES অনুরোধটিতে অনেক বেশি প্যারামিটার ছিল। সীমাবদ্ধতাগুলো দেখুন।
NAME_DUPLICATED অনুরোধপত্রে একই নাম একাধিকবার উল্লেখ করা হয়েছিল।