इस गाइड में बताया गया है कि 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 कॉन्फ़िगरेशन फ़ाइलों और ऑब्जेक्ट में, ऐप्लिकेशन आईडी
देखें.
टाइमस्टैंप में बदलाव करना
मेज़रमेंट प्रोटोकॉल, अनुरोध में मौजूद हर इवेंट और उपयोगकर्ता प्रॉपर्टी के लिए, यहां दी गई सूची में मौजूद पहले टाइमस्टैंप का इस्तेमाल करता है:
- इवेंट या उपयोगकर्ता प्रॉपर्टी का
timestamp_micros. - अनुरोध का
timestamp_micros. - वह समय जब मेज़रमेंट प्रोटोकॉल को अनुरोध मिलता है.
यहां दिए गए उदाहरण में, अनुरोध-लेवल का टाइमस्टैंप भेजा जाता है. यह अनुरोध में मौजूद सभी
इवेंट और उपयोगकर्ता
प्रॉपर्टी पर लागू होता है. नतीजतन, मेज़रमेंट प्रोटोकॉल, 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इवेंट के लिएtutorialBeginUnixEpochTimeInMicroscustomer_tierउपयोगकर्ता प्रॉपर्टी के लिएcustomerTierUnixEpochTimeInMicrosjoin_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 में ऐप्लिकेशन के उपयोगकर्ताओं के लिए, खोज ऑडियंस नहीं बनती हैं.
इवेंट, पैरामीटर, और उपयोगकर्ता प्रॉपर्टी के कुछ नाम रिज़र्व किए गए हैं. इनका इस्तेमाल नहीं किया जा सकता. ज़्यादा जानकारी के लिए, रिज़र्व किए गए नाम देखें.
रिज़र्व किए गए नाम
मेज़रमेंट प्रोटोकॉल में कई रिज़र्व किए गए नाम हैं. इनका इस्तेमाल इवेंट, पैरामीटर या उपयोगकर्ता प्रॉपर्टी के लिए नहीं किया जा सकता.
इवेंट के इन नामों को लेकर अक्सर भ्रम की स्थिति बनी रहती है:
screen_view: इस इवेंट का इस्तेमाल सिर्फ़ ऐप्लिकेशन स्ट्रीम के लिए किया जा सकता है. वेब स्ट्रीम के लिए, इसके बजायpage_viewका इस्तेमाल करें.ad_impression: इस इवेंट का इस्तेमाल सिर्फ़ ऐप्लिकेशन स्ट्रीम के लिए किया जा सकता है.in_app_purchase: इस इवेंट का इस्तेमाल सिर्फ़ ऐप्लिकेशन स्ट्रीम के लिए किया जा सकता है. वेब स्ट्रीम के लिए, इसके बजायpurchaseइवेंट का इस्तेमाल करें.
हर इस्तेमाल के उदाहरण की ज़रूरी शर्तें जानने के लिए, इस्तेमाल के सामान्य उदाहरण देखें.