App Engine की मदद से सर्वर साइड टैगिंग सेट अप करना

इस गाइड में, इन कामों को करने का तरीका बताया गया है:

  • Google Cloud Platform (GCP) App Engine पर टैग करने वाला सर्वर सेट अप करें.
  • लाइव ट्रैफ़िक को मैनेज करने के लिए, टैगिंग सर्वर को अपग्रेड करें.
  • Google Tag Manager कंटेनर को चलाने वाले सर्वर की संख्या बढ़ाएं या घटाएं.
  • सर्वर को मैनेज करने के बाद, टैग करने वाले सर्वर के वर्शन को अपडेट रखें.

ज़रूरी शर्तें

  1. आपके पास एक GCP खाता होना चाहिए. अगर आपके पास GCP खाता नहीं है, तो नया GCP खाता बनाएं.
  2. आपके पास GCP बिलिंग खाता होना चाहिए. अगर आपके पास GCP बिलिंग खाता नहीं है, तो GCP बिलिंग खाता बनाएं (इसके लिए, बिलिंग खाता बनाने वाले की भूमिका ज़रूरी है).
  3. आपके पास प्रोजेक्ट बनाने वाले और बिलिंग खाता इस्तेमाल करने वाले की भूमिका होनी चाहिए. भूमिकाएं जोड़ने के बारे में ज़्यादा जानें.

1. सर्वर उपलब्ध कराना

App Engine इंस्टेंस पर नया टैगिंग सर्वर बनाने के लिए, आपको यह करना होगा:

  • Tag Manager में नया सर्वर कंटेनर बनाना
  • नया Google Cloud प्रोजेक्ट (GCP) बनाएं
  • App Engine की मदद से टैग करने वाला नया सर्वर मैनेज करना
  • Tag Manager के सर्वर कंटेनर में, नए टैगिंग सर्वर का यूआरएल जोड़ना

Google Tag Manager सर्वर कंटेनर बनाना

  1. Google Tag Manager खोलें.

  2. खाते की लाइन में, ओवरफ़्लो मेन्यू > कंटेनर बनाएं पर क्लिक करें.

  3. नया सर्वर कंटेनर बनाएं.

  4. "टैग करने वाले सर्वर को मैन्युअल तरीके से मैनेज करें" रेडियो बटन पर क्लिक करें. कंटेनर के कॉन्फ़िगरेशन पर ध्यान दें. आपको अपने सर्वर को चालू करने के लिए इसकी ज़रूरत होगी.

नया GCP प्रोजेक्ट बनाना

टैग करने वाले सर्वर के लिए नया GCP प्रोजेक्ट बनाने के लिए:

  1. Google Cloud Console खोलें.

  2. नया GCP प्रोजेक्ट बनाएं.

  3. अपने प्रोजेक्ट को नाम दें. हमारा सुझाव है कि आप कंटेनर आईडी का इस्तेमाल करें, ताकि आपको आसानी हो. इस नाम का इस्तेमाल सिर्फ़ GCP में किया जाता है.

  4. GCP प्रोजेक्ट आईडी नोट करें, क्योंकि आपको टैग करने वाला सर्वर बनाने के लिए इसकी ज़रूरत होगी.

नया टैगिंग सर्वर मैनेज करना

टैग करने वाला सर्वर बनाने के लिए:

  1. Cloud Shell खोलें.

  2. Cloud Shell में GCP प्रोजेक्ट सेट करें. project ID की जगह, वह GCP प्रोजेक्ट आईडी डालें जिसे आपने पहले नोट किया था:

    gcloud config set project project ID
    
  3. शेल स्क्रिप्ट का इस्तेमाल करके, टैग करने वाला सर्वर बनाएं. डिप्लॉयमेंट टाइप को testing पर सेट करें.

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

Tag Manager में टैगिंग सर्वर का यूआरएल जोड़ना

  1. Google Tag Manager खोलें.

  2. एडमिन > कंटेनर सेटिंग में जाकर, यूआरएल जोड़ें पर क्लिक करें. अगर आपको अपने सर्वर का यूआरएल नहीं पता है, तो Cloud Shell में यह कमांड चलाएं:

    gcloud app browse
    

    नतीजा: आपने टैग करने वाला सर्वर सेट अप कर लिया है और उसे testing कॉन्फ़िगरेशन के साथ उपलब्ध करा दिया है. अब सर्वर साइड टैगिंग की जांच की जा सकती है.

