وبلاگ
SignalHost برای Drupal: ماژول را نصب کنید، یک بار وصل کنید و ردیابی سمت سرور فعال است
منتشرشده · 7 دقیقه مطالعه
ماژول SignalHost بدون حتی یک خط کد چسباندهشده، Google Tag Manager سمت سرور را روی سایت Drupal قرار میدهد. بارگذار ردیابی را به همه صفحههایی که صفحه مدیریت نیستند اضافه میکند، هر وقت چیزی در سمت ما تغییر کند آن را بهروز نگه میدارد و وقتی اتصال را قطع کنید دوباره برش میدارد. این راهنما به همان ترتیبی پیش میرود که با آن روبهرو میشوید: نصب ماژول، اتصال یک کانتینر، بررسی کارکرد و کارهایی که وقتی چیزی کار نمیکند باید انجام دهید.
پیش از شروع
- Drupal نسخه 10.3 یا 11، روی PHP نسخه 8.1 یا جدیدتر با افزونه sodium، که از نسخه 7.2 بخشی از PHP است.
- یک حساب SignalHost. طرح رایگان برای امتحان کافی است: ده هزار درخواست در ماه و یک کانتینر. میتوانید حساب را هنگام اتصال بسازید.
- حسابی با مجوز Administer SignalHost Server-Side Tagging. فقط کاربرانی که این مجوز را دارند میتوانند سایت را وصل کنند یا اتصالش را قطع کنند.
1. نصب ماژول
آن را مانند هر ماژول مشارکتی دیگری از صفحه پروژه در drupal.org نصب کنید: با Composer اضافهاش کنید و سپس فعالش کنید.
composer require drupal/signalhost_server_side_tagging
drush en signalhost_server_side_taggingبدون Drush، آن را در بخش Extend فعال کنید، جایی که با نام SignalHost Server-Side Tagging در گروه Statistics فهرست شده است. تا وقتی سایت وصل نشده باشد چیزی چاپ نمیکند.
2. اتصال سایت به یک کانتینر
پیکربندی › سرویسهای وب › SignalHost (/admin/config/services/signalhost) را باز کنید و «Connect with SignalHost» را بزنید. اگر هنوز حسابی ندارید، «Create a free account» شما را بهجای آن به صفحه ثبتنام میبرد. پیش از آنکه «Connect» را بزنید، هیچ چیزی به SignalHost فرستاده نمیشود.
در signalhost.io وارد شوید. صفحه بعدی فهرست میکند که ماژول چه کارهایی میتواند انجام دهد و چه کارهایی نه، و میپرسد سایت از کدام کانتینر استفاده کند. کانتینر همان سرور تگگذاری خود شماست: یک کانتینر وب و یک کانتینر سرور Tag Manager که در حساب Google خودتان ساخته میشوند، پس متعلق به خودتان میمانند.
یک کانتینر موجود را انتخاب کنید، یا «کانتینر جدید برای سایت شما» را بزنید و مراحل کوتاه راهاندازی را طی کنید. ساخت کانتینر جدید چند دقیقه طول میکشد؛ میتوانید بلافاصله وصل کنید و کد بهمحض آماده شدن آن اضافه میشود. «اتصال» را بزنید. به صفحه SignalHost در Drupal برمیگردید و پیام «Connected» را میبینید. اکنون کد SignalHost به همه صفحههای سایت شما اضافه شده است.
3. بررسی وجود کد در سایت
اکنون صفحه «Tracking is live» را نشان میدهد، یا تا وقتی کانتینر جدید در حال ساخت است «Tracking starts as soon as your container is ready» را. سپس سطر «On your home page» را بخوانید: بلافاصله پس از اتصال، ماژول صفحه اصلی شما را همانطور که یک بازدیدکننده دریافت میکند میگیرد و به دنبال کد خودش میگردد. «Code found» همان پاسخی است که میخواهید. «Check again» هر زمان بررسی را تکرار میکند و پاسخهای دیگر در بخش «وقتی چیزی کار نمیکند» آمدهاند.
4. آزمایش
سایتتان را در یک پنجره خصوصی باز کنید و در چند صفحه بگردید؛ بازدیدکنندهای که بنر کوکی شما را رد میکند همچنان بهصورت پینگ بدون کوکی Google شمرده میشود. سپس «Open statistics & settings» را بزنید تا صفحه کانتینرتان در signalhost.io باز شود.
در «تحلیل پیشرفته»، زبانه «اخیر» بازدیدهای صفحه 30 دقیقه گذشته، از جمله بازدیدهای شما، را نشان میدهد. «اجرای بررسیها» در بخش «عیبیابی» در پایین صفحه، آنچه را سرور تگگذاری شما دریافت کرده با آنچه Google Analytics برای همان 30 دقیقه گزارش میکند مقایسه میکند. کمتر بودن عدد در Analytics عادی است: Analytics بازدیدکنندگانی را که کوکیها را رد کردهاند کنار میگذارد. از طرح Growth به بالا، «پایش زندهٔ رویدادها» هر رویداد را همان لحظه که میرسد نشان میدهد.
آنچه ماژول به سایت شما اضافه میکند
یک اسکریپت کوچک و یک ارتباط ساعتی:
- بارگذار Google Tag Manager، در head همه صفحههایی که صفحه مدیریت نیستند، که بهجای googletagmanager.com به نشانی تگگذاری خود شما اشاره میکند. کانتینر Tag Manager شما را از آنجا بارگذاری میکند. ماژول آن را خودش از دو مقدار بررسیشده میسازد؛ هیچ چیزی که SignalHost میفرستد هرگز بهصورت اسکریپت چاپ نمیشود. این صفحهها یک برچسب کش (cache tag) دارند، پس کش صفحه هر وقت بارگذار تغییر کند تازه میشود، از جمله صفحههایی که پیش از اتصال شما کش شده بودند.
- ساعتی یک بار، پس از ارسال یک پاسخ، ماژول برای بهروز ماندن با signalhost.io ارتباط میگیرد. فقط نسخه ماژول، Drupal و PHP، نشانی سایت شما و اینکه کد در صفحه اصلی پیدا شده یا نه را میفرستد: نه داده بازدیدکنندگان، نه محتوا و نه حسابهای کاربری. اگر signalhost.io در دسترس نباشد، سایت آخرین پیکربندی سالم را نگه میدارد. هیچ چیزی از آنچه ذخیره میکند همراه خروجی پیکربندی (configuration export) جابهجا نمیشود.
هر درخواست به شکلی از مرورگر خارج میشود که مسدودکنندههای تبلیغات آن را نمیشناسند، و سرور تگگذاری شما آن را به Google Analytics 4 و پلتفرمهای تبلیغاتیای که در صفحه کانتینر راهاندازی کردهاید منتقل میکند: Google Ads، Meta، TikTok و دیگران. ردیابی از طریق Google Consent Mode از بنر کوکی شما پیروی میکند؛ کد بنرتان را پیش از کد SignalHost قرار دهید.
ماژول فرمها یا سفارشها را نمیخواند، از جمله Drupal Commerce. بازدیدهای صفحه خودبهخود میرسند؛ یک خرید یا یک سرنخ وقتی به کانتینرتان میرسد که سایتتان آن را به لایه داده push کند.
دامنه ردیابی خودتان
کانتینر شما روی نشانیای زیر signalhost.io شروع به کار میکند. در یک طرح پولی، «راهاندازی دامنه خودتان» در صفحه کانتینر آن را با یک رکورد DNS نزد ارائهدهندهتان به زیردامنهای از سایت خودتان، مانند sgtm.yoursite.com، منتقل میکند. این نشانی از فهرستهای فیلتر جان سالم به در میبرد و کوکیهای کلیک را شخص اول نگه میدارد. وقتی فعال شد، ماژول در ارتباط بعدی خود، معمولاً ظرف یک ساعت، سایت شما را به آن منتقل میکند و برچسب کش، صفحههای کششده شما را تازه میکند. لازم نیست چیزی را دستی جایگزین کنید و نشانی قدیمی تا آن زمان همچنان کار میکند.
افزودن دستی SignalHost
میتوانید کد را خودتان هم بچسبانید. در صفحه کانتینر، قطعهکدتان را در کارت «نصب روی سایت شما» پیدا کنید و «کپی» را بزنید. آن را در head همه صفحهها (در Drupal، از طریق پوستهتان)، درست پس از اسکریپت بنر کوکیتان بچسبانید و «این کار را انجام دادم» را بزنید. «کپی برای دستیار هوش مصنوعی» همین کار را به یک دستیار برنامهنویسی هوش مصنوعی میسپارد.
چسباندن دستی، کارهایی را که ماژول انجام میدهد از دست میدهد: هیچ چیز صفحه اصلی شما را بررسی نمیکند، هیچ چیز هنگام قطع اتصال کد را حذف نمیکند، و وقتی دامنه خودتان فعال شود، کد را خودتان جایگزین میکنید، از «قطعهکد وبسایت خود را بهروز کنید» در همان کارت یا از ایمیلی که فعال شدن دامنه را اعلام میکند. هرگز هر دو راه را با هم به کار نبرید: دو نسخه هر بازدید را دو بار میشمارند.
بهروزرسانی، مدیریت و قطع اتصال
بهروزرسانیها از طریق Composer میرسند و مانند هر ماژول drupal.org، بخش وضعیت بهروزرسانی Drupal (Update status) نسخههای جدید را گزارش میکند.
«Disconnect» در صفحه SignalHost یک بار میپرسد: «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»: نسخهای دستی در یک پوسته، یک بلوک یا ماژول دیگری چسبانده شده است. حذفش کنید؛ ماژول نسخه فعلی را اضافه میکند و دو نسخه هر بازدید را دو بار میشمارند.
- پیامی میگوید سایت شما از قبل یک کانتینر Tag Manager را با قطعهکد خود Google بارگذاری میکند: آن قطعهکد را حذف کنید، چون اکنون SignalHost کانتینر را بارگذاری میکند و این دو با هم هر بازدید را دو بار میشمارند. همین درباره ماژول Google Tag Manager (google_tag) هم صدق میکند: یکی از این دو را به کار ببرید، نه هر دو را.
- «This site's address has changed since it was connected»: روی یک نسخه کپی، مانند staging، هیچ چیزی فرستاده نمیشود. اگر سایت اصلی جابهجا شده است، اتصال را قطع کنید و دوباره وصل کنید.
- «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 است.

