پلتفرم خود را انتخاب کنید:
پروتکل اندازهگیری گوگل آنالیتیکس، حتی اگر یک رویداد ناقص باشد یا پارامترهای مورد نیاز را نداشته باشد، کدهای خطای HTTP را برنمیگرداند. برای تأیید اعتبار رویدادهای خود، باید آنها را قبل از استقرار در محیط عملیاتی، در برابر سرور اعتبارسنجی پروتکل اندازهگیری آزمایش کنید. پس از تأیید صحت ساختار رویدادهای خود، باید پیادهسازی خود را تأیید کنید تا مطمئن شوید که از کلیدهای صحیح استفاده میکنید.
شما میتوانید سرور اعتبارسنجی را مستقیماً فراخوانی کنید، یا از سازنده رویداد گوگل آنالیتیکس استفاده کنید. سازنده رویداد گوگل آنالیتیکس به شما امکان میدهد رویدادها را به صورت تعاملی بسازید و از سرور اعتبارسنجی پروتکل اندازهگیری برای اعتبارسنجی آنها استفاده میکند.
این راهنما نحوه ارسال رویدادها به پروتکل اندازهگیری برای سرور اعتبارسنجی گوگل آنالیتیکس ۴ و تفسیر پاسخ را شرح میدهد.
ارسال رویدادها برای اعتبارسنجی
تنها تفاوت در درخواست رویدادهای ارسال شده به پروتکل اندازهگیری و سرور اعتبارسنجی پروتکل اندازهگیری، URL است.
| سرور | آدرس اینترنتی |
|---|---|
| پروتکل اندازهگیری | /mp/collect |
| سرور اعتبارسنجی پروتکل اندازهگیری | / debug /mp/collect |
تمام فیلدهای درخواست دیگر یکسان هستند.
ما روش زیر را برای اعتبارسنجی توصیه میکنیم:
- با استفاده از یکی از گزینههای زیر، از بررسیهای اعتبارسنجی دقیق در طول توسعه استفاده کنید:
- درخواستها را با سازنده رویداد (Event Builder) اعتبارسنجی کنید.
- درخواستها را به سرور اعتبارسنجی ارسال کنید و
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 | آرایه <ValidationMessage> | آرایهای از پیامهای اعتبارسنجی. |
پیام اعتبارسنجی
| کلید | نوع | توضیحات |
|---|---|---|
fieldPath | رشته | راه به میدانی که باطل بود. |
description | رشته | شرح خطا. |
validationCode | کد اعتبارسنجی | یک کد اعتبارسنجی که با خطا مطابقت دارد. |
کد اعتبارسنجی
| ارزش | توضیحات |
|---|---|
VALUE_INVALID | مقدار ارائه شده برای fieldPath نامعتبر است. به محدودیتها مراجعه کنید. |
VALUE_REQUIRED | مقدار مورد نیاز برای fieldPath ارائه نشده است. |
NAME_INVALID | نام ارائه شده نامعتبر است. به محدودیتها مراجعه کنید. |
NAME_RESERVED | نام ارائه شده یکی از نامهای رزرو شده بود. به نامهای رزرو شده مراجعه کنید. |
VALUE_OUT_OF_BOUNDS | مقدار ارائه شده خیلی زیاد بود. به محدودیتها مراجعه کنید. |
EXCEEDED_MAX_ENTITIES | پارامترهای زیادی در درخواست وجود داشت. به محدودیتها مراجعه کنید. |
NAME_DUPLICATED | همین نام بیش از یک بار در درخواست ارائه شده است. |