सर्वर का शुरुआती कॉन्फ़िगरेशन (testing)

टेस्टिंग का कॉन्फ़िगरेशन, प्रॉडक्ट को एक्सप्लोर करने के लिए सही है. इसके लिए, टेस्ट ट्रैफ़िक की कम मात्रा भेजें और Tag Manager में पूर्वावलोकन सुविधा का इस्तेमाल करें. यह कॉन्फ़िगरेशन, स्टैंडर्ड एनवायरमेंट में App Engine का F1 इंस्टेंस क्लास है. ज़्यादातर मामलों में, आपसे कोई शुल्क नहीं लिया जाएगा.

2. प्रोडक्शन में App Engine का इस्तेमाल करना

production कॉन्फ़िगरेशन में, हर सर्वर की कीमत करीब 40 डॉलर / महीना है. हर सर्वर, App Engine का एक इंस्टेंस होता है. इसमें फ़्लेक्सिबल एनवायरमेंट में 1 vCPU, 0.5 जीबी मेमोरी, और 10 जीबी डिस्क होती है.

App Engine की बिलिंग और बिलिंग से जुड़ी सूचनाएं कॉन्फ़िगर करने का तरीका जानने के लिए, App Engine की लागत मैनेज करना लेख पढ़ें. हमारा सुझाव है कि आप बिलिंग से जुड़ी सूचना सेट अप करें.

हमारा सुझाव है कि कम से कम तीन सर्वर चलाएं, ताकि सर्वर बंद होने की स्थिति में डेटा के नुकसान का खतरा कम हो. हालांकि, आपके पास कम (या ज़्यादा) सर्वर चलाने का विकल्प होता है. हमें उम्मीद है कि अपने-आप स्केल होने वाले तीन से छह सर्वर (डिफ़ॉल्ट रूप से) हर सेकंड में 50 से 200 अनुरोधों को प्रोसेस कर पाएंगे. परफ़ॉर्मेंस, टैग की संख्या और उनके काम करने के तरीके पर निर्भर करती है.

टैग करने वाले सर्वर को कॉन्फ़िगर करने के लिए:

  1. Google Cloud Platform Cloud Shell खोलें.
  2. Cloud Shell में Cloud Platform प्रोजेक्ट सेट करें. project ID की जगह, वह GCP प्रोजेक्ट आईडी डालें जिसे आपने पहले नोट किया था:
    gcloud config set project project ID
  3. प्रोडक्शन एनवायरमेंट के लिए टैगिंग सर्वर को फिर से कॉन्फ़िगर करने के लिए, यहां दी गई सेटअप स्क्रिप्ट चलाएं. ये काम करें:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. डप्लॉयमेंट टाइप को production में बदलें.
    2. प्रोडक्शन ट्रैफ़िक को मैनेज करने के लिए, अतिरिक्त सर्वर सेट अप करें. हमारा सुझाव है कि कम से कम तीन सर्वर का इस्तेमाल करें.

ज़रूरी नहीं: लॉगिंग की सुविधा बंद करना

अनुरोध लॉग करना

डिफ़ॉल्ट रूप से, App Engine को मिलने वाले हर अनुरोध (जैसे, अनुरोध का पाथ, क्वेरी पैरामीटर वगैरह) की जानकारी लॉग करता है. अगर आपका टैगिंग सर्वर हर महीने कई अनुरोधों को प्रोसेस करता है (जैसे, 10 लाख से ज़्यादा), तो इन लॉग मैसेज के लिए, लॉगिंग के लिए ज़्यादा शुल्क लग सकता है. लॉगिंग के शुल्क को कम करने या हटाने के लिए, हमारा सुझाव है कि App Engine के अनुरोध की लॉगिंग बंद कर दें.

