وبلاگ
SignalHost برای WordPress: Google Tag Manager سمت سرور و رویدادهای WooCommerce با یک افزونه
منتشرشده · 7 دقیقه مطالعه
افزونه SignalHost بدون چسباندن هیچ کدی، Google Tag Manager سمت سرور را روی سایت WordPress قرار میدهد. ردیابی را به همه صفحهها میافزاید، رویدادهای WooCommerce، فرم و ثبتنام را با همان ساختاری که کانتینرتان انتظار دارد میفرستد، وقتی دامنه ردیابی خودتان فعال شود خودش به آن منتقل میشود و درباره هر چیزی که ممکن است دو بار شمرده شود به شما هشدار میدهد. این راهنما به همان ترتیبی پیش میرود که با آن روبهرو میشوید: نصب، اتصال، بررسی و رفع آنچه کار نمیکند.
پیش از شروع
- WordPress نسخه 6.6 یا بالاتر روی PHP نسخه 7.4 یا بالاتر، و یک حساب مدیر (administrator).
- نشانی سایتی که با https:// شروع شود؛ اتصال به آن نیاز دارد. سایتهای دیگر هم میتوانند با یک قطعهکد چسباندهشده از افزونه استفاده کنند که در ادامه توضیح داده شده است.
- یک حساب SignalHost. طرح رایگان برای امتحان کافی است: ده هزار درخواست در ماه و یک کانتینر. میتوانید حساب را هنگام اتصال بسازید.
- WooCommerce، اگر رویدادهای فروشگاه را میخواهید. رویدادهای فرم و ثبتنام بدون آن هم کار میکنند.
1. نصب افزونه
در WordPress به Plugins → Add New بروید، SignalHost را جستوجو کنید، سپس SignalHost – Server-Side Tag Hosting for Google Tag Manager را نصب و فعال کنید. این افزونه گزینهای به نام SignalHost به منوی پیشخوان شما اضافه میکند و تا وقتی سایت را وصل نکنید با هیچ سرویس بیرونی تماس نمیگیرد.
2. اتصال سایت به یک کانتینر
SignalHost را در منو باز کنید و «Connect with SignalHost» را بزنید، یا اگر تازهوارد هستید «Create a free account» را. مرورگرتان به signalhost.io میرود و وقتی کارتان تمام شد برمیگردد.
در آنجا، صفحه «اتصال یک وبسایت» فهرست میکند که افزونه چه کارهایی میتواند انجام دهد — افزودن کد ردیابی شما به همه صفحهها، بهروز نگه داشتن آن و خواندن وضعیت کانتینر — و چه کارهایی نمیتواند: استفاده از حساب Google شما، توکنهای پلتفرمهای تبلیغاتیتان یا صورتحسابتان. سپس میپرسد سایت از کدام کانتینر استفاده کند. کانتینر همان سرور تگگذاری خود شماست: یک کانتینر وب و یک کانتینر سرور Tag Manager که در حساب Google خودتان ساخته میشوند، پس متعلق به خودتان میمانند.
یکی را انتخاب کنید و «اتصال» را بزنید، یا «کانتینر جدید برای سایت شما» را برگزینید و برای مراحل کوتاه راهاندازی «ایجاد کانتینر» را بزنید؛ این مراحل پیشنهاد میکنند سایت را پیش از پایان ساخت وصل کنید و افزونه کد را همان لحظهای اضافه میکند که کانتینر آماده شود. در بازگشت به WordPress، پیامی میگوید که سایت متصل شده است.
3. بررسی کارکرد
زبانه «Status» یک چکلیست است که از بالا به پایین سبز میشود: «Connected to SignalHost»، «Tracking code on your site»، «SignalHost served the code to a visitor» و «Data arriving». مرحله دوم از اینجا میآید که افزونه صفحه اصلی شما را همانطور دریافت میکند که یک بازدیدکننده واردنشده آن را میبیند؛ «Check again» این کار را تکرار میکند.
سایتتان را در مرورگر باز کنید، محصولی به سبد خرید اضافه کنید و فرمی بفرستید. مرحله سوم ظرف یک دقیقه پس از نخستین بازدید سبز میشود و «Data arriving» پس از آن بازدیدهای صفحه 7 روز گذشته را میشمارد. «Log events in the browser console» در بخش «Advanced» هر رویداد را هنگام خروج از صفحه نشان میدهد، و از طرح Growth به بالا، صفحه کانتینر در signalhost.io آنها را زیر «پایش زندهٔ رویدادها» فهرست میکند.
آنچه افزونه به سایت شما اضافه میکند
بارگذار Google Tag Manager، در head همه صفحهها، که بهجای googletagmanager.com به نشانی تگگذاری خود شما اشاره میکند، پس از بنر کوکیتان قرار میگیرد و از قابلیتهای «delay JavaScript» (به تأخیر انداختن JavaScript) در افزونههای رایج بهبود سرعت مستثنا میشود. علاوه بر بازدیدهای صفحهای که کانتینرتان میفرستد، افزونه این رویدادها را push میکند، هر کدام با event_id خودش، تا Meta، TikTok و پلتفرمهای دیگر یک رویداد پیکسل مرورگر و همتای سروریاش را فقط یک بار بشمارند:
- WooCommerce: view_item_list، view_item، add_to_cart، remove_from_cart، view_cart، begin_checkout، add_shipping_info، add_payment_info و purchase، هم با سبد خرید و صفحه پرداخت کلاسیک و هم با نسخه مبتنی بر بلوک. هر سفارش یک بار ارسال میشود و روی خود سفارش علامت میخورد، هر چند بار هم که صفحه تشکر باز شود.
- فرمها: ارسالهای موفق از Contact Form 7، WPForms، Gravity Forms، فرمهای Elementor Pro و Fluent Forms، بهصورت سرنخ (generate_lead)، تماس (contact)، رزرو (schedule)، درخواست (submit_application) یا اشتراک (subscribe)، که برای هر فرم جداگانه انتخاب میشود.
- ثبتنامها: sign_up وقتی بازدیدکنندهای حساب میسازد، در صفحه ثبتنام، در My Account یا هنگام پرداخت.
هر نوع یک کلید در بخش «What is tracked» دارد. رویدادهای سبد خرید، پرداخت، فرم و ثبتنام از نشست خود بازدیدکننده میآیند، هرگز از HTML صفحه؛ بنابراین کش صفحه نمیتواند رویداد یک بازدیدکننده را به نفر بعدی تحویل دهد.
«Send customer details for better ad matching» تا وقتی خودتان روشنش نکنید خاموش است. پس از آن، ایمیل، تلفن و نشانی فقط وقتی همراه تبدیلها میروند که بازدیدکننده کوکیهای تبلیغاتی را مجاز کرده باشد، و پیش از رسیدن به پلتفرمهای تبلیغاتی هش میشوند. رضایت از طریق Google Consent Mode از بنر کوکی شما پیروی میکند؛ اگر بنرتان آن را تنظیم نمیکند، همینجا در بخش «Consent & privacy» گزینه «Set “denied until consent”» را انتخاب کنید.
اگر از قبل از GTM4WP یا تگ Google دیگری استفاده میکنید
افزونه صفحه اصلی شما را میخواند، افزونههای دیگرتان را بررسی میکند و هر چیزی را که ممکن است دو بار شمرده شود زیر «Double-counting check» فهرست میکند: قطعهکد SignalHost که پیشتر چسباندهاید، قطعهکد Tag Manager خود Google یا تگ Google برای همان ویژگی، Site Kit، MonsterInsights، ExactMetrics یا Google Analytics for WooCommerce.
برای GTM4WP راهحلهای یککلیکی وجود دارد. «Turn off GTM4WP’s container code» جلوی بارگذاری همان کانتینر را مستقیماً از Google میگیرد، در حالی که لایه داده (data layer) آن همچنان کار میکند؛ «Turn off GTM4WP’s shop tracking» رویدادهای فروشگاه را به SignalHost میسپارد. «Undo» هر کدام را برمیگرداند.
دامنه ردیابی خودتان
کانتینر شما روی نشانیای زیر signalhost.io شروع به کار میکند. در یک طرح پولی، «راهاندازی دامنه خودتان» در صفحه کانتینر شما را گامبهگام، با یک رکورد DNS، به زیردامنهای از سایت خودتان مانند metrics.yoursite.com میرساند. مرورگرها آن را شخص اول میدانند، پس کوکیهایش کوکیهای خود شما به حساب میآیند و کلیکهای تبلیغ همچنان به حساب کمپین گذاشته میشوند. وقتی فعال شد، افزونه در ارتباط بعدی خود، معمولاً ظرف یک ساعت، سایت شما را به آن منتقل میکند و کش صفحههایتان را پاک میکند. لازم نیست چیزی را دستی جایگزین کنید.
افزودن دستی SignalHost
میتوانید SignalHost را بدون افزونه هم روی WordPress اجرا کنید. در signalhost.io کانتینرتان را باز کنید، قطعهکد را در کارت «نصب روی سایت شما» پیدا کنید و «کپی» را بزنید. آن را در head همه صفحهها بچسبانید، تا جای ممکن بالا اما پس از اسکریپت بنر کوکیتان: یک افزونه هدر مانند WPCode (کادر Header آن) یا فایل header.php قالبتان کار میکند. اگر سایت از قبل Google Tag Manager یا تگ Google را برای همان ویژگی Analytics بارگذاری میکند، آن قطعهکد را جایگزین کنید، نه اینکه قطعهکد دومی اضافه کنید. سپس «این کار را انجام دادم» را بزنید.
این کار کانتینر Tag Manager شما را روی همه صفحهها قرار میدهد، همراه با بازدیدهای صفحه و هر آنچه سایتتان خودش به لایه داده push میکند. اما هر آنچه افزونه اضافه میکند از دست میرود: رویدادهای WooCommerce، فرم و ثبتنام، purchase یکباره برای هر سفارش و هر دو بررسی. وقتی دامنه خودتان فعال شود، قطعهکد را خودتان جایگزین میکنید.
برای سایتی که نمیتواند وصل شود، مثلاً سایتی بدون https://، راه میانهای هست: در افزونه «I already have a snippet from SignalHost» را انتخاب کنید، کد را بچسبانید و «Use this snippet» را بزنید. رویدادها همچنان جریان دارند، اما افزونه نمیتواند به دامنه خودتان منتقل شود یا نشان دهد که داده میرسد یا نه.
مدیریت و قطع اتصال
«Disconnect» در زبانه «Status» یک بار تأیید میخواهد و سپس کد ردیابی را بیدرنگ از همه صفحهها حذف میکند. کانتینر و دادههایش باقی میمانند و «Connect with SignalHost» هر زمان سایت را برمیگرداند. «تنظیمات › سایتهای متصل» در signalhost.io هم این سایت را فهرست میکند؛ «قطع اتصال» در آنجا کد را در ارتباط بعدی افزونه، معمولاً ظرف یک ساعت، برمیدارد.
حذف افزونه اتصال سایت را قطع میکند و هر آنچه افزونه ذخیره کرده بود پاک میکند. روی یک نسخه آزمایشی (staging)، افزونه متوجه تغییر نشانی میشود و ردیابی را متوقف میکند تا ترافیک آزمایشی از دادههای واقعی شما بیرون بماند.
وقتی چیزی کار نمیکند
- دکمه Connect وجود ندارد: نشانی سایت با https:// شروع نمیشود. بهجای آن از «I already have a snippet from SignalHost» استفاده کنید.
- اتصال با پیامی درباره فایروال متوقف میشود: یک افزونه امنیتی یا خود سرور، درخواستها به signalhost.io را مسدود میکند. آنها را مجاز کنید و دوباره «Connect» را بزنید.
- کد در صفحه اصلی شما پیدا نشد: قالبی بدون wp_head()، یک کش صفحه یا یک افزونه بهینهسازی آن را حذف میکند. در بخش «Advanced» دکمه «Clear page caches» و سپس «Check again» را بزنید.
- کد دو بار در صفحه اصلی شما آمده است، یا نسخه قدیمیتری آنجاست: قطعهکدی را که پیشتر در قالب یا یک افزونه هدر چسبانده بودید حذف کنید.
- صفحه اصلی از این سرور باز نشد: محافظت با رمز عبور، حالت تعمیر و نگهداری یا یک فایروال مانع است. سایت را در مرورگر باز کنید تا آنجا بررسیاش کنید.
- بازدیدهای خودتان دیده نمیشوند: «Do not track administrators» روشن است. بدون ورود به حساب از سایت بازدید کنید.
- هر مورد دیگر: با ذکر نشانی سایتتان به hello@signalhost.io بنویسید.
علائم تجاری
SignalHost محصولی مستقل از Algorithmo GmbH است و هیچ وابستگیای به WordPress Foundation، WooCommerce، Google، Meta یا TikTok ندارد و از سوی آنها تأیید نشده است. Google Analytics، Google Ads و Google Tag Manager علائم تجاری Google LLC هستند؛ Meta علامت تجاری Meta Platforms, Inc. است؛ TikTok علامت تجاری ByteDance Ltd. است؛ WordPress علامت تجاری WordPress Foundation است. WooCommerce و نامهای دیگر افزونههایی که در اینجا آمدهاند علائم تجاری مالکان مربوط به خود هستند.

