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

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

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 अनुरोध में एक ही नाम को एक से ज़्यादा बार दिया गया है.