Google Analytics को मेज़रमेंट प्रोटोकॉल इवेंट भेजें

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

वह प्लैटफ़ॉर्म चुनें जिसके बारे में आपको इस गाइड में जानकारी चाहिए:

अनुरोध का फ़ॉर्मैट सेट करना

Google Analytics का मेज़रमेंट प्रोटोकॉल, सिर्फ़ एचटीटीपी POST अनुरोधों के साथ काम करता है.

कोई इवेंट भेजने के लिए, इस फ़ॉर्मैट का इस्तेमाल करें:

POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json

PAYLOAD_DATA

अनुरोध के यूआरएल में, आपको यह जानकारी देनी होगी:

  • api_secret: Google Analytics के यूज़र इंटरफ़ेस (यूआई) में जनरेट किया गया एपीआई सीक्रेट.

    नया सीक्रेट बनाने के लिए, एडमिन > डेटा कलेक्शन और डेटा में बदलाव > डेटा स्ट्रीम > अपनी स्ट्रीम चुनें > मेज़रमेंट प्रोटोकॉल एपीआई सीक्रेट > बनाएं पर जाएं.

  • firebase_app_id: Firebase ऐप्लिकेशन आईडी. यह आईडी, Firebase कंसोल में प्रोजेक्ट सेटिंग > सामान्य > आपके ऐप्लिकेशन > ऐप्लिकेशन आईडी में जाकर देखा जा सकता है.

    firebase_app_id, app_instance_id से अलग होता है. firebase_app_id से आपके ऐप्लिकेशन की पहचान होती है, जबकि app_instance_id से ऐप्लिकेशन के किसी एक इंस्टॉलेशन की पहचान होती है.

मेज़रमेंट प्रोटोकॉल के लिए, आपको JSON POST बॉडी फ़ॉर्मैट में अनुरोध की बॉडी देनी होगी. यहां एक उदाहरण दिया गया है:

  {
   "app_instance_id": "APP_INSTANCE_ID",
   "events": [
      {
        "name": "login",
        "params": {
          "method": "Google",
          "session_id": "SESSION_ID",
          "engagement_time_msec": 100
        }
      }
   ]
  }

session_start एक रिज़र्व किया गया इवेंट नेम है. हालांकि, नया session_id बनाने पर, session_start भेजने की ज़रूरत नहीं होती. इससे एक नया सेशन शुरू होता है. सेशन की गिनती के तरीके के बारे में जानें.

इसे आज़माएं

यहां एक उदाहरण दिया गया है, जिसका इस्तेमाल एक साथ कई इवेंट भेजने के लिए किया जा सकता है. इस उदाहरण में, tutorial_begin इवेंट और join_group इवेंट को Google Analytics के सर्वर पर भेजा जाता है. इसमें भौगोलिक जानकारी को user_location फ़ील्ड का इस्तेमाल करके शामिल किया जाता है. साथ ही, डिवाइस की जानकारी को device फ़ील्ड का इस्तेमाल करके शामिल किया जाता है.

const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";

