پلاتفرم خود را انتخاب کنید:
«پروتکل اندازهگیری Google Analytics» کدهای خطای HTTP برنمیگرداند، حتی اگر رویدادی قالب نادرست داشته باشد یا پارامترهای الزامی را نداشته باشد. برای اینکه مطمئن شوید رویدادهایتان معتبر است، باید آنها را قبلاز استقرار در محیط تولید دربرابر سرور اعتبارسنجی «پروتکل اندازهگیری» آزمایش کنید.
پساز اینکه تأیید کردید رویدادهایتان بهدرستی ساختاردهی شده است، باید
پیادهسازیتان را درستیسنجی کنید تا مطمئن شوید از کلیدهای صحیح استفاده میکنید.
میتوانید مستقیماً با سرور اعتبارسنجی تماس بگیرید یا از Google Analytics Event Builder استفاده کنید. «سازنده رویداد Google Analytics» به شما امکان میدهد بهصورت تعاملی رویدادها را بسازید و از سرور اعتبارسنجی «پروتکل اندازهگیری» برای اعتبارسنجی آنها استفاده میکند.
این راهنما نحوه ارسال رویدادها به سرور درستیسنجی «پروتکل اندازهگیری برای Google Analytics» و تفسیر پاسخ را شرح میدهد.
ارسال رویدادها برای اعتبارسنجی
تنها تفاوت در درخواست رویدادهای ارسالشده به Measurement Protocol و سرور اعتبارسنجی Measurement Protocol نشانی وب است.
| سرور | نشانی وب |
|---|---|
| Measurement Protocol | /mp/collect |
| سرور اعتبارسنجی Measurement Protocol | /debug/mp/collect |
همه فیلدهای درخواست دیگر یکسان هستند.
رویکرد زیر را برای اعتبارسنجی توصیه میکنیم:
- از بررسیهای اعتبارسنجی دقیق درطول توسعه بااستفاده از یکی از گزینههای زیر استفاده کنید:
- درخواستها را با سازنده رویداد تأیید اعتبار کنید.
- درخواستها را با
validation_behaviorتنظیمشده رویENFORCE_RECOMMENDATIONSبه سرور اعتبارسنجی ارسال کنید.
- در تولید، درخواستها را بدون تنظیم
validation_behaviorارسال کنید تا دادههای ردشده توسط «پروتکل اندازهگیری» به حداقل برسد.
مثالی از رویداد نامعتبر
کد زیر رویداد نامعتبری را نشان میدهد که به سرور اعتبارسنجی Measurement Protocol ارسال میشود:
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 |
نام یکسانی بیش از یک بار در درخواست ارائه شده است. |