सर्वर साइड टैगिंग के बारे में जानकारी लेख में, आपको Tag Manager में सर्वर साइड टैगिंग के बारे में खास जानकारी मिली है. आपको पता चला है कि क्लाइंट क्या होते हैं और वे क्या करते हैं: क्लाइंट को आपके उपयोगकर्ताओं के डिवाइसों से इवेंट डेटा मिलता है और बाकी कंटेनर के इस्तेमाल के लिए उसे अडैप्ट करता है. इस लेख में, उस डेटा को सर्वर साइड टैग में प्रोसेस करने का तरीका बताया गया है.
सर्वर कंटेनर में, टैग को आपके क्लाइंट से आने वाले इवेंट का डेटा मिलता है, उसे पूरी तरह से बदला जाता है, और फिर उसे इकट्ठा करने और विश्लेषण करने के लिए वापस भेजा जाता है. टैग, डेटा को जहां चाहें वहां भेज सकते हैं. जब तक डेस्टिनेशन एचटीटीपी अनुरोध स्वीकार करता है, तब तक वह सर्वर कंटेनर से भी डेटा स्वीकार कर सकता है.
सर्वर कंटेनर में तीन टैग पहले से मौजूद होते हैं. इन्हें बिना किसी पसंद के मुताबिक कॉन्फ़िगरेशन के इस्तेमाल किया जा सकता है:
- Google Analytics 4
- एचटीटीपी अनुरोध
अगर आपको Google Analytics के बजाय कहीं और डेटा भेजना है या आपको एचटीटीपी अनुरोध टैग से मिलने वाली सुविधाओं से ज़्यादा सुविधाएं चाहिए, तो आपको किसी दूसरे टैग का इस्तेमाल करना होगा. कम्यूनिटी टेंप्लेट गैलरी में आपको और टैग मिल सकते हैं. इसके अलावा, आपके पास खुद टैग लिखने का विकल्प भी होता है. इस ट्यूटोरियल में, सर्वर कंटेनर के लिए खुद के टैग लिखने की बुनियादी बातें बताई जाएंगी.
मकसद
- जानें कि इवेंट डेटा पढ़ने, एचटीटीपी अनुरोध भेजने, और ब्राउज़र में कुकी सेट करने के लिए किन एपीआई का इस्तेमाल करना है.
- अपने टैग के कॉन्फ़िगरेशन विकल्पों को डिज़ाइन करने के सबसे सही तरीके जानें.
- उपयोगकर्ता के हिसाब से इकट्ठा किए गए डेटा और अपने-आप इकट्ठा होने वाले डेटा के बीच का अंतर जानें. साथ ही, यह भी जानें कि यह फ़र्क़ क्यों ज़रूरी है.
- सर्वर कंटेनर में टैग की भूमिका के बारे में जानें. जानें कि टैग को क्या करना चाहिए और क्या नहीं.
- जानें कि कम्यूनिटी टेंप्लेट गैलरी में टैग टेंप्लेट कब सबमिट करना चाहिए.
ज़रूरी शर्तें
- डिप्लॉय किया गया सर्वर कंटेनर
- Tag Manager, सर्वर कंटेनर, और क्लाइंट, टैग, ट्रिगर, और वैरिएबल जैसे बुनियादी कॉन्सेप्ट के बारे में जानकारी
- टैग और वैरिएबल के लिए, टेंप्लेट लिखने की बुनियादी बातों के बारे में जानकारी
Baz Analytics टैग
इस ट्यूटोरियल में, एक ऐसा टैग बनाया जाएगा जो Baz Analytics नाम की सेवा को मेज़रमेंट डेटा भेजता है.
Baz Analytics, विश्लेषण से जुड़ी एक आसान और काल्पनिक सेवा है. यह एचटीटीपी जीईटी अनुरोधों के ज़रिए, https://example.com/baz_analytics
को डेटा डालता है. इसमें ये पैरामीटर होते हैं:
पैरामीटर | उदाहरण | ब्यौरा |
---|---|---|
आईडी | BA-1234 | आपके Baz Analytics खाते का आईडी. |
en | क्लिक | ईवेंट का नाम. |
l | https://www.google.com/search?q=sgtm
|
उस पेज का यूआरएल जहां इवेंट हुआ. |
u | 2384294892 | कार्रवाई करने वाले उपयोगकर्ता का आईडी. इसका इस्तेमाल, एक से ज़्यादा ऐक्शन को एक ही उपयोगकर्ता से जोड़ने के लिए किया जाता है. |
टैग कॉन्फ़िगरेशन
सबसे पहले, टैग टेंप्लेट बनाएं. अपने कंटेनर के टेंप्लेट सेक्शन पर जाएं और टैग टेंप्लेट सेक्शन में, नया पर क्लिक करें. अपने टैग में कोई नाम और जानकारी जोड़ें.
इसके बाद, टेंप्लेट एडिटर के फ़ील्ड सेक्शन में जाएं और अपने टैग के लिए अलग-अलग कॉन्फ़िगरेशन विकल्प जोड़ें. अगला सवाल यह है कि आपको कौनसे विकल्प चाहिए? टैग बनाने के लिए, ये तीन तरीके अपनाए जा सकते हैं:
- कुल कॉन्फ़िगरेशन: हर पैरामीटर के लिए एक कॉन्फ़िगरेशन फ़ील्ड जोड़ें. उपयोगकर्ता को साफ़ तौर पर सब कुछ सेट करने की ज़रूरत होती है.
- कोई कॉन्फ़िगरेशन नहीं: आपके पास टैग को कॉन्फ़िगर करने का कोई विकल्प नहीं है. सारा डेटा सीधे इवेंट से लिया जाता है.
- कुछ कॉन्फ़िगरेशन: इसमें कुछ पैरामीटर के लिए फ़ील्ड होते हैं और कुछ के लिए नहीं.
हर पैरामीटर के लिए फ़ील्ड होना काफ़ी सुविधाजनक होता है. इससे उपयोगकर्ता को अपने टैग कॉन्फ़िगरेशन पर पूरा कंट्रोल मिलता है. हालांकि, आम तौर पर ऐसा करने पर, एक ही काम को कई बार करना पड़ता है. खास तौर पर, Baz Analytics l
पैरामीटर जैसी चीज़ें, पेज के यूआरएल के साथ-साथ साफ़ तौर पर और सभी के लिए काम करती हैं.
हर बार टैग कॉन्फ़िगर होने पर, एक ही डेटा डालना, कंप्यूटर के लिए सबसे सही होता है.
ऐसा हो सकता है कि आपके पास ऐसा टैग हो जो सिर्फ़ किसी इवेंट का डेटा लेता है. यह सबसे आसान टैग है, जिसे उपयोगकर्ता कॉन्फ़िगर कर सकता है. ऐसा इसलिए, क्योंकि इसमें उपयोगकर्ता को कुछ करने की ज़रूरत नहीं होती. दूसरी ओर, यह सबसे ज़्यादा पाबंदी वाला और नाज़ुक विकल्प भी है. उपयोगकर्ता, ज़रूरत पड़ने पर भी टैग के व्यवहार में बदलाव नहीं कर सकते.
उदाहरण के लिए, हो सकता है कि वे अपनी वेबसाइट और Google Analytics में किसी इवेंट को purchase
कहें, लेकिन Baz Analytics उसे buy
कहे. इसके अलावा, हो सकता है कि आने वाले इवेंट डेटा के स्ट्रक्चर के बारे में टैग की गई अनुमानित जानकारी, असल में ज़रूरत के मुताबिक न हो. दोनों ही मामलों में, उपयोगकर्ता को कोई कार्रवाई नहीं करनी पड़ती.
कई चीज़ों की तरह, इसका जवाब भी इन दोनों चरम सीमाओं के बीच में होता है. कुछ डेटा को हमेशा इवेंट से लेना सही होता है. अन्य डेटा को उपयोगकर्ता को कॉन्फ़िगर करना चाहिए. आपको कैसे तय करना है कि कौनसा विकल्प सही है? इस सवाल का जवाब देने के लिए, हमें कंटेनर में आने वाले डेटा की बारीकी से जांच करनी होगी.
डेटा कहां से आता है?
Google Analytics 4 टैग से सर्वर कंटेनर में आने वाले डेटा को, मुख्य तौर पर दो कैटगरी में बांटा जा सकता है: उपयोगकर्ता से मिला डेटा और अपने-आप इकट्ठा हुआ डेटा.
उपयोगकर्ता के हिसाब से तय किए गए डेटा में, वह सब कुछ होता है जिसे उपयोगकर्ता, gtag.js event
कमांड में शामिल करता है. उदाहरण के लिए, इस तरह का निर्देश:
gtag('event', 'search', {
search_term: 'beets',
});
इससे सर्वर कंटेनर में ये पैरामीटर दिखेंगे:
{
event_name: 'search',
search_term: 'beets',
}
यह बहुत आसान है, लेकिन टैग के हिसाब से, इसे इस्तेमाल करना बहुत मुश्किल है. यह डेटा उपयोगकर्ता डालता है, इसलिए इसमें कोई भी जानकारी हो सकती है.
हो सकता है कि ऊपर बताए गए उदाहरण की तरह, उपयोगकर्ता सिर्फ़ सुझाए गए इवेंट और पैरामीटर भेजे, लेकिन ऐसा करना ज़रूरी नहीं है. event_name
पैरामीटर की जगह की जानकारी (न कि वैल्यू!) के अलावा, उपयोगकर्ता के डेटा के फ़ॉर्म या स्ट्रक्चर के बारे में कोई गारंटी नहीं है.
अच्छी बात यह है कि कंटेनर में सिर्फ़ उपयोगकर्ता का डाला गया डेटा ही नहीं मिलेगा. इसे ब्राउज़र में Google Analytics 4 टैग से अपने-आप इकट्ठा होने वाला डेटा भी मिलेगा. इनमें ये चीज़ें शामिल हैं:
ip_override
language
page_location
page_referrer
page_title
screen_resolution
user_agent
इसके अलावा, अगर सर्वर का अनुरोध किसी वेब ब्राउज़र से आता है, तो getCookieValue
एपीआई के ज़रिए ब्राउज़र कुकी का डेटा भी उपलब्ध हो सकता है.
इन सभी से, अपने-आप इकट्ठा होने वाला वह डेटा बनता है जिसके बारे में हमने ऊपर बताया है. आम तौर पर, इसमें ऐसा डेटा शामिल होता है जो सार्वभौमिक और मतलब के हिसाब से साफ़ तौर पर समझ में आता हो. जब ब्राउज़र में GA4 टैग से अनुरोध आता है, तो यह डेटा हमेशा उपलब्ध रहेगा और इसका फ़ॉर्मैट हमेशा एक जैसा रहेगा. इन पैरामीटर के बारे में ज़्यादा जानकारी के लिए, इवेंट रेफ़रंस देखें.
इस क्लासिफ़िकेशन की मदद से, यह तय करने में मदद मिलती है कि उपयोगकर्ता को कौनसा डेटा कॉन्फ़िगर करना चाहिए और टैग में कौनसा डेटा शामिल करना चाहिए. अपने-आप इकट्ठा होने वाले डेटा को सीधे इवेंट से पढ़ा जा सकता है. बाकी सब कुछ उपयोगकर्ता को कॉन्फ़िगर करना चाहिए.
इस बात को ध्यान में रखते हुए, Baz Analytics टैग के पैरामीटर को फिर से देखें.
- मेज़रमेंट आईडी,
id
: यह अपने-आप इकट्ठा नहीं होता. इसलिए, यह वैल्यू का एक ऐसा उदाहरण है जिसे टैग कॉन्फ़िगर करते समय उपयोगकर्ता को डालना चाहिए. - इवेंट का नाम,
en
: जैसा कि ऊपर बताया गया है, इवेंट का नाम हमेशाevent_name
पैरामीटर से लिया जा सकता है. हालांकि, इसकी वैल्यू उपयोगकर्ता तय करता है. इसलिए, ज़रूरत पड़ने पर नाम को बदलने की सुविधा देना अच्छा होता है. - पेज यूआरएल,
l
: यह वैल्यू,page_location
पैरामीटर से ली जा सकती है. यह पैरामीटर, Google Analytics GA4 ब्राउज़र टैग से हर इवेंट के लिए अपने-आप इकट्ठा होता है. इसलिए, आपको उपयोगकर्ता से मैन्युअल रूप से वैल्यू डालने की ज़रूरत नहीं पड़नी चाहिए. - उपयोगकर्ता आईडी,
u
: Baz Analytics सर्वर टैग में,u
पैरामीटर को उपयोगकर्ता तय नहीं करता. साथ ही, पेज पर मौजूद टैग से यह अपने-आप इकट्ठा भी नहीं होता. इसके बजाय, इसे ब्राउज़र कुकी में सेव किया जाता है, ताकि वेबसाइट पर कई बार आने वाले उपयोगकर्ताओं की पहचान की जा सके. जैसा कि आपको लागू करने के तरीके में दिखेगा, कुकी सेट करने के लिएsetCookie
API का इस्तेमाल करने वाला Baz Analytics सर्वर टैग है. इसका मतलब है कि सिर्फ़ Baz Analytics टैग को पता होता है कि कुकी कहां और कैसे सेव की गई है.l
की तरह,u
पैरामीटर अपने-आप इकट्ठा होना चाहिए.
टैग कॉन्फ़िगरेशन सेट अप करने के बाद, यह कुछ इस तरह दिखेगा:
टैग लागू करने की प्रक्रिया
टैग का कॉन्फ़िगरेशन पूरा हो जाने के बाद, सैंडबॉक्स किए गए JavaScript में टैग के व्यवहार को लागू करने के लिए तैयार हो जाएं.
टैग को चार काम करने होंगे:
- टैग के कॉन्फ़िगरेशन से इवेंट का नाम पाएं.
- इवेंट की
page_location
प्रॉपर्टी से पेज का यूआरएल पाएं. - यूज़र आईडी का हिसाब लगाना. टैग,
_bauid
नाम की कुकी में User-ID की खोज करेगा. अगर वह कुकी मौजूद नहीं है, तो टैग एक नई वैल्यू का हिसाब लगाएगा और उसे बाद के अनुरोधों के लिए सेव कर देगा. - एक यूआरएल बनाकर, Baz Analytics कलेक्शन सर्वर से अनुरोध करें.
यह भी सोचना ज़रूरी है कि टैग, पूरे कंटेनर में कैसे फ़िट होता है. अलग-अलग कंटेनर घटक अलग-अलग भूमिका में होते हैं, इसलिए कुछ ऐसी चीज़ें भी होती हैं, जो टैग करता है या नहीं करना चाहिए. आपका टैग:
- यह पता लगाने के लिए कि इवेंट चलाया जाना चाहिए या नहीं, इवेंट की जांच नहीं करनी चाहिए. इसके लिए, ट्रिगर का इस्तेमाल किया जाता है.
- कंटेनर को
runContainer
API के साथ नहीं चलाना चाहिए. यह क्लाइंट का काम है. - कुकी के अलावा, किसी भी तरह के अनुरोध या जवाब के साथ सीधे इंटरैक्ट करने की कोशिश नहीं की जानी चाहिए. यह क्लाइंट का काम भी है.
ऐसा टैग टेंप्लेट लिखने पर, आपके टैग के उपयोगकर्ताओं को भ्रमित करने वाली जानकारी दिखेगी. उदाहरण के लिए, आने वाले अनुरोध का जवाब देने वाला टैग, क्लाइंट को ऐसा करने से रोक देगा. इससे, उपयोगकर्ताओं की इस उम्मीद पर पानी फिर जाएगा कि कंटेनर कैसे काम करेगा.
इन सभी बातों को ध्यान में रखते हुए, यहां सैंडबॉक्स किए गए JS में टैग को लागू करने का उदाहरण दिया गया है.
const encodeUriComponent = require('encodeUriComponent');
const generateRandom = require('generateRandom');
const getCookieValues = require('getCookieValues');
const getEventData = require('getEventData');
const logToConsole = require('logToConsole');
const makeString = require('makeString');
const sendHttpGet = require('sendHttpGet');
const setCookie = require('setCookie');
const USER_ID_COOKIE = '_bauid';
const MAX_USER_ID = 1000000000;
// The event name is taken from either the tag's configuration or from the
// event. Configuration data comes into the sandboxed code as a predefined
// variable called 'data'.
const eventName = data.eventName || getEventData('event_name');
// page_location is automatically collected by the Google Analytics 4 tag.
// Therefore, it's safe to take it directly from event data rather than require
// the user to specify it. Use the getEventData API to retrieve a single data
// point from the event. There's also a getAllEventData API that returns the
// entire event.
const pageLocation = getEventData('page_location');
const userId = getUserId();
const url = 'https://www.example.com/baz_analytics?' +
'id=' + encodeUriComponent(data.measurementId) +
'en=' + encodeUriComponent(eventName) +
(pageLocation ? 'l=' + encodeUriComponent(pageLocation) : '') +
'u=' + userId;
// The sendHttpGet API takes a URL and returns a promise that resolves with the
// result once the request completes. You must call data.gtmOnSuccess() or
// data.gtmOnFailure() so that the container knows when the tag has finished
// executing.
sendHttpGet(url).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
});
// The user ID is taken from a cookie, if present. If it's not present, a new ID
// is randomly generated and stored for later use.
//
// Generally speaking, tags should not interact directly with the request or
// response. This prevents different tags from conflicting with each other.
// Cookies, however, are an exception. Tags are the only container entities that
// know which cookies they need to read or write. Therefore, it's okay for tags
// to interact with them directly.
function getUserId() {
const userId = getCookieValues(USER_ID_COOKIE)[0] || generateRandom(0, MAX_USER_ID);
// The setCookie API adds a value to the 'cookie' header on the response.
setCookie(USER_ID_COOKIE, makeString(userId), {
'max-age': 3600 * 24 * 365 * 2,
domain: 'auto',
path: '/',
httpOnly: true,
secure: true,
});
return userId;
}
इसके बाद, टैग लागू हो जाता है. टैग का इस्तेमाल करने से पहले, आपको इसकी एपीआई अनुमतियां सही तरीके से सेट करनी होंगी. टेंप्लेट एडिटर के अनुमतियां टैब में जाएं और ये अनुमतियां दें:
- कुकी वैल्यू पढ़ता है:
_bauid
- इवेंट डेटा पढ़ता है:
event_name
औरpage_location
- एचटीटीपी अनुरोध भेजता है:
https://www.example.com/*
- कुकी सेट करता है:
_bauid
आपको अपने टैग के लिए भी टेस्ट लिखने चाहिए. टेंप्लेट की जांच करने के बारे में ज़्यादा जानने के लिए, टेंप्लेट डेवलपर गाइड का जांच सेक्शन पढ़ें.
आखिर में, कोड चलाएं बटन का इस्तेमाल करके, अपने टैग को कम से कम एक बार चलाना न भूलें. इससे, आपके सर्वर पर कई सामान्य गलतियां होने से बच जाएंगी.
कम्यूनिटी टेंप्लेट गैलरी में अपना टैग सबमिट करना
आपने सभी काम पूरे कर लिए हैं. इसलिए, नया टैग बनाएं, टेस्ट करें, और डिप्लॉय करें. इसलिए, इसे अपने पास रखने की कोई ज़रूरत नहीं है. अगर आपको लगता है कि आपका नया टैग दूसरे लोगों के लिए काम का होगा, तो कम्यूनिटी टेंप्लेट गैलरी में इसे सबमिट करें.
नतीजा
इस ट्यूटोरियल में, आपको सर्वर कंटेनर के लिए टैग लिखने के बुनियादी तरीके के बारे में जानकारी दी गई है. आपको इन चीज़ों के बारे में पता चला:
- इवेंट डेटा पढ़ने, एचटीटीपी अनुरोध भेजने, और ब्राउज़र पर कुकी सेट करने के लिए किन एपीआई का इस्तेमाल करना है.
- टैग के लिए कॉन्फ़िगरेशन के विकल्पों को डिज़ाइन करने के सबसे सही तरीके.
- उपयोगकर्ता से मिले डेटा और अपने-आप इकट्ठा होने वाले डेटा के बीच का अंतर और यह अंतर क्यों अहम है.
- कंटेनर में टैग की भूमिका; यह क्या करना चाहिए और क्या नहीं.
- कम्यूनिटी टेंप्लेट गैलरी में टैग टेंप्लेट कब और कैसे सबमिट करें.