App Engine के अनुरोध की लॉगिंग बंद करने के लिए:

  1. Google Cloud Platform में, लॉग राउटर खोलें. पक्का करें कि आप उस प्रोजेक्ट में हों जो आपके कंटेनर आईडी से मेल खाता हो:
    GCP प्रोजेक्ट सिलेक्टर का स्क्रीनशॉट, जिसमें Tag Manager कंटेनर आईडी का सैंपल दिखाया गया है.
  2. टाइप: Cloud Logging बकेट, नाम: _Default लाइन के लिए, ओवरफ़्लो मेन्यू चुनें. इसके बाद, सिंक में बदलाव करें पर क्लिक करें.
  3. सिंक डेस्टिनेशन में जाकर, लॉग बकेट _Default चुनें.
  4. सिंक में शामिल करने के लिए लॉग चुनें में जाकर, एक नई लाइन जोड़ें. शामिल किए जाने से जुड़े मौजूदा फ़िल्टर में, यह नियम डालें:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. अगर आपको लोड बैलेंसर से लॉगिंग की सुविधा भी बंद करनी है, तो एक नई लाइन जोड़ें और मौजूदा फ़िल्टर में शामिल करने के लिए, यह नियम डालें:

    NOT LOG_ID("requests")
    
  6. बदलाव लागू करने के लिए, सिंक अपडेट करें पर क्लिक करें. अब App Engine के अनुरोधों को लॉगिंग से बाहर रखा जाएगा.

  7. पुष्टि करें कि लॉग एक्सप्लोरर के लॉग में कोई नया अनुरोध नहीं दिख रहा है.

कंसोल लॉगिंग

कंटेनर में मौजूद टैगिंग सर्वर, क्लाइंट या टैग, कंसोल में मैसेज लॉग कर सकते हैं. इसके लिए, लॉगिंग के शुल्क लग सकते हैं. लॉगिंग के शुल्क को कम करने या हटाने के लिए, अनचाहे कंसोल लॉग मैसेज बंद किए जा सकते हैं.

अनचाहे कंसोल लॉग की पहचान करें:

  1. GCP में, लॉग एक्सप्लोरर खोलें.
  2. अपने टैग से जनरेट हुए ऐसे लॉग मैसेज ढूंढें जिनकी आपको ज़रूरत नहीं है. उदाहरण के लिए:

    कोई टैग ये लॉग भेज सकता है:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    textPayload फ़ील्ड में, इससे जुड़े लॉग मैसेज देखें:
    GCP के लॉग एक्सप्लोरर का स्क्रीनशॉट. इसमें सैंपल लॉग दिखाए गए हैं.

कंसोल लॉग मैसेज बंद करने के लिए:

  1. Google Cloud Platform में, लॉग राउटर खोलें. पक्का करें कि आप उस प्रोजेक्ट में हों जो आपके कंटेनर आईडी से मेल खाता हो:
    GCP प्रोजेक्ट सिलेक्टर का स्क्रीनशॉट, जिसमें Tag Manager कंटेनर आईडी का सैंपल दिखाया गया है.
  2. टाइप: Cloud Logging बकेट, नाम: _Default लाइन के लिए, ओवरफ़्लो मेन्यू चुनें. इसके बाद, सिंक में बदलाव करें पर क्लिक करें.
  3. सिंक डेस्टिनेशन में जाकर, लॉग बकेट _Default चुनें.
  4. सिंक में शामिल करने के लिए लॉग चुनें में जाकर, एक नई लाइन जोड़ें. शामिल किए जाने से जुड़े मौजूदा फ़िल्टर में, यह नियम डालें:

    NOT textPayload:"Custom message:"
    

    अपने कंसोल लॉग के लिए, Custom message: टेक्स्ट को उस कंसोल लॉग के सबस्ट्रिंग से बदलें जिसे आपको बंद करना है. ज़्यादा जानकारी वाले फ़िल्टर के लिए, लॉगिंग क्वेरी लैंग्वेज का इस्तेमाल करें.

  5. बदलाव लागू करने के लिए, सिंक अपडेट करें पर क्लिक करें. मैच होने वाले logToConsole मैसेज को लॉगिंग से बाहर रखा जाना चाहिए.

  6. पुष्टि करें कि लॉग एक्सप्लोरर में कोई नया कंसोल लॉग मैसेज नहीं दिख रहा है.

3. डिप्लॉयमेंट को अपने कस्टम डोमेन पर मैप करना

डिफ़ॉल्ट सर्वर-साइड टैगिंग डिप्लॉयमेंट, App Engine डोमेन पर होस्ट किया जाता है. हमारा सुझाव है कि आप अपनी वेबसाइट के सबडोमेन का इस्तेमाल करने के लिए, डिप्लॉयमेंट में बदलाव करें.

अपनी वेबसाइट के सबडोमेन को टैग करने वाले सर्वर पर मैप करें.

4. Google Tag Manager में सर्वर यूआरएल जोड़ना

