আপনার প্ল্যাটফর্ম বেছে নিন:
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 |
অনুরোধে একই নাম একাধিকবার উল্লেখ করা হয়েছে। |