اعتبار سنجی رویدادها

پلتفرم خود را انتخاب کنید:

پروتکل اندازه‌گیری گوگل آنالیتیکس، حتی اگر یک رویداد ناقص باشد یا پارامترهای مورد نیاز را نداشته باشد، کدهای خطای 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 همین نام بیش از یک بار در درخواست ارائه شده است.