इवेंट की पुष्टि करें

अपना प्लैटफ़ॉर्म चुनें:

Google Analytics मेज़रमेंट प्रोटोकॉल, HTTP गड़बड़ी के कोड नहीं दिखाता है. भले ही, कोई इवेंट गलत तरीके से बनाया गया हो या उसमें ज़रूरी पैरामीटर मौजूद न हों. इवेंट मान्य हैं या नहीं, इसकी पुष्टि करने के लिए, उन्हें प्रोडक्शन में डिप्लॉय करने से पहले, मेज़रमेंट प्रोटोकॉल के वैलिडेशन सर्वर पर उनकी जांच करें. यह पुष्टि करने के बाद कि आपके इवेंट सही तरीके से स्ट्रक्चर्ड हैं, आपको लागू करने की पुष्टि करनी चाहिए. इससे यह पक्का किया जा सकेगा कि सही कुंजियों का इस्तेमाल किया जा रहा है.

वैलिडेशन सर्वर को सीधे कॉल किया जा सकता है या Google Analytics इवेंट बिल्डर का इस्तेमाल किया जा सकता है. Google Analytics इवेंट बिल्डर की मदद से, इंटरैक्टिव तरीके से इवेंट बनाए जा सकते हैं. साथ ही, इवेंट की पुष्टि करने के लिए, मेज़रमेंट प्रोटोकॉल वैलिडेशन सर्वर का इस्तेमाल किया जा सकता है.

इस गाइड में, Google Analytics के वैलिडेशन सर्वर के लिए, मेज़रमेंट प्रोटोकॉल को इवेंट भेजने और रिस्पॉन्स को समझने का तरीका बताया गया है.

पुष्टि के लिए इवेंट भेजना

मेज़रमेंट प्रोटोकॉल और मेज़रमेंट प्रोटोकॉल के वैलिडेशन सर्वर को भेजे गए इवेंट के अनुरोध में सिर्फ़ यूआरएल का अंतर होता है.

सर्वर URL
मेज़रमेंट प्रोटोकॉल /mp/collect
मेज़रमेंट प्रोटोकॉल का वैलिडेशन सर्वर /debug/mp/collect

अन्य सभी अनुरोध फ़ील्ड एक जैसे हैं.

हमारा सुझाव है कि पुष्टि करने के लिए यह तरीका अपनाएं:

  • डेवलपमेंट के दौरान, पुष्टि करने के लिए सख्त जांच का इस्तेमाल करें. इसके लिए, इनमें से किसी एक विकल्प का इस्तेमाल करें:
    • इवेंट बिल्डर की मदद से अनुरोधों की पुष्टि करें.
    • 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 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 अनुरोध में एक ही नाम को एक से ज़्यादा बार दिया गया है.