ब्लॉग पर वापस जाएँ

ब्लॉग

Drupal के लिए SignalHost: मॉड्यूल इंस्टॉल करें, एक बार कनेक्ट करें, और सर्वर-साइड ट्रैकिंग लाइव है

प्रकाशित · पढ़ने में 7 मिनट

Drupal.org पर पाएँ

SignalHost मॉड्यूल बिना कोड की एक भी लाइन पेस्ट किए Drupal साइट पर सर्वर-साइड Google Tag Manager लगा देता है। यह एडमिनिस्ट्रेशन पेजों को छोड़कर हर पेज पर ट्रैकिंग लोडर जोड़ता है, हमारी तरफ़ कुछ भी बदलने पर उसे अप-टू-डेट रखता है, और आपके डिस्कनेक्ट करने पर उसे फिर से हटा देता है। यह गाइड उसी क्रम में चलती है जिसमें आपका इससे सामना होता है: मॉड्यूल इंस्टॉल करना, कंटेनर कनेक्ट करना, जाँचना कि यह काम करता है, और कुछ काम न करे तो क्या करें।

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

  • PHP 8.1 या उसके बाद के वर्ज़न पर sodium एक्सटेंशन के साथ चलने वाला Drupal 10.3 या 11; यह एक्सटेंशन PHP 7.2 से PHP का हिस्सा है।
  • एक SignalHost खाता। आज़माने के लिए फ़्री प्लान काफ़ी है: हर महीने 10,000 रिक्वेस्ट और एक कंटेनर। खाता आप कनेक्ट करते समय भी बना सकते हैं।
  • Administer SignalHost Server-Side Tagging अनुमति वाला एक खाता। सिर्फ़ यह अनुमति रखने वाले यूज़र ही साइट को कनेक्ट या डिस्कनेक्ट कर सकते हैं।

1. मॉड्यूल इंस्टॉल करें

इसे किसी भी दूसरे contributed मॉड्यूल की तरह उसके drupal.org प्रोजेक्ट पेज से इंस्टॉल करें: Composer से जोड़ें, फिर चालू करें।

composer require drupal/signalhost_server_side_tagging
drush en signalhost_server_side_tagging

Drush के बिना इसे Extend में चालू करें, जहाँ यह Statistics समूह में SignalHost Server-Side Tagging नाम से सूचीबद्ध है। जब तक साइट कनेक्ट न हो, यह कुछ भी प्रिंट नहीं करता।

2. साइट को किसी कंटेनर से कनेक्ट करें

Configuration › Web services › SignalHost (/admin/config/services/signalhost) खोलें और “Connect with SignalHost” दबाएँ। अगर आपके पास अभी कोई खाता नहीं है, तो “Create a free account” आपको इसके बजाय साइन-अप पर ले जाता है। Connect दबाने से पहले SignalHost को कुछ नहीं भेजा जाता।

signalhost.io पर साइन इन करें। अगली स्क्रीन बताती है कि मॉड्यूल क्या कर पाएगा और क्या नहीं, और पूछती है कि साइट कौन-सा कंटेनर इस्तेमाल करे। कंटेनर आपका अपना टैगिंग सर्वर है: एक Tag Manager वेब कंटेनर और एक सर्वर कंटेनर, जो आपके अपने Google खाते में बनाए जाते हैं, इसलिए वे आपके ही रहते हैं।

कोई मौजूदा कंटेनर चुनें, या “आपकी साइट के लिए नया कंटेनर” दबाएँ और छोटे विज़ार्ड से गुज़रें। नया कंटेनर बनने में कुछ मिनट लगते हैं; आप तुरंत कनेक्ट कर सकते हैं, और तैयार होते ही कोड जोड़ दिया जाता है। “कनेक्ट करें” दबाएँ। आप “Connected” संदेश के साथ Drupal में SignalHost पेज पर लौट आते हैं। अब SignalHost का कोड आपकी साइट के हर पेज पर जुड़ गया है।

3. जाँचें कि कोड आपकी साइट पर है

अब पेज पर “Tracking is live” लिखा होता है, या जब तक नया कंटेनर बन रहा हो, “Tracking starts as soon as your container is ready”। फिर “On your home page” वाली लाइन पढ़ें: कनेक्ट करने के ठीक बाद मॉड्यूल आपका होम पेज वैसे ही फ़ेच करता है जैसे कोई विज़िटर करेगा, और उसमें अपना कोड ढूँढता है। आपको जो जवाब चाहिए, वह है “Code found”। “Check again” यह जाँच कभी भी दोहराता है, और बाक़ी जवाब “जब कुछ काम न करे” में बताए गए हैं।

4. इसे टेस्ट करें

अपनी साइट को एक प्राइवेट विंडो में खोलें और कुछ पेजों पर क्लिक करें; जो विज़िटर आपके कुकी बैनर में मना करता है, वह भी Google के कुकी-रहित पिंग के रूप में गिना जाता है। फिर signalhost.io पर अपना कंटेनर पेज खोलने के लिए “Open statistics & settings” दबाएँ।

