इस गाइड में, 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 |
इस गाइड में आपको जिस प्लैटफ़ॉर्म के बारे में जानना है उसे चुनें:
इस टैब में, अपने सर्वर से इवेंट भेजने के निर्देश दिए गए हैं. ये इवेंट, Google Analytics for Firebase SDK का इस्तेमाल करके, ऐप्लिकेशन स्ट्रीम में उपयोगकर्ता गतिविधि से जुड़े होते हैं. ध्यान रखें कि इन अनुरोधों में firebase_app_id और app_instance_id का इस्तेमाल किया जाता है.
ज़रूरी शर्तें
मेज़रमेंट प्रोटोकॉल का इस्तेमाल करके इवेंट भेजने के लिए, आपको अपनी Google Analytics प्रॉपर्टी या Firebase प्रोजेक्ट से कुछ आइडेंटिफ़ायर की ज़रूरत होती है.
एपीआई सीक्रेट
api_secret का इस्तेमाल, आपके अनुरोधों की पुष्टि करने के लिए किया जाता है. इस सीक्रेट को गोपनीय रखना ज़रूरी है.
नया सीक्रेट बनाने के लिए:
- Google Analytics पर जाएं और अपने खाते और प्रॉपर्टी पर जाएं.
- सबसे नीचे बाईं ओर मौजूद, एडमिन पर क्लिक करें.
- डेटा कलेक्शन और डेटा में बदलाव सेक्शन में जाकर, डेटा स्ट्रीम पर क्लिक करें.
- अपनी वेबसाइट या ऐप्लिकेशन की डेटा स्ट्रीम चुनें.
- मेज़रमेंट प्रोटोकॉल एपीआई सीक्रेट पर क्लिक करें.
- बनाएं पर क्लिक करें.
- सीक्रेट के लिए कोई निकनेम डालें और बनाएं पर क्लिक करें.
सीक्रेट वैल्यू को कॉपी करें.
Firebase ऐप्लिकेशन आईडी
firebase_app_id से आपके Firebase ऐप्लिकेशन की पहचान होती है. यह app_instance_id से अलग होता है.
अपना Firebase ऐप्लिकेशन आईडी ढूंढने के लिए:
- Firebase कंसोल में अपना प्रोजेक्ट खोलें.
- प्रोजेक्ट की खास जानकारी के बगल में मौजूद, सेटिंग वाले गियर आइकॉन पर क्लिक करें. इसके बाद, प्रोजेक्ट सेटिंग चुनें.
- सामान्य टैब में, आपके ऐप्लिकेशन सेक्शन पर जाएं.
- कोई iOS या Android ऐप्लिकेशन चुनें.
- ऐप्लिकेशन आईडी की वैल्यू कॉपी करें.
अनुरोध को फ़ॉर्मैट करना
Google Analytics मेज़रमेंट प्रोटोकॉल, सिर्फ़ एचटीटीपी POST अनुरोधों के साथ काम करता है.
इवेंट भेजने के लिए, इस फ़ॉर्मैट का इस्तेमाल करें:
POST /mp/collect?firebase_app_id=<var>FIREBASE_APP_ID</var>&api_secret=<var>API_SECRET</var> HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
PAYLOAD_DATA
आपको अनुरोध यूआरएल के क्वेरी पैरामीटर में यह जानकारी देनी होगी. इन वैल्यू को ढूंढने या बनाने के तरीके के बारे में जानने के लिए, ज़रूरी शर्तें देखें:
api_secret: अनुरोध की पुष्टि करने के लिए एपीआई सीक्रेट.firebase_app_id: यह आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी है.
मेज़रमेंट प्रोटोकॉल के लिए, आपको JSON POST बॉडी फ़ॉर्मैट में अनुरोध का मुख्य हिस्सा देना होगा. यहां एक उदाहरण दिया गया है:
{
"app_instance_id": "APP_INSTANCE_ID",
"events": [
{
"name": "login",
"params": {
"method": "Google",
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
}
]
}
आपको अनुरोध के मुख्य हिस्से में app_instance_id देना होगा, ताकि आपके मोबाइल ऐप्लिकेशन के यूनीक इंस्टॉलेशन की पहचान की जा सके. ध्यान दें कि यह
firebase_app_id से अलग है, जो ऐप्लिकेशन की पहचान करता है. app_instance_id और Firebase SDK टूल का इस्तेमाल करके इसे वापस पाने के तरीके के बारे में ज़्यादा जानने के लिए, app_instance_id के बारे में जानकारी देने वाला दस्तावेज़ देखें.
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उपयोगकर्ता प्रॉपर्टी के लिएcustomerTierUnixEpochTimeInMicrosrequestUnixEpochTimeInMicrosjoin_groupइवेंट औरnewsletter_readerउपयोगकर्ता प्रॉपर्टी के लिए.
{
"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 से इकट्ठा किए गए इवेंट के साथ जोड़े या प्रोसेस किए जाने चाहिए. साथ ही, इन्हें Google Analytics को, क्लाइंट-साइड इवेंट के ओरिजनल टाइमस्टैंप के 48 घंटे के अंदर मिल जाना चाहिए. इसके बाद मिले इवेंट को उम्मीद के मुताबिक प्रोसेस नहीं किया जा सकता. खास तौर पर, कन्वर्ज़न एट्रिब्यूशन जैसे कामों के लिए.
सीमाएं
मेज़रमेंट प्रोटोकॉल इवेंट को Google Analytics पर भेजने से जुड़ी ये सीमाएं लागू होती हैं:
हर प्रॉपर्टी के लिए, हर घंटे ज़्यादा से ज़्यादा 10 करोड़ नॉन-कनवर्ज़न अनुरोध भेजे जा सकते हैं. अगर अनुरोध में मौजूद कोई भी इवेंट ऐसा मुख्य इवेंट नहीं है जिसके लिए Google Ads में कन्वर्ज़न मौजूद है, तो अनुरोध को नॉन-कन्वर्ज़न अनुरोध माना जाता है. अगर आपने इस सीमा को पार कर लिया है, तो मेज़रमेंट प्रोटोकॉल, उस प्रॉपर्टी के लिए बाकी बचे घंटे के दौरान कन्वर्ज़न से जुड़े सभी अनुरोधों को अनदेखा कर देगा.
अनुरोधों में ज़्यादा से ज़्यादा 25 इवेंट हो सकते हैं.
इवेंट में ज़्यादा से ज़्यादा 25 पैरामीटर हो सकते हैं.
इवेंट में ज़्यादा से ज़्यादा 25 उपयोगकर्ता प्रॉपर्टी हो सकती हैं.
उपयोगकर्ता प्रॉपर्टी के नामों में 24 या इससे कम वर्ण होने चाहिए.
उपयोगकर्ता प्रॉपर्टी की वैल्यू में 36 या इससे कम वर्ण होने चाहिए.
इवेंट के नामों में 40 या इससे कम वर्ण होने चाहिए. इनमें सिर्फ़ ऐल्फ़ान्यूमेरिक (अक्षर और अंक) वर्ण और अंडरस्कोर हो सकते हैं. साथ ही, इनकी शुरुआत अक्षर से होनी चाहिए.
पैरामीटर के नामों के साथ-साथ आइटम पैरामीटर में 40 या इससे कम वर्ण होने चाहिए. इनमें सिर्फ़ ऐल्फ़ान्यूमेरिक वर्ण और अंडरस्कोर हो सकते हैं. साथ ही, इनकी शुरुआत अक्षर से होनी चाहिए.
पैरामीटर वैल्यू में 100 या उससे कम वर्ण होने चाहिए. यह सीमा, आइटम की पैरामीटर वैल्यू के लिए भी है. हालांकि, Google Analytics 360 प्रॉपर्टी के लिए, पैरामीटर वैल्यू में 500 या उससे कम वर्ण होने चाहिए.
यह सीमा,
session_idऔरsession_numberपैरामीटर पर लागू नहीं होती. ऐसा तब होता है, जब उनकी वैल्यू Google Tag Manager में मौजूद Analytics सेशन आईडी और Analytics सेशन नंबर बिल्ट-इन वैरिएबल से मिलती हैं.आइटम पैरामीटर में ज़्यादा से ज़्यादा 10 कस्टम पैरामीटर हो सकते हैं.
पोस्ट का साइज़ 130 केबी से कम होना चाहिए.
ऐप्लिकेशन के लिए मेज़रमेंट प्रोटोकॉल के ज़रिए Google Analytics को भेजे गए इवेंट, ऐप्लिकेशन इस्तेमाल करने वाले लोगों के लिए Google Ads में Search Network ऑडियंस की जानकारी नहीं भरते.
इवेंट, पैरामीटर, और उपयोगकर्ता प्रॉपर्टी के कुछ नाम रिज़र्व किए गए हैं. इनका इस्तेमाल नहीं किया जा सकता. ज़्यादा जानकारी के लिए, रिज़र्व किए गए नाम देखें.
रिज़र्व किए गए नाम
मेज़रमेंट प्रोटोकॉल में कई रिज़र्व किए गए नाम होते हैं. इनका इस्तेमाल इवेंट, पैरामीटर या उपयोगकर्ता प्रॉपर्टी के लिए नहीं किया जा सकता.
इवेंट के इन नामों को लेकर अक्सर भ्रम की स्थिति बनी रहती है:
screen_view: इस इवेंट को सिर्फ़ ऐप्लिकेशन स्ट्रीम के लिए अनुमति है. वेब स्ट्रीम के लिए, इसके बजायpage_viewका इस्तेमाल करें.ad_impression: इस इवेंट को सिर्फ़ ऐप्लिकेशन स्ट्रीम के लिए अनुमति है.in_app_purchase: इस इवेंट को सिर्फ़ ऐप्लिकेशन स्ट्रीम के लिए अनुमति है. वेब स्ट्रीम के लिए,purchaseइवेंट का इस्तेमाल करें.
इस्तेमाल के हर उदाहरण की अन्य ज़रूरी शर्तों के लिए, इस्तेमाल के सामान्य उदाहरण देखें.