التحقّق من صحة الأحداث

اختَر المنصة:

لا يعرض Measurement Protocol في "إحصاءات Google" رموز خطأ HTTP، حتى إذا كان الحدث منسقًا بشكل غير صحيح أو يفتقر إلى مَعلمات مطلوبة. للتأكّد من أنّ أحداثك صالحة، يجب اختبارها باستخدام خادم التحقّق من بنية الأحداث في Measurement Protocol قبل تفعيل مرحلة الإنتاج. بعد التأكّد من أنّ أحداثك منظَّمة بشكلٍ سليم، عليك التحقّق من صحة عملية التنفيذ للتأكّد من أنّك تستخدم المفاتيح الصحيحة.

يمكنك إما استدعاء خادم التحقّق من بنية الأحداث مباشرةً أو استخدام أداة إنشاء الأحداث في "إحصاءات Google". تتيح لك أداة إنشاء الأحداث في "إحصاءات Google" إنشاء الأحداث بشكل تفاعلي، وتستخدم خادم التحقّق من بنية الأحداث في Measurement Protocol للتحقّق من صحتها.

يوضّح هذا الدليل كيفية إرسال الأحداث إلى خادم التحقّق من بنية الأحداث في Measurement Protocol لخدمة "إحصاءات Google" وتفسير الاستجابة.

إرسال الأحداث للتحقّق من صحتها

الفرق الوحيد في طلب الأحداث المُرسَلة إلى Measurement Protocol وخادم التحقق من بنية الأحداث في Measurement Protocol هو عنوان URL.

الخادم عنوان URL
Measurement Protocol /mp/collect
خادم التحقق من بنية الأحداث في Measurement Protocol /debug/mp/collect

جميع حقول الطلبات الأخرى هي نفسها.

ننصحك باتّباع النهج التالي للتحقّق من الصحة:

  • استخدِم عمليات تحقّق صارمة من صحة البيانات أثناء التطوير باستخدام أي من الخيارات التالية:
    • التحقّق من صحة الطلبات باستخدام أداة إنشاء الأحداث
    • أرسِل الطلبات إلى خادم التحقق من بنية الأحداث مع ضبط validation_behavior على ENFORCE_RECOMMENDATIONS.
  • في مرحلة الإنتاج، أرسِل الطلبات بدون ضبط validation_behavior لتقليل البيانات التي يرفضها Measurement Protocol.

مثال على حدث غير صالح

يعرض الرمز التالي حدثًا غير صالح يتم إرساله إلى خادم التحقق من بنية الأحداث في 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: {},
    }]
  })
});

مثال على حدث صالح

يوضّح الرمز التالي حدثًا صالحًا يتم إرساله إلى خادم التحقق من بنية الأحداث في Measurement Protocol. سيؤدي هذا الطلب إلى عرض مصفوفة 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 تم تقديم الاسم نفسه أكثر من مرة في الطلب.