“एन्हांस्ड एनालिटिक्स” के तहत “हालिया” टैब पिछले 30 मिनट के पेज व्यू दिखाता है, जिनमें आपके भी होते हैं। पेज के सबसे नीचे “समस्या निवारण” के तहत “जाँच चलाएँ” इसकी तुलना करता है कि आपके टैगिंग सर्वर को क्या मिला और Google Analytics उन्हीं 30 मिनटों के लिए क्या रिपोर्ट करता है। Analytics में कम दिखना सामान्य है: वह उन विज़िटर को छोड़ देता है जिन्होंने कुकी से मना किया। Growth प्लान या उससे ऊपर के प्लान पर “लाइव इवेंट मॉनिटरिंग” हर इवेंट को आते ही दिखाता है।

मॉड्यूल आपकी साइट में क्या जोड़ता है

एक छोटी स्क्रिप्ट, और हर घंटे एक चेक-इन:

  • Google Tag Manager लोडर, एडमिनिस्ट्रेशन पेजों को छोड़कर हर पेज के head में, जो googletagmanager.com के बजाय आपके अपने टैगिंग पते की ओर पॉइंट करता है। यह वहीं से आपका Tag Manager कंटेनर लोड करता है। मॉड्यूल इसे दो जाँची हुई वैल्यू से ख़ुद बनाता है; SignalHost जो कुछ भेजता है, उसे कभी स्क्रिप्ट के रूप में प्रिंट नहीं किया जाता। इन पेजों पर एक कैश टैग होता है, इसलिए लोडर बदलने पर पेज कैश हर बार रीफ़्रेश हो जाता है, आपके कनेक्ट करने से पहले कैश हुए पेजों समेत।
  • हर घंटे एक बार, कोई रिस्पॉन्स भेजे जाने के बाद, मॉड्यूल अप-टू-डेट रहने के लिए signalhost.io पर चेक-इन करता है। यह सिर्फ़ मॉड्यूल, Drupal और PHP के वर्ज़न, आपकी साइट का पता और यह भेजता है कि आपके होम पेज पर कोड मिला या नहीं: न विज़िटर का कोई डेटा, न कंटेंट, न यूज़र खाते। अगर signalhost.io तक नहीं पहुँचा जा सकता, तो साइट आख़िरी सही कॉन्फ़िगरेशन पर चलती रहती है। यह जो कुछ भी सहेजता है, वह कॉन्फ़िगरेशन एक्सपोर्ट के साथ कहीं नहीं जाता।

हर रिक्वेस्ट ब्राउज़र से ऐसे रूप में निकलती है जिसे ऐड ब्लॉकर नहीं पहचानते, और आपका टैगिंग सर्वर उसे Google Analytics 4 और कंटेनर पेज पर सेट किए गए विज्ञापन प्लेटफ़ॉर्म तक पहुँचाता है: Google Ads, Meta, TikTok और दूसरे। ट्रैकिंग Google Consent Mode के ज़रिए आपके कुकी बैनर के हिसाब से चलती है; अपने बैनर का कोड SignalHost के कोड से पहले रखें।

मॉड्यूल फ़ॉर्म या ऑर्डर नहीं पढ़ता, Drupal Commerce के भी नहीं। पेज व्यू अपने-आप पहुँचते हैं; कोई खरीदारी या लीड आपके कंटेनर तक तब पहुँचती है जब आपकी साइट उसे dataLayer में पुश करती है।

आपका अपना ट्रैकिंग डोमेन

आपका कंटेनर signalhost.io के नीचे के एक पते से शुरू होता है। पेड प्लान पर, कंटेनर पेज का “अपना डोमेन सेट अप करें” इसे आपके प्रोवाइडर पर एक DNS रिकॉर्ड के साथ आपकी अपनी साइट के एक सबडोमेन, जैसे sgtm.yoursite.com, पर ले जाता है। वह पता फ़िल्टर लिस्ट से बच निकलता है और क्लिक कुकी को फ़र्स्ट-पार्टी रखता है। इसके लाइव होने पर मॉड्यूल अपने अगले चेक-इन पर, आमतौर पर एक घंटे के भीतर, आपकी साइट को इस पर स्विच कर देता है, और कैश टैग आपके कैश किए गए पेज रीफ़्रेश कर देता है। हाथ से कुछ भी बदलना नहीं पड़ता, और तब तक पुराना पता काम करता रहता है।

SignalHost को हाथ से जोड़ना

आप कोड ख़ुद भी पेस्ट कर सकते हैं। कंटेनर पेज पर “अपनी साइट पर इंस्टॉल करें” कार्ड में अपना स्निपेट ढूँढें और “कॉपी करें” दबाएँ। इसे हर पेज के head में (Drupal में, अपनी थीम के ज़रिए) अपने कुकी बैनर की स्क्रिप्ट के ठीक बाद पेस्ट करें, और “मैंने यह कर लिया है” दबाएँ। “AI एजेंट के लिए कॉपी करें” यही काम किसी कोडिंग एजेंट को सौंप देता है।

