इस गाइड में, Google Analytics के मेज़रमेंट प्रोटोकॉल की मदद से, Google Analytics सर्वर पर वेब और ऐप्लिकेशन स्ट्रीम के इवेंट भेजने का तरीका बताया गया है. इससे, Google Analytics की रिपोर्ट में मेज़रमेंट प्रोटोकॉल के इवेंट देखे जा सकते हैं.
मेज़रमेंट प्रोटोकॉल के अनुरोधों के लिए ज़रूरी आइडेंटिफ़ायर और पैरामीटर, इस बात पर निर्भर करते हैं कि इवेंट वेब स्ट्रीम या ऐप्लिकेशन स्ट्रीम पर भेजे जा रहे हैं.
- वेब स्ट्रीम के लिए (आम तौर पर, gtag.js या Google Tag Manager की मदद से इंस्ट्रूमेंट की जाती हैं), उपयोगकर्ता इंस्टेंस की पहचान करने के लिए, अनुरोध के यूआरएल में
measurement_idऔर JSON बॉडी मेंclient_idका इस्तेमाल किया जाता है.client_id, आपकी वेबसाइट पर Google Analytics टैग से जनरेट किए गए आईडी से मेल खाना चाहिए. - ऐप्लिकेशन स्ट्रीम के लिए (Firebase SDK टूल की मदद से इंस्ट्रूमेंट की जाती हैं), अनुरोध के यूआरएल में
firebase_app_idऔर JSON बॉडी मेंapp_instance_idका इस्तेमाल किया जाता है. ये दोनों, Google Analytics for Firebase SDK टूल से मिलते हैं.
इस गाइड में, दोनों स्थितियों के उदाहरण दिए गए हैं.
स्ट्रीम के टाइप के हिसाब से, अनुरोध के मुख्य कॉम्पोनेंट
| कॉम्पोनेंट | वेब स्ट्रीम (gtag.js/GTM) | ऐप्लिकेशन स्ट्रीम (Firebase) |
|---|---|---|
| डेटा स्ट्रीम का यूआरएल पैरामीटर | measurement_id |
firebase_app_id |
| एपीआई सीक्रेट का यूआरएल पैरामीटर | ज़रूरी है | ज़रूरी है |
| डिवाइस आईडी का JSON बॉडी फ़ील्ड | client_id |
app_instance_id |
वह प्लैटफ़ॉर्म चुनें जिसके बारे में आपको इस गाइड में जानकारी चाहिए:
इस टैब में, आपके सर्वर से इवेंट भेजने के निर्देश दिए गए हैं. ये इवेंट, gtag.js या Google Tag Manager की मदद से टैग की गई वेब स्ट्रीम पर उपयोगकर्ता गतिविधि से जुड़े होते हैं. ध्यान रखें कि इन अनुरोधों में measurement_id और client_id का इस्तेमाल किया जाता है.
ज़रूरी शर्तें
मेज़रमेंट प्रोटोकॉल का इस्तेमाल करके इवेंट भेजने के लिए, आपको अपनी Google Analytics प्रॉपर्टी या Firebase प्रोजेक्ट से जुड़े खास आइडेंटिफ़ायर की ज़रूरत होती है.
एपीआई सीक्रेट
api_secret का इस्तेमाल, आपके अनुरोधों की पुष्टि करने के लिए किया जाता है. इस सीक्रेट को गोपनीय रखना ज़रूरी है.
नया सीक्रेट बनाने के लिए:
- Google Analytics पर जाएं और अपने खाते और प्रॉपर्टी पर जाएं.
- सबसे नीचे बाईं ओर, एडमिन पर क्लिक करें.
- डेटा कलेक्शन और डेटा में बदलाव करना में जाकर, डेटा स्ट्रीम पर क्लिक करें.
- अपनी वेब या ऐप्लिकेशन डेटा स्ट्रीम चुनें.
- मेज़रमेंट प्रोटोकॉल एपीआई सीक्रेट पर क्लिक करें.
- बनाएं पर क्लिक करें.
- सीक्रेट के लिए कोई निकनेम डालें और बनाएं पर क्लिक करें.
सीक्रेट वैल्यू कॉपी करें.
मेज़रमेंट आईडी
measurement_id से, आपकी वेब स्ट्रीम की पहचान होती है. यह आपकी स्ट्रीम आईडी से अलग होता है. यह आम तौर पर G- से शुरू होता है.
अपना मेज़रमेंट आईडी ढूंढने के लिए:
- Google Analytics पर जाएं और अपने खाते और प्रॉपर्टी पर जाएं.
- सबसे नीचे बाईं ओर, एडमिन पर क्लिक करें.
- डेटा कलेक्शन और डेटा में बदलाव करना में जाकर, डेटा स्ट्रीम पर क्लिक करें.
- अपनी वेब स्ट्रीम चुनें.
- स्ट्रीम की जानकारी पैनल से, मेज़रमेंट आईडी कॉपी करें.
अनुरोध का फ़ॉर्मैट तय करना
Google Analytics मेज़रमेंट प्रोटोकॉल, सिर्फ़ एचटीटीपी POST अनुरोधों के साथ काम करता है.
कोई इवेंट भेजने के लिए, इस फ़ॉर्मैट का इस्तेमाल करें:
POST /mp/collect?measurement_id=<var>MEASUREMENT_ID</var>&api_secret=<var>API_SECRET</var> HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
PAYLOAD_DATA
आपको अनुरोध के यूआरएल क्वेरी पैरामीटर में यह जानकारी देनी होगी. इन वैल्यू को ढूंढने या बनाने के तरीके के बारे में जानने के लिए, ज़रूरी शर्तें देखें:
api_secret: अनुरोध की पुष्टि करने के लिए, एपीआई सीक्रेट.measurement_id: आपकी वेब स्ट्रीम से जुड़ा मेज़रमेंट आईडी.
मेज़रमेंट प्रोटोकॉल के लिए, आपको JSON POST बॉडी फ़ॉर्मैट में अनुरोध की बॉडी देनी होगी. यहां एक उदाहरण दिया गया है:
{
"client_id": "CLIENT_ID",
"events": [
{
"name": "login",
"params": {
"method": "Google",
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
}
]
}
किसी खास वेब क्लाइंट इंस्टेंस से इवेंट जोड़ने के लिए, आपको अनुरोध की बॉडी में client_id देना होगा. client_id के बारे में ज़्यादा जानने और इसे वापस पाने का तरीका जानने के लिए, client_id के रेफ़रंस से जुड़ा दस्तावेज़ देखें.
session_start एक रिज़र्व किया गया इवेंट
नाम है. हालांकि, नया session_id बनाने से,
session_start भेजने की ज़रूरत के बिना ही नया सेशन शुरू हो जाता है. सेशन की गिनती करने का तरीका जानें.
इसे आज़माएं
यहां एक उदाहरण दिया गया है. इसका इस्तेमाल करके, एक साथ कई इवेंट भेजे जा सकते हैं. इस उदाहरण में, आपके Google Analytics सर्वर पर tutorial_begin इवेंट और join_group इवेंट भेजा गया है. इसमें user_location फ़ील्ड का इस्तेमाल करके, भौगोलिक
जानकारी शामिल की गई है. साथ ही, device फ़ील्ड का इस्तेमाल करके, डिवाइस की जानकारी शामिल की गई है.
const measurementId = "MEASUREMENT_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
client_id: "CLIENT_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"
}
})
});
टाइमस्टैंप में बदलाव
मेज़रमेंट प्रोटोकॉल, अनुरोध में मौजूद हर इवेंट और उपयोगकर्ता प्रॉपर्टी के लिए, इस सूची में मौजूद पहले टाइमस्टैंप का इस्तेमाल करता है:
- इवेंट या उपयोगकर्ता प्रॉपर्टी का
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 में मेज़रमेंट प्रोटोकॉल इवेंट भेजने पर, ये सीमाएं लागू होती हैं:
हर प्रॉपर्टी के लिए, हर घंटे ज़्यादा से ज़्यादा 10 करोड़ ऐसे अनुरोध भेजे जा सकते हैं जो कन्वर्ज़न से जुड़े नहीं हैं. कोई अनुरोध, कन्वर्ज़न से जुड़ा अनुरोध तब नहीं होता, जब अनुरोध में मौजूद कोई भी इवेंट, ऐसा मुख्य इवेंट न हो जिसके लिए Google Ads में कोई कन्वर्ज़न मौजूद हो. अगर इस सीमा से ज़्यादा अनुरोध भेजे जाते हैं, तो मेज़रमेंट प्रोटोकॉल, उस प्रॉपर्टी के लिए कन्वर्ज़न से जुड़े नहीं सभी अनुरोधों को चुपचाप अनदेखा कर देता है. ऐसा, उस घंटे के बाकी समय के लिए किया जाता है.
अनुरोधों में ज़्यादा से ज़्यादा 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इवेंट का इस्तेमाल करें.
हर इस्तेमाल के उदाहरण के लिए अन्य ज़रूरी शर्तें जानने के लिए, इस्तेमाल के सामान्य उदाहरण देखें.