ইভেন্ট যাচাই করা

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

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

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

Google Analytics-এর ভ্যালিডেশন সার্ভারে কীভাবে ইভেন্ট পাঠাতে হয় এবং তার উত্তর কীভাবে বুঝতে হয় তা এই নির্দেশিকায় বর্ণনা করা হয়েছে।

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

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

সার্ভার ইউআরএল
মেজারমেন্ট প্রোটোকল /mp/collect
পরিমাপ প্রোটোকল যাচাইকরণ সার্ভার /debug/mp/collect

অন্যান্য সব অনুরোধ ফিল্ড একই থাকে।

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

  • নিম্নলিখিত বিকল্পগুলির মধ্যে যেকোনও একটি ব্যবহার করে ডেভেলপমেন্টের সময় কঠোর যাচাইকরণ চেক ব্যবহার করুন:
    • ইভেন্ট বিল্ডার ব্যবহার করে অনুরোধ যাচাই করুন।
    • validation_behavior-এর মান ENFORCE_RECOMMENDATIONS সেট করে যাচাইকরণ সার্ভারে অনুরোধ পাঠান।
  • প্রোডাকশনে, Measurement Protocol-এর মাধ্যমে বাতিল করা ডেটা কমানোর জন্য 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 Array<ValidationMessage> যাচাইকরণ মেসেজের একটি অ্যারে।

ValidationMessage

কী ধরন বিবরণ
fieldPath স্ট্রিং ভুল ফিল্ডের পাথ।
description স্ট্রিং সমস্যার বিবরণ।
validationCode ValidationCode সমস্যার সাথে সম্পর্কিত একটি যাচাইকরণ কোড।

ValidationCode

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