अब आपके पास सर्वर है. इसलिए, आपको यह पक्का करना होगा कि Google Tag Manager को पता हो कि उसे आपके सर्वर का इस्तेमाल करना है.

  1. Google Tag Manager खोलें.

  2. उस सर्वर कंटेनर पर क्लिक करें जिसे आपको टैग करने वाले सर्वर पर भेजना है.

  3. एडमिन टैब > कंटेनर सेटिंग में जाकर, सर्वर कंटेनर की सेटिंग खोलें.

  4. यूआरएल जोड़ें पर क्लिक करें और अपने सर्वर का यूआरएल चिपकाएं.

  5. सेव करें और अपने फ़ाइल फ़ोल्डर पर वापस जाएं.

5. पुष्टि

टैग करने वाला सर्वर सेट अप करने के बाद, पक्का करें कि वह सही तरीके से काम कर रहा हो.

यूज़र इंटरफ़ेस (यूआई) की पुष्टि करना

Tag Manager के फ़ाइल फ़ोल्डर में, झलक देखें बटन पर क्लिक करें. अगर झलक वाला पेज लोड हो जाता है, तो इसका मतलब है कि सब कुछ सही तरीके से सेट अप किया गया है.

एपीआई की पुष्टि करना

सर्वर के एपीआई का इस्तेमाल करके, यह भी पुष्टि की जा सकती है कि सर्वर, हेल्थ चेक के अनुरोधों का जवाब दे रहा है या नहीं:

  1. एडमिन > कंटेनर सेटिंग से, अपना सर्वर कंटेनर यूआरएल कॉपी करें.
  2. नया ब्राउज़र टैब खोलें.
  3. यूआरएल चिपकाएं और पाथ में /healthy जोड़ें. उदाहरण के लिए: https://www.example.com/metrics/healthy
  4. अगर आपकी सेवा काम करती है, तो आपको पेज पर ok टेक्स्ट दिखेगा.

अगर किसी प्रॉडक्ट के अनुरोध नहीं दिख रहे हैं, तो पुष्टि करें कि कोई इवेंट ट्रिगर हो रहा है. config कमांड, प्रॉडक्ट को शुरू करती है. हालांकि, डेटा आम तौर पर तब ही ट्रांसमिट होता है, जब event को कॉल किया जाता है.

सर्वर साइड टैगिंग की पुष्टि करने के सबसे सही तरीकों के बारे में ज़्यादा जानने के लिए, कस्टम डोमेन कॉन्फ़िगरेशन देखें.

एक से ज़्यादा यूआरएल की झलक देखना

अगर आपने एक टैगिंग सर्वर पर कई डोमेन मैप किए हैं, तो पक्का करें कि हर यूआरएल को कंटेनर सेटिंग में जोड़ा गया हो.

अगर आपने एक से ज़्यादा यूआरएल दिए हैं, तो सभी पाथ (डोमेन नाम के बाद वाली स्ट्रिंग) मेल खाने चाहिए.

Works काम नहीं करता
यूआरएल 1: example.com/abc
यूआरएल 2: example2.com/abc
यूआरएल 1: example.com/abc
यूआरएल 2: example2.com/def

एक से ज़्यादा यूआरएल जोड़ने पर, आपको झलक देखें बटन के बगल में एक आइकॉन दिखेगा. इस आइकॉन की मदद से, झलक देखने के लिए यूआरएल चुना जा सकता है.

टैग करने वाले सर्वर का वर्शन अपडेट करना

टैगिंग सर्वर के नए अपडेट में, सुरक्षा से जुड़ी कमियों को ठीक किया गया है और नई सुविधाएं जोड़ी गई हैं. हमारा सुझाव है कि जब Tag Manager आपको अपडेट करने के लिए सूचना दे, तब हर मुख्य वर्शन रिलीज़ (जैसे, वर्शन 1.x.x से 2.x.x पर अपग्रेड करना) के लिए, टैग करने वाले सर्वर को कम से कम एक बार अपडेट करें.

टैगिंग सर्वर को अपडेट करने के लिए, सेटअप स्क्रिप्ट को फिर से चलाएं. इसके लिए, वही सेटिंग इस्तेमाल करें जो आपने पहले इस्तेमाल की थीं. मौजूदा सेटिंग, डिफ़ॉल्ट रूप से सेट होती हैं.

