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

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

  • कंटेनर के लिए झलक देखने की सुविधा चालू करने के लिए, झलक देखने वाला सर्वर उपलब्ध कराएं.
  • लाइव ट्रैफ़िक को मैनेज करने के लिए, टैग करने वाला सर्वर उपलब्ध कराएं.
  • अपने Google Tag Manager कंटेनर को चलाने वाले सर्वर की संख्या बढ़ाएं या घटाएं.
  • सर्वर को प्रोविज़न करने के बाद, टैग करने वाले सर्वर के वर्शन को अपडेट रखें.

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

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

प्रीव्यू और टैग करने वाले सर्वर को सेट अप करना

Cloud Run सेवा को Google Tag Manager में अपने-आप या Google Cloud में मैन्युअल तरीके से प्रोवाइड किया जा सकता है.

सेवा के कॉन्फ़िगरेशन में बदलाव करना

सेवा का कॉन्फ़िगरेशन बदलने के लिए:

  1. Cloud Run खोलें.
  2. वह सेवा चुनें जिसमें आपको बदलाव करना है.
  3. बदलाव करें और नया रिविज़न डिप्लॉय करें पर क्लिक करें.
  4. बदलाव करने के बाद, डिप्लॉय करें पर क्लिक करें.

Cloud Run की लागत

Cloud Run के इस कॉन्फ़िगरेशन में, हर सर्वर पर हर महीने करीब 45 डॉलर का शुल्क लिया जाता है. हर सर्वर एक Cloud Run इंस्टेंस है, जिसमें 1 vCPU और 0.5 जीबी मेमोरी होती है. यह सीपीयू के लिए, हमेशा तय किए गए शुल्क वाले मॉडल का इस्तेमाल करता है.

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

Cloud Run, लोड के हिसाब से डाइनैमिक तौर पर स्केल करेगा. max-instances सेटिंग, संसाधनों के लिए आपको कितनी रकम चुकानी होगी, इसकी सबसे खराब स्थिति है. Cloud Run, ज़रूरत न होने पर इतने इंस्टेंस उपलब्ध नहीं कराएगा.

Cloud Run कैलकुलेटर

ज़रूरी नहीं: App Engine से माइग्रेट करना

अगर आपने पहले App Engine डिप्लॉयमेंट बनाया है और आपने पुष्टि कर ली है कि अब उसे कोई ट्रैफ़िक नहीं मिल रहा है, तो अनचाहे बिलिंग शुल्कों से बचने के लिए, App Engine ऐप्लिकेशन को बंद करें.

ज़रूरी नहीं: एक से ज़्यादा क्षेत्रों में डिप्लॉयमेंट

अगर आपकी वेबसाइट दुनिया भर में उपलब्ध है या आपको सेवा में रिडंडेंसी जोड़नी है, तो टैगिंग सर्वर को कई इलाकों में डिप्लॉय करें.

शुरू करने से पहले:

  1. लोड बैलेंसर बनाना
  2. चुने गए BACKEND_NAME को नोट करें.

डिप्लॉयमेंट में ज़्यादा क्षेत्र जोड़ने के लिए:

  1. REGION को उस इलाके से बदलें जहां झलक दिखाने वाला सर्वर डिप्लॉय किया गया है. अगर आपने झलक और टैगिंग सर्वर को उपलब्ध कराने के लिए, कमांड लाइन के विकल्पों का पालन किया है, तो हो सकता है कि यह जानकारी पहले से ही भरी हो.
  2. CONTAINER_CONFIG को Tag Manager की कंटेनर कॉन्फ़िगरेशन स्ट्रिंग से बदलें. अगर आपने झलक और टैगिंग सर्वर को उपलब्ध कराने के लिए, कमांड लाइन के विकल्पों का पालन किया है, तो हो सकता है कि यह फ़ील्ड पहले से ही भरा हो.
  3. NEW_REGION को उस नए इलाके से बदलें जहां आपको टैगिंग सर्वर को डिप्लॉय करना है.
  4. BACKEND_NAME को उस नाम से बदलें जिसे आपने लोड बैलेंसर को प्रोवाइड करते समय चुना था.
  5. ज़रूरी नहीं: कोई दूसरा क्षेत्र जोड़ने के लिए, NEW_REGION वैरिएबल को बदलें और कोड स्निपेट को फिर से चलाएं.
    gcloud run deploy "server-side-tagging" \
    --region NEW_REGION \
    --image gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable \
    --platform managed \
    --ingress all \
    --min-instances 2 \
    --max-instances 10 \
    --timeout 60 \
    --allow-unauthenticated \
    --no-cpu-throttling \
    --update-env-vars PREVIEW_SERVER_URL="$(
      gcloud run services describe server-side-tagging-preview \--region "REGION" \
      --format="value(status.url)")",CONTAINER_CONFIG="CONTAINER_CONFIG" && \

    gcloud compute network-endpoint-groups create server-side-tagging-neg \
    --region=NEW_REGION \
    --network-endpoint-type=SERVERLESS \
    --cloud-run-service="server-side-tagging" && \

    gcloud compute backend-services add-backend --global "BACKEND_NAME" \
    --network-endpoint-group-region=NEW_REGION \
    --network-endpoint-group=server-side-tagging-neg

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

डेटा को लॉग करने का अनुरोध करना

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

अनुरोध को लॉग करने की सुविधा बंद करने के लिए:

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

    NOT LOG_ID("run.googleapis.com/requests")
    
  5. लोड बैलेंसर से भी लॉगिंग बंद करने के लिए, एक नई लाइन जोड़ें और शामिल करने वाले मौजूदा फ़िल्टर में यह नियम डालें:

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

  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. पुष्टि करें कि लॉग एक्सप्लोरर में कोई नया कंसोल लॉग मैसेज न दिख रहा हो.

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

कस्टम डोमेन सेट अप करने के लिए, ग्लोबल एक्सटर्नल ऐप्लिकेशन लोड बैलेंसर का इस्तेमाल करें.

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

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

  1. Google Tag Manager खोलें.

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

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

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

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

4. पुष्टि

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

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

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

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

काम करता है काम नहीं करता
पहला यूआरएल: example.com/abc
दूसरा यूआरएल: example2.com/abc
पहला यूआरएल: example.com/abc
दूसरा यूआरएल: example2.com/def

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

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

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

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

  1. Cloud Run खोलें.
  2. वह सेवा चुनें जिसे अपडेट करना है.
  3. बदलाव करें और नया रिविज़न डिप्लॉय करें पर क्लिक करें.
  4. पक्का करें कि कंटेनर इमेज का यूआरएल, gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable पर सेट हो. इसके बाद, डिप्लॉय करें पर क्लिक करें.

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

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

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