راهنمای استقرار و پیکربندی Server-Side Tagging در گوگل تگ منیجر
پیادهسازی سمت سرور (Server-Side Tagging) انتقال بار پردازش و ردیابی دادهها از مرورگر کاربر به یک سرور ابری است. در این مقاله سه روش اصلی برای پیادهسازی سرورساید تگینگ بر روی گوگل تگ منیجر را شرح میدهیم که سومین روش آن، یعنی استقرار کانتینر GTM در PaaS پارسپک بهترین راهکار برای انجام این فرایند است. پس برای آشنایی با این مفاهیم و نحوه انجام آنها این مقاله از بخش آموزش سرور در بلاگ پارسپک را بخوانید.
برای پیادهسازی سرورساید تگینگ، پیش از انجام هرگونه تنظیمات در پنل تگ منیجر، نیازمند یک محیط ابری هستید تا بار پردازشی را از مرورگر کاربر تحویل گرفته و مدیریت کند. در این بخش، سه مسیر متفاوت برای استقرار این زیرساخت را با تمام اطلاعات، هزینههای پنهان و محدودیتهای عملیاتی ارزیابی میکنیم.
شما میتوانید طبق بودجه، نیاز سازمان و توانمندی تیم فنی خود، یکی از این سه روش را انتخاب و اجرا کنید. پس از روشن شدن سرور و اتصال دامنه در روش انتخابی خود، برای تکمیل فرایند مستقیما به «بخش دوم» (پیکربندی نهایی در پنل GTM) مراجعه کنید.
یکی از راههای راهاندازی محیط Server-Side Tagging، استفاده از زیرساختهای ابری گوگل است. گوگل برای این منظور دو سرویس مجزا ارائه میدهد:
نکته:
گوگل در مستندات رسمیاش صراحتا توصیه میکند که از روش استقرار روی گوگل کلود با سرویس App Engine، استفاده نکنید و به جای آن محیط Cloud Run را انتخاب نمایید.
سریعترترین راه برای ساخت سرور در این روش، استفاده از دکمه استقرار خودکار است. پس از ساخت کانتینر در پنل GTM، با انتخاب گزینه Automatically provision tagging server و اتصال حساب پرداخت ارزی، گوگل یک سرور تستی روی Cloud Run میسازد. برآیند این کار، اختصاص یک آدرس پیشفرض به شکل https://[PROJECT_ID]-uc.a.run.app است. توجه داشته باشید که این فرایند خودکار را فقط یک بار میتوانید اجرا کنید.
علاوه بر محیطهای مدیریتشده گوگل، فرصت استقرار سرور GTM به صورت جامعا دستی و از طریق Docker نیز وجود دارد. در این حالت، شما کنترل جامعی روی زیرساخت دارید، اما به دلیل ماهیت خام داکر، با فرایند استقرار و چرخه نگهداری پیچیدهتری روبرو خواهید شد. سرور GTM یک سرور Node.js است که داخل یک ایمیج داکر (Docker Image) اجرا میشود. استقرار دستی به دو جزء اساسی نیاز دارد:
پیشنیاز: ابزار خط فرمان Docker باید روی سیستم شما نصب باشد.
هر دو سرور SST و پیشنمایش از یک ایمیج داکر یکسان اما با فلگهای (Flags) متفاوت استفاده میکنند. این ایمیج در آدرس زیر قرار دارد:
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
برای مشاهده تمامی تنظیمات در دسترس، دستور زیر را اجرا کنید:
docker run gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable server_bin.js --help
افزودن کلیدهای دسترسی Google Cloud
برای استفاده از APIهای BigQuery یا Firestore خارج از محیط گوگل کلود، به Service Account Credential نیاز دارید.
۱. حساب خدماتی با نقش BigQuery Data Editor (برای بیگکوئری) یا Cloud Datastore User (برای فایراستور) ایجاد کنید.
۲. کلید JSON را با نام local_service_account_key.json دانلود کنید.
۳. این فایل را در والیوم داکر مونت (Mount) کنید و متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS را به مسیر آن اختصاص دهید.
۴. شناسه پروژه را در متغیر GOOGLE_CLOUD_PROJECT تنظیم کنید. (اختیاری)
نمونه دستور اجرا با کلیدها:
docker run -v local_service_account_key.json:/app/service_account_key.json -p 8080:8080 -e GOOGLE_APPLICATION_CREDENTIALS='/app/service_account_key.json' -e GOOGLE_CLOUD_PROJECT='' -e CONTAINER_CONFIG='' gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
نکته فنی:
روش مونت کردن در سیستمهایی مثل Kubernetes یا Docker Swarm متفاوت است. اکیدا توصیه میشود بهترین روشهای امنیتی را برای نگهداری از کلیدها (Secrets) رعایت کنید.
برای اجرای سرور پیشنمایش جهت مشاهده کانتینر سرور، متغیرهای محیطی زیر الزامی است:
CONTAINER_CONFIG: رشته پیکربندی کانتینر. (مسیر در تگ منیجر: تب کانتینر سرور > Container ID > کلیک روی Manually provision tagging server).
RUN_AS_PREVIEW_SERVER: باید روی true تنظیم شود.
دستور استقرار محلی:
docker run -p 8080:8080 -e CONTAINER_CONFIG='' -e RUN_AS_PREVIEW_SERVER=true gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
تست سلامت: ارسال درخواست به http://localhost:8080/healthy باید کد پاسخ 200 برگرداند. برای تغییر پورت از متغیر PORT استفاده کنید.
الزامات زیرساخت:
دقیقا یک سرور پیشنمایش دیپلوی کنید. به هیچ وجه مقیاسپذیری خودکار (Autoscaling) برای آن تنظیم نکنید.
پس از راهاندازی، یک آدرس HTTPS به آن اختصاص دهید (برای راهاندازی کلاستر در مرحله بعد الزامی است).
تایماوت لودبالانسر یا CDN حتما باید بیشتر از ۲۰ ثانیه باشد، در غیر این صورت حالت پیشنمایش از کار میافتد.
این کلاستر ترافیک اصلی را مدیریت کرده و به عنوان واسطه، درخواستهای پیشنمایش را به سرور مجزا هدایت میکند.
متغیرهای الزامی:
دستور استقرار محلی:
docker run -p 8080:8080 -e CONTAINER_CONFIG='' -e PREVIEW_SERVER_URL='' gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
تست سلامت: مشابه سرور پیشنمایش، درخواست به مسیر /healthy روی پورت تعیینشده باید پاسخ 200 برگرداند.
ایمیج داکر برای رفع باگهای امنیتی و افزودن مشخصههای نوین، به صورت دورهای آپدیت میشود. اکیدا پیشنهاد میشود حداقل برای انتشار ادیشنهای اصلی (مثلا ارتقا از 1.x به 2.x) فرایند آپدیت را انجام دهید:
۱. ایمیج بهروز را از gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable دریافت کنید.
۲. سرورها را با تنظیمات استقرار قبلی مجددا دیپلوی کنید.
۳. سرور پیشنمایش و سپس تمامی سرورهای داخل کلاستر را آپدیت کنید.
۴. سرورهای قدیمی را جامعا خاموش (Shut down) کنید.
تایید موفقیت آپدیت: در کانتینر سرور روی دکمه Preview کلیک کنید و در یک تب مجزا درخواستی بفرستید. در بخش Summary به تب Console بروید؛ نباید هیچ پیامی مبنی بر درخواست آپدیت سرور وجود داشته باشد.
در سه روش ارزیابیشده، با محدودیتهای عملیاتی و مالی زیرساختهای خارجی آشنا شدیم: از هزینههای پایه ۹۰ و ۱۲۰ دلاری و قفل شدن موقعیت مکانی (Region Lock) در محیطهای گوگل، تا سربار سنگین وظایف دواپس، محدودیت تخصیص منابع و همگامسازی دستی کلاسترها در معماری داکر.
استقرار کانتینر روی PaaS پارسپک، یک راهکار مدیریتشده برای عبور از این موانع است. در این ساختار، پیچیدگیهای استقرار دستی (مانند اجرای کدهای ترمینال و مانیتورینگ سلامت) و چالشهای زیرساختی پرداخت ارزی به طور جامع حذف میشوند. پلتفرم ابری پارسپک فرایندهای کلاسترینگ، مقیاسپذیری و دریافت آپدیتهای امنیتی را به صورت خودکار مدیریت میکند تا تیم شما بتواند به جای نگهداری از زیرساخت، مستقیما روی پردازش دادهها متمرکز شود.
برای آشنایی با مراحل استقرار Google Tag Manager در مستندات پارسپک روی لینک زیر کلیک کنید:
مراحل استقرار Google Tag Manager
برای راهاندازی این سرور، ابتدا باید هسته کانتینر را در گوگل تگ منیجر تعریف کرده و سپس آن را PaaS پارسپک مستقر کنید:
۱. در پنل وب Google Tag Manager، یک کانتینر نوین ایجاد کرده و پلتفرم هدف (Target platform) را روی Server تنظیم کنید.
۲. در پنجره نصب، گزینه Manually provision tagging server را انتخاب کرده و رشته متنی تولید شده (Container Config) را کپی کنید.
۳. وارد داشبورد پارسپک شوید و در فرایند ساخت اپلیکیشن Google Tag Manager، رشته کپیشده را دقیقا در فیلد sst_container_config قرار دهید و بعد از تنظیمات منابع، روی دکمه «ایجاد اپلیکیشن» کلیک کرده و سرویس خود را مستقر کنید.
پلتفرم ابری پارسپک به محض استقرار اپلیکیشن، دو سابدامین اختصاصی در اختیار شما میگذارد. دامنهای که با پیشوند sst آغاز میشود، آدرس اصلی دریافتکننده ترافیک است.
دقیقا اینجاست که ارزش زیرساخت مدیریتشده نمایان میشود؛ برخلاف روش کلود ران که شما را مجبور میکرد برای دور زدن ادبلاکرها وارد یک چرخه فرسایشی از تایید مالکیت دامنه، تنظیمات پیچیده DNS در پنلهای خارجی و کانفیگ دستی لود بالانسر شوید، پارسپک این دامنه ایزوله و آماده را به صورت خودکار تنظیم کرده و در اختیار شما میگذارد.
۱. در داشبورد پارسپک، از بخش دامنههای اپلیکیشن، آدرس ابتداشونده با sst را کپی کنید.
۲. به پنل GTM برگردید و کانتینر Server را باز کنید. از منوی بالا روی Admin کلیک کرده و وارد Container Settings شوید.
۳. روی دکمه Add URL کلیک کنید و آدرس sst را با پیشوند https:// (بدون اسلش در انتها) وارد کرده و تنظیمات را ذخیره کنید.
اکنون که سرور شما در یکی از زیرساختهای بالا (کلود ران، اپ انجین، داکر یا پارسپک) مستقر شده و آدرس آن تایید شده است، باید جریان دادهها را در پنل تگ منیجر تنظیم کنید.
برای اینکه فایلهای اصلی GTM مستقیما از روی سرور اختصاصی خودتان بارگذاری شوند و از سد مسدودکنندههای تبلیغاتی (Ad-Blockers) عبور کنند، باید کلاینت وب کانتینر را تنظیم کنید.
۱. در کانتینر Server، از منوی سمت چپ روی Clients کلیک کنید.
۲. کلاینت Web Container را در Google Tag Manager باز کنید.
۳. در بخش Allowed Container IDs روی دکمه Add Container ID کلیک کنید و شناسه کانتینر کلاینتساید خود (آیدی ابتداشونده با GTM- که روی سایت نصب است) را وارد کنید.
۴. در پایین صفحه، حتما تیک گزینه Enable region-specific settings را بردارید و دگرگونیها را ذخیره کنید.
اکنون باید به مرورگر کاربران دستور دهیم که دادههای رهگیری را به جای سرورهای گوگل، به سرور اختصاصی شما (مانند کلاستر ابری پارسپک یا زیرساخت انتخابی دیگر) ارسال کنند. این کار از طریق کانتینر کلاینتساید انجام میشود.
حالت A: اگر از قبل تگ پایه دارید
اگر روی وبسایت خود کانتینر Web فعال دارید، نیازی به ساخت تگ نوین نیست. تگ پایه (Google Tag) سایت خود را باز کرده و مستقیما به مرحله ۴ بروید.
حالت B: ایجاد تگ پایه تازه
۱. وارد فضای کاری کانتینر Web شوید. از منوی سمت چپ به بخش Tags رفته و روی New کلیک کنید.
۲. روی کادر Tag Configuration کلیک کرده و از منوی بازشده ابزار Google Tag را انتخاب کنید.
۳. در فیلد Tag ID، شناسه Measurement ID اکانت گوگل آنالیتیکس خود را وارد کنید.
تنظیم پارامتر هدایت ترافیک (مشترک برای هر دو حالت)
۴. بخش Configuration settings را باز کرده و روی دکمه Add parameter کلیک کنید.
۵. در ستون سمت چپ، پارامتر server_container_url را از لیست انتخاب کنید.
۶. در ستون Value، دقیقا آدرس سرور اختصاصی خود را وارد کنید (برای مثال، همان دامنه sst پارسپک که در مراحل قبل متصل کردید، یا آدرس خروجی سرور گوگل کلود).
۷. روی کادر Triggering کلیک کنید و تریگر Initialization – All Pages را برای این تگ انتخاب کرده و تگ را ذخیره کنید.
با این تنظیمات ساده، تمام دادههای جمعآوریشده توسط این کانتینر مستقیما به سرور ابری شما سرازیر میشود.
اکنون دادهها به سرور میرسند. برای پردازش نهایی و ارسال دیتا به گوگل آنالیتیکس، به یک تگ و یک تریگر شرطی نیاز است.
حالت A: دارای تگ سمت سرور از پیشساخته شده
اگر پیشتر تگ GA4 را در کانتینر سرور خود ساختهاید، آن را باز کنید و برای تنظیم شرایط اجرا مستقیما به مرحله ۳ بروید.
حالت B: ایجاد تگ بهروز
۱. وارد کانتینر Server شوید و از منوی Tags روی New کلیک کنید. روی کادر Tag Configuration کلیک کرده و Google Analytics: GA4 را انتخاب کنید.
۲. در فیلد Measurement ID، شناسه آنالیتیکس خود را وارد کنید.
۳. برای تعیین شرط اجرا، روی کادر Triggering کلیک کنید.
۴. با کلیک روی آیکون + در بالا سمت راست، یک تریگر بهروز ایجاد کنید.
۵. روی Trigger Configuration کلیک کرده و نوع تریگر را Custom انتخاب کنید.
۶. در بخش شرایط اجرا، تیک گزینه Some Events را بزنید.
۷. روی لیست کشویی متغیرها کلیک کرده و گزینه Choose Built-In Variable را انتخاب کنید. از پنل بازشده، متغیر Client Name را به فضای کاری اضافه کنید.
۸. شرط را به این شکل دقیق کنید: متغیر را روی Client Name قرار دهید، عملگر را equals انتخاب کنید و در کادر مقدار، دقیقا عبارت GA4 را تایپ کنید.
۹. تریگر و سپس تگ سرورساید خود را ذخیره کنید.
فرایند استقرار و اتصال به خاتمه رسید. با استفاده از گزینه Preview در هر دو کانتینر، میتوانید جریان ورود ترافیک به سرور ابری را دیباگ و تحلیل کنید.
پیادهسازی Server-Side Tagging تنها راهکار قطعی برای عبور از سد مسدودکنندههای تبلیغاتی و حفظ دقیق دادههای مارکتینگ است. در این مقاله پس از ارزیابی چالشهای فنی و هزینههای سنگین دلاری در استقرار روی گوگل کلود و داکر، مسیر جایگزین و بدون دردسر آن را یاد گرفتیم. برای رهایی از دغدغههای زیرساختی و تمرکز دقیق روی تحلیل دادهها، میتوانید سرور GTM خود را روی پلتفرم ابری (PaaS) پارسپک راهاندازی کنید تا تمام فرایندهای مدیریت سرور به صورت خودکار انجام شود.
سوالات متداول
مهمترین نکات درباره سرور چیست؟
جزئیات مهم و نکات قابل توجه درباره سرور در متن مقاله بررسی شده است.
چرا راهنمای جامع استقرار و پیکربندی Server-Side Tagging در گوگل تگ منیجر اهمیت دارد؟
این موضوع به دلیل اطلاعات و کاربردهای مرتبط، مورد توجه کاربران قرار گرفته است.
آخرین اطلاعات درباره کنید چیست؟
جدیدترین اطلاعات و تغییرات مربوط به کنید در این گزارش ارائه شده است.