टैग करने वाले सर्वर को अपडेट करने के लिए:

  1. Google Cloud Platform Cloud Shell खोलें.
  2. Cloud Shell में Cloud Platform प्रोजेक्ट सेट करें. project ID की जगह, वह GCP प्रोजेक्ट आईडी डालें जिसे आपने पहले नोट किया था:
    gcloud config set project project ID
  3. सेटअप स्क्रिप्ट को उन सेटिंग का इस्तेमाल करके चलाएं जिनका इस्तेमाल आपने पहले किया था. मौजूदा सेटिंग डिफ़ॉल्ट रूप से सेट होती हैं.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

यह पुष्टि करने के लिए कि अपडेट हो गया है:

  1. अपने सर्वर कंटेनर में, झलक देखें बटन पर क्लिक करके, नया डीबग सेशन शुरू करें. इसके बाद, किसी दूसरे टैब पर अनुरोध भेजें.
  2. खास जानकारी में, Console टैब चुनें. साथ ही, यह पक्का करें कि टैगिंग सर्वर को अपडेट करने के लिए कोई मैसेज न हो.

सर्वर को अपडेट करने के बाद, Tag Manager एक दिन तक ऐसे मैसेज दिखा सकता है जिनमें आपसे टैगिंग सर्वर को अपडेट करने के लिए कहा गया हो. हालांकि, झलक वाले पेज पर टैगिंग सर्वर के वर्शन के बारे में अप-टू-डेट मैसेज दिखेगा.

प्रोडक्शन डिप्लॉयमेंट के टाइमआउट से जुड़ी समस्याओं को हल करना

टैगिंग सर्वर बनाने या उसे फिर से कॉन्फ़िगर करने के लिए, सेटअप स्क्रिप्ट चलाने पर, स्क्रिप्ट का समय खत्म हो सकता है. ऐसा कई वजहों से हो सकता है. सबसे ज़्यादा इस्तेमाल होने वाले दो तरीके ये हैं:

  1. सेवा खातों के पास गलत अनुमतियां हैं - Compute Engine और App Engine सेवा खाते, प्रोडक्शन डिप्लॉयमेंट को डिप्लॉय और बनाए रखने के लिए ज़िम्मेदार होते हैं. डिफ़ॉल्ट रूप से, इन्हें सही अनुमतियों के साथ पहले से कॉन्फ़िगर किया जाता है. हालांकि, कुछ मामलों में किसी संगठन की नीति की वजह से, ये गलत हो सकते हैं.

    1. Google Cloud Console में, बाईं ओर मौजूद नेविगेशन बार में आईएएम और एडमिन पेज पर जाएं.
    2. Compute Engine सेवा खाता <project_number>-compute@developer.gserviceaccount.com और App Engine सेवा खाता <project_name>@appspot.gserviceaccount.com ढूंढें.
    3. दोनों सेवा खातों के पास Editor की भूमिका होनी चाहिए. अगर किसी खाते के पास Editor की भूमिका नहीं है, तो भूमिका को अपडेट करें. इसके लिए, खाते के दाईं ओर मौजूद पेंसिल वाले आइकॉन पर क्लिक करें. इसके बाद, मौजूदा भूमिका के ड्रॉपडाउन पर क्लिक करें. इसके बाद, सबसे ऊपर तक स्क्रोल करें और प्रोजेक्ट पर क्लिक करें. इसके बाद, एडिटर पर क्लिक करें.
  2. कोटा पूरा नहीं हुआ - प्रोडक्शन डिप्लॉयमेंट, Compute Engine के कोटे का इस्तेमाल करता है. अगर प्रोजेक्ट में ज़रूरत के मुताबिक कोटा नहीं है, तो संसाधन उपलब्ध कराते समय डिप्लॉयमेंट टाइम आउट हो सकता है.

    1. Google Cloud Console में, बाईं ओर मौजूद नेविगेशन बार में IAM और एडमिन पेज पर जाएं. इसके बाद, बाईं ओर मौजूद नेविगेशन बार में कोटा टैब पर क्लिक करें.
    2. पेज पर सबसे ऊपर, टेबल फ़िल्टर करें वाले टेक्स्ट बॉक्स पर क्लिक करें और Compute Engine API टाइप करें. सिर्फ़ एक नतीजे पर क्लिक करें.
    3. पुष्टि करें कि सभी कोटे की स्थितियां सीमा के अंदर हों या उनमें हरे रंग का सही का निशान हो.
    4. सीपीयू ढूंढें और उस पर क्लिक करें. पुष्टि करें कि मौजूदा इस्तेमाल और डिप्लॉय किए जा रहे इंस्टेंस की संख्या, डिप्लॉयमेंट क्षेत्र के लिए तय की गई सीमा से कम हो.