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

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

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