fetch(`https://www.google-analytics.com/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",
    events: [
      {
        name: "tutorial_begin",
        params: {
          "session_id": "SESSION_ID",
          "engagement_time_msec": 100
        }
      },
      {
        name: "join_group",
        params: {
          "group_id": "G_12345",
          "session_id": "SESSION_ID",
          "engagement_time_msec": 150
        }
      }
    ],
    user_location: {
      city: "Mountain View",
      region_id: "US-CA",
      country_id: "US",
      subcontinent_id: "021",
      continent_id: "019"
    },
    device: {
      category: "mobile",
      language: "en",
      screen_resolution: "1280x2856",
      operating_system: "Android",
      operating_system_version: "14",
      model: "Pixel 9 Pro",
      brand: "Google",
      browser: "Chrome",
      browser_version: "136.0.7103.60"
    }
  })
});

firebase_app_id का फ़ॉर्मैट, प्लैटफ़ॉर्म के हिसाब से अलग-अलग होता है. Firebase कॉन्फ़िगरेशन फ़ाइलों और ऑब्जेक्ट में, ऐप्लिकेशन आईडी देखें.

टाइमस्टैंप में बदलाव करना

मेज़रमेंट प्रोटोकॉल, अनुरोध में मौजूद हर इवेंट और उपयोगकर्ता प्रॉपर्टी के लिए, यहां दी गई सूची में मौजूद पहले टाइमस्टैंप का इस्तेमाल करता है:

  1. इवेंट या उपयोगकर्ता प्रॉपर्टी का timestamp_micros.
  2. अनुरोध का timestamp_micros.
  3. वह समय जब मेज़रमेंट प्रोटोकॉल को अनुरोध मिलता है.

यहां दिए गए उदाहरण में, अनुरोध-लेवल का टाइमस्टैंप भेजा जाता है. यह टाइमस्टैंप, अनुरोध में मौजूद सभी इवेंट और उपयोगकर्ता प्रॉपर्टी पर लागू होता है. इसके नतीजे के तौर पर, मेज़रमेंट प्रोटोकॉल, tutorial_begin और join_group इवेंट के साथ-साथ customer_tier उपयोगकर्ता प्रॉपर्टी को requestUnixEpochTimeInMicros का टाइमस्टैंप असाइन करता है.

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin"
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ],
  "user_properties": {
    "customer_tier": {
      "value": "PREMIUM"
    }
  }
}

यहां दिए गए उदाहरण में, अनुरोध-लेवल का टाइमस्टैंप, इवेंट-लेवल का टाइमस्टैंप, और उपयोगकर्ता प्रॉपर्टी-लेवल का टाइमस्टैंप भेजा जाता है. इसके नतीजे के तौर पर, मेज़रमेंट प्रोटोकॉल ये टाइमस्टैंप असाइन करता है:

  • tutorial_begin इवेंट के लिए tutorialBeginUnixEpochTimeInMicros
  • customer_tier उपयोगकर्ता प्रॉपर्टी के लिए customerTierUnixEpochTimeInMicros
  • join_group इवेंट और newsletter_reader उपयोगकर्ता प्रॉपर्टी के लिए requestUnixEpochTimeInMicros.
{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin",
      "timestamp_micros": tutorialBeginUnixEpochTimeInMicros
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ],
  "user_properties": {
    "customer_tier": {
      "value": "PREMIUM",
      "timestamp_micros": customerTierUnixEpochTimeInMicros
    },
    "newsletter_reader": {
      "value": "true"
    }
  }
}

पिछले इवेंट और उपयोगकर्ता प्रॉपर्टी के लिए, पुष्टि करने का तरीका

इवेंट और उपयोगकर्ता प्रॉपर्टी को 72 घंटे पहले की तारीख पर सेट किया जा सकता है. अगर timestamp_micros की वैल्यू, 72 घंटे पहले से भी पुरानी है, तो मेज़रमेंट प्रोटोकॉल, इवेंट या उपयोगकर्ता प्रॉपर्टी को इस तरह स्वीकार या अस्वीकार करता है:

  • अगर validation_behavior सेट नहीं है या इसे RELAXED पर सेट किया गया है, तो मेज़रमेंट प्रोटोकॉल, इवेंट या उपयोगकर्ता प्रॉपर्टी को स्वीकार कर लेता है. हालांकि, इसके टाइमस्टैंप को बदलकर 72 घंटे पहले का कर देता है.
  • अगर validation_behavior को ENFORCE_RECOMMENDATIONS पर सेट किया गया है, तो मेज़रमेंट प्रोटोकॉल, इवेंट या उपयोगकर्ता प्रॉपर्टी को अस्वीकार कर देता है.

मेज़रमेंट प्रोटोकॉल का इस्तेमाल करके भेजे गए इवेंट, Google Analytics for Firebase SDK या gtag.js से इकट्ठा किए गए इवेंट के साथ जोड़े या प्रोसेस किए जाने चाहिए. इन्हें, क्लाइंट-साइड के मूल इवेंट के टाइमस्टैंप के 48 घंटों के अंदर Google Analytics को मिल जाना चाहिए. अगर इवेंट, इस समय के बाद मिलते हैं, तो हो सकता है कि उन्हें उम्मीद के मुताबिक प्रोसेस न किया जाए. खास तौर पर, कन्वर्ज़न एट्रिब्यूशन जैसे उद्देश्यों के लिए.

सीमाएं

Google Analytics में, मेज़रमेंट प्रोटोकॉल के इवेंट भेजने पर ये सीमाएं लागू होती हैं:

  • अनुरोधों में ज़्यादा से ज़्यादा 25 इवेंट हो सकते हैं.
  • इवेंट में ज़्यादा से ज़्यादा 25 पैरामीटर हो सकते हैं.
  • इवेंट में ज़्यादा से ज़्यादा 25 उपयोगकर्ता प्रॉपर्टी हो सकती हैं.
  • उपयोगकर्ता प्रॉपर्टी के नामों में 24 या इससे कम वर्ण होने चाहिए.
  • उपयोगकर्ता प्रॉपर्टी की वैल्यू में 36 या इससे कम वर्ण होने चाहिए.
  • इवेंट के नामों में 40 या इससे कम वर्ण होने चाहिए. इनमें सिर्फ़ ऐल्फ़ा-न्यूमेरिक वर्ण और अंडरस्कोर हो सकते हैं. साथ ही, इनकी शुरुआत अक्षर से होनी चाहिए.
  • पैरामीटर के नामों के साथ-साथ आइटम पैरामीटर में 40 या इससे कम वर्ण होने चाहिए. इनमें सिर्फ़ ऐल्फ़ा-न्यूमेरिक वर्ण और अंडरस्कोर हो सकते हैं. साथ ही, इनकी शुरुआत अक्षर से होनी चाहिए.
  • पैरामीटर वैल्यू के साथ-साथ आइटम की पैरामीटर वैल्यू, Google Analytics की स्टैंडर्ड प्रॉपर्टी के लिए 100 या इससे कम वर्ण की होनी चाहिए. वहीं, Google Analytics 360 प्रॉपर्टी के लिए, यह सीमा 500 या इससे कम वर्ण की होनी चाहिए.

    यह सीमा, session_id और session_number पैरामीटर पर लागू नहीं होती. ऐसा तब होता है, जब इनकी वैल्यू, Google Tag Manager में Analytics सेशन आईडी और Analytics सेशन नंबर की इन-बिल्ट वैरिएबल से मिलती हैं.

  • आइटम पैरामीटर में ज़्यादा से ज़्यादा 10 कस्टम पैरामीटर हो सकते हैं.

  • पोस्ट की बॉडी का साइज़ 130 केबी से कम होना चाहिए.

  • Google Analytics में भेजे गए, ऐप्लिकेशन के मेज़रमेंट प्रोटोकॉल के इवेंट से, Google Ads में ऐप्लिकेशन के उपयोगकर्ताओं के लिए, खोज ऑडियंस नहीं बनती हैं.

  • इवेंट, पैरामीटर, और उपयोगकर्ता प्रॉपर्टी के कुछ नाम रिज़र्व किए गए हैं. इनका इस्तेमाल नहीं किया जा सकता. ज़्यादा जानकारी के लिए, रिज़र्व किए गए नाम देखें.

रिज़र्व किए गए नाम

मेज़रमेंट प्रोटोकॉल में कई रिज़र्व किए गए नाम हैं. इनका इस्तेमाल इवेंट, पैरामीटर या उपयोगकर्ता प्रॉपर्टी के लिए नहीं किया जा सकता.

इवेंट के ये नाम, अक्सर भ्रम की वजह बनते हैं:

हर इस्तेमाल के उदाहरण के लिए, ज़रूरी शर्तें जानने के लिए, इस्तेमाल के सामान्य उदाहरण देखें.