हाथ से पेस्ट करने पर वह सब छूट जाता है जो मॉड्यूल करता है: कोई आपके होम पेज की जाँच नहीं करता, डिस्कनेक्ट करने पर कोई कोड नहीं हटाता, और जब आपका अपना डोमेन लाइव होता है, तो कोड आपको ख़ुद बदलना पड़ता है, कार्ड के “अपनी वेबसाइट का स्निपेट अपडेट करें” से या डोमेन की सूचना वाले ईमेल से। दोनों रास्ते कभी एक साथ इस्तेमाल न करें: दो कॉपी हर विज़िट को दो बार गिनती हैं।

अपडेट, मैनेज करना और डिस्कनेक्ट करना

अपडेट Composer के ज़रिए आते हैं, और हर drupal.org मॉड्यूल की तरह Drupal का अपडेट स्टेटस नई रिलीज़ की सूचना देता है।

SignalHost पेज पर “Disconnect” एक बार पूछता है: “Disconnect this site from SignalHost?” पुष्टि करने पर साइट का एक्सेस रद्द हो जाता है, हर पेज से कोड हट जाता है और आपके कैश किए गए पेज रीफ़्रेश हो जाते हैं। आपका कंटेनर और उसके आँकड़े बने रहते हैं, और आप कभी भी फिर से कनेक्ट कर सकते हैं।

signalhost.io पर कंटेनर पेज पर “आपकी साइट पर Drupal मॉड्यूल द्वारा इंस्टॉल किया गया” लिखा होता है। उसका “प्रबंधित करें” बटन “सेटिंग्स” में “कनेक्ट की गई साइटें” पर ले जाता है, जहाँ “डिस्कनेक्ट करें” भी काम करता है: मॉड्यूल अपने अगले चेक-इन पर, आमतौर पर एक घंटे के भीतर, SignalHost लोड करना बंद कर देता है।

मॉड्यूल अनइंस्टॉल करने से भी साइट का एक्सेस रद्द हो जाता है और मॉड्यूल का सहेजा हुआ सब कुछ हट जाता है।

जब कुछ काम न करे

  • “Could not check (your server refused a request to itself)”: आपका होस्ट अपने ही पते पर भेजी गई रिक्वेस्ट रोकता है। इससे आपके विज़िटर के बारे में कुछ पता नहीं चलता; अपने होम पेज के सोर्स में अपना टैगिंग पता ढूँढें।
  • “An older copy is on the page” या “The code is on the page twice”: किसी ने हाथ से किसी थीम, ब्लॉक या दूसरे मॉड्यूल में एक कॉपी पेस्ट की है। उसे हटाएँ; मौजूदा कोड मॉड्यूल ख़ुद जोड़ता है, और दो कॉपी हर विज़िट को दो बार गिनती हैं।
  • एक नोटिस कि आपकी साइट पहले से Google के अपने स्निपेट से कोई Tag Manager कंटेनर लोड करती है: वह स्निपेट हटाएँ, क्योंकि अब SignalHost कंटेनर लोड करता है और दोनों मिलकर हर विज़िट को दो बार गिनते हैं। यही बात Google Tag Manager मॉड्यूल (google_tag) पर भी लागू होती है: दोनों में से एक ही इस्तेमाल करें, दोनों नहीं।
  • “This site's address has changed since it was connected”: किसी कॉपी पर, जैसे स्टेजिंग पर, कुछ नहीं भेजा जाता। अगर लाइव साइट का पता बदला है, तो डिस्कनेक्ट करके फिर से कनेक्ट करें।
  • “Last update” पुराना है: मॉड्यूल पेज रिक्वेस्ट के बाद चेक-इन करता है, cron से कभी नहीं। SignalHost पेज खोलने पर भी चेक-इन चलता है, और “Check again” एक चेक-इन ज़बरदस्ती करवाता है।
  • कुछ और: अपनी साइट के पते के साथ hello@signalhost.io पर लिखें।

ट्रेडमार्क

SignalHost, Algorithmo GmbH का एक स्वतंत्र प्रोडक्ट है और Drupal प्रोजेक्ट, Google, Meta या TikTok से न तो संबद्ध है, न ही उनके द्वारा समर्थित है। Google Analytics, Google Ads और Google Tag Manager, Google LLC के ट्रेडमार्क हैं; Meta, Meta Platforms, Inc. का ट्रेडमार्क है; TikTok, ByteDance Ltd. का ट्रेडमार्क है; Drupal, Dries Buytaert का रजिस्टर्ड ट्रेडमार्क है।

ऐड ब्लॉकर्स की वजह से डेटा खोना बंद करें

मुफ़्त शुरू करें। कुछ ही मिनटों में पहला कंटेनर चालू करें।