این راهنما توضیح میدهد که چگونه:
- یک سرور برچسبگذاری روی موتور برنامهی پلتفرم ابری گوگل (GCP) فراهم کنید.
- سرور برچسبگذاری را برای مدیریت ترافیک زنده ارتقا دهید.
- تعداد سرورهایی که کانتینر گوگل تگ منیجر شما را اجرا میکنند، افزایش یا کاهش دهید.
- پس از آمادهسازی سرور، نسخه سرور برچسبگذاری خود را بهروز نگه دارید.
پیشنیازها
- شما به یک حساب GCP نیاز دارید. اگر ندارید، یک حساب GCP جدید ایجاد کنید .
- شما به یک حساب صورتحساب GCP نیاز دارید. اگر ندارید، یک حساب صورتحساب GCP ایجاد کنید (به نقش ایجادکننده حساب صورتحساب نیاز دارد).
- شما به نقش «ایجادکننده پروژه» و «کاربر حساب صورتحساب» نیاز دارید. درباره افزودن نقشها بیشتر بدانید.
۱. تهیه یک سرور
برای ایجاد یک سرور برچسبگذاری جدید در نمونهی App Engine، باید:
- یک کانتینر سرور جدید در Tag Manager ایجاد کنید
- ایجاد یک پروژه ابری گوگل (GCP) جدید
- یک سرور برچسبگذاری جدید برای App Engine فراهم کنید
- آدرس اینترنتی (URL) سرور برچسبگذاری جدید را به کانتینر سرور Tag Manager اضافه کنید.
یک کانتینر سرور گوگل تگ منیجر ایجاد کنید
در ردیف حساب، روی منوی سرریز > ایجاد کانتینر کلیک کنید.
یک کانتینر سرور جدید ایجاد کنید.
روی دکمه رادیویی "Manually provisioning tagging server" کلیک کنید. به پیکربندی کانتینر توجه کنید. برای آمادهسازی سرور خود به آن نیاز خواهید داشت.
ایجاد یک پروژه GCP جدید
برای ایجاد یک پروژه GCP جدید برای سرور برچسبگذاری خود:
کنسول ابری گوگل را باز کنید.
پروژه خود را نامگذاری کنید. برای راحتی، توصیه میکنیم از شناسه کانتینر خود استفاده کنید. این نام فقط در GCP استفاده میشود.
شناسه پروژه GCP را یادداشت کنید، زیرا برای ایجاد سرور برچسبگذاری خود به آن نیاز خواهید داشت.
ارائه یک سرور برچسبگذاری جدید
برای ایجاد سرور برچسبگذاری خود:
پوسته ابری را باز کنید.
پروژه GCP را در Cloud Shell تنظیم کنید.
project IDبا شناسه پروژه GCP که قبلاً یادداشت کردهاید جایگزین کنید:gcloud config set project project IDبا دنبال کردن اسکریپت shell، سرور برچسبگذاری خود را ایجاد کنید. نوع استقرار را روی
testingتنظیم کنید.bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
آدرس اینترنتی سرور برچسبگذاری را به مدیریت برچسب اضافه کنید
در بخش مدیریت > تنظیمات کانتینر ، روی افزودن نشانی اینترنتی (Add URL) کلیک کنید. اگر نشانی اینترنتی سرور خود را نمیدانید، دستور زیر را در Cloud Shell اجرا کنید:
gcloud app browseنتیجه : شما یک سرور برچسبگذاری راهاندازی کردهاید و پیکربندی
testingرا برای آن فراهم کردهاید. اکنون میتوانید برچسبگذاری سمت سرور را آزمایش کنید.
پیکربندی اولیه سرور ( testing )
پیکربندی آزمایشی برای بررسی محصول با ارسال مقادیر کمی از ترافیک آزمایشی و استفاده از ویژگی پیشنمایش در Tag Manager مناسب است. این پیکربندی یک کلاس نمونه App Engine F1 در محیط استاندارد است و در بیشتر موارد، هیچ هزینهای متحمل نخواهید شد.
۲. استفاده از App Engine در محیط عملیاتی
در پیکربندی production ، هزینه هر سرور تقریباً ۴۰ دلار در ماه (USD) است. هر سرور یک نمونه App Engine با ۱ vCPU، ۰.۵ گیگابایت حافظه و ۱۰ گیگابایت دیسک در محیط Flexible است.
برای درک صورتحساب App Engine و نحوه پیکربندی هشدارهای صورتحساب، به بخش مدیریت هزینههای App Engine مراجعه کنید. ما اکیداً توصیه میکنیم که هشدار صورتحساب را تنظیم کنید.
تنظیمات تولید توصیه شده
ما توصیه میکنیم حداقل ۳ سرور را اجرا کنید تا خطر از دست دادن دادهها در صورت قطع سرور کاهش یابد. با این حال، میتوانید سرورهای کمتری (یا بیشتری) را اجرا کنید. ما انتظار داریم که مقیاسبندی خودکار ۳-۶ سرور (پیشفرض) ۵۰-۲۰۰ درخواست در ثانیه را مدیریت کند. عملکرد به تعداد برچسبها و عملکرد آن برچسبها بستگی دارد.
برای پیکربندی سرور برچسبگذاری خود:
- پوسته ابری پلتفرم ابری گوگل را باز کنید.
- پروژه Cloud Platform را در Cloud Shell تنظیم کنید.
project IDبا شناسه پروژه GCP که قبلاً یادداشت کردهاید جایگزین کنید:gcloud config set project project ID
- برای پیکربندی مجدد سرور برچسبگذاری برای یک محیط عملیاتی، اسکریپت راهاندازی زیر را اجرا کنید. کارهای زیر را انجام دهید:
bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
- نوع استقرار را به
productionتغییر دهید. - سرورهای اضافی را برای ارائه خدمات به ترافیک عملیاتی راهاندازی کنید. ما حداقل سه سرور را توصیه میکنیم.
- نوع استقرار را به
اختیاری: غیرفعال کردن ثبت وقایع
درخواست ثبت وقایع
به طور پیشفرض، App Engine اطلاعات مربوط به هر درخواست (مثلاً مسیر درخواست، پارامترهای پرسوجو و غیره) را که دریافت میکند، ثبت میکند. اگر سرور برچسبگذاری شما در هر ماه درخواستهای زیادی را مدیریت میکند (مثلاً بیش از ۱ میلیون)، این پیامهای ثبت ممکن است هزینههای ثبت قابل توجهی را متحمل شوند. برای کاهش یا حذف هزینههای ثبت، توصیه میکنیم ثبت درخواست App Engine را غیرفعال کنید.
برای غیرفعال کردن ثبت درخواستهای App Engine:
- در پلتفرم گوگل کلود، Logs Router را باز کنید. مطمئن شوید که در پروژهای هستید که با شناسه کانتینر شما مطابقت دارد:

- برای سطر Type : Cloud Logging و Name : _Default ، منوی overflow را انتخاب کنید، سپس روی Edit Sink کلیک کنید.
- در قسمت «Sink destination» ، گزینهی «logs bucket _Default» را انتخاب کنید.
در زیر گزینه Choose logs to include in sink ، یک خط جدید اضافه کنید. قانون زیر را در فیلتر موجود برای درج اطلاعات وارد کنید:
NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT LOG_ID("appengine.googleapis.com/request_log")برای غیرفعال کردن ثبت وقایع از متعادلکننده بار، یک خط جدید اضافه کنید و قانون زیر را در فیلتر شمول موجود وارد کنید:
NOT LOG_ID("requests")برای اعمال تغییرات، Sink را بهروزرسانی کنید . اکنون درخواستهای App Engine از ثبت وقایع مستثنی خواهند شد.
تأیید کنید که هیچ درخواست جدیدی در گزارشهای Logs Explorer ظاهر نمیشود.
ورود به سیستم کنسول
سرور برچسبگذاری، کلاینتها یا تگهای موجود در یک کانتینر میتوانند پیامهایی را در کنسول ثبت کنند که ممکن است هزینههای ثبت را به همراه داشته باشد. برای کاهش یا حذف هزینههای ثبت، میتوانید پیامهای ثبت ناخواسته کنسول را غیرفعال کنید.
شناسایی لاگهای ناخواسته کنسول:
- در GCP، Logs Explorer را باز کنید.
به دنبال هرگونه پیام لاگ ناخواستهای باشید که از تگهای شما سرچشمه میگیرند. برای مثال:
یک تگ ممکن است لاگهای زیر را ارسال کند:
const logToConsole = require('logToConsole'); logToConsole('Custom message: ' + data.param1); logToConsole('An important message to keep around!'); data.gtmOnSuccess()در فیلد
textPayloadبه دنبال پیامهای لاگ مربوطه بگردید:
برای غیرفعال کردن پیام ورود به سیستم کنسول:
- در پلتفرم گوگل کلود، Logs Router را باز کنید. مطمئن شوید که در پروژهای هستید که با شناسه کانتینر شما مطابقت دارد:

- برای سطر Type : Cloud Logging و Name : _Default ، منوی overflow را انتخاب کنید، سپس روی Edit Sink کلیک کنید.
- در قسمت «Sink destination» ، گزینهی «logs bucket _Default» را انتخاب کنید.
در زیر گزینه Choose logs to include in sink ، یک خط جدید اضافه کنید. قانون زیر را در فیلتر موجود برای درج اطلاعات وارد کنید:
NOT textPayload:"Custom message:"برای گزارشهای کنسول خود، Custom message: text را با زیررشتهای از گزارش کنسول که میخواهید غیرفعال کنید، جایگزین کنید. برای فیلترهای پیچیدهتر، از زبان پرسوجوی گزارشگیری استفاده کنید.
برای اعمال تغییرات، Sink را بهروزرسانی کنید . پیام منطبق
logToConsoleباید از ثبت وقایع حذف شود.تأیید کنید که هیچ پیام لاگ کنسول جدیدی در Logs Explorer ظاهر نمیشود.
۳. استقرار را به دامنه سفارشی خود نگاشت کنید
استقرار پیشفرض برچسبگذاری سمت سرور در یک دامنه App Engine میزبانی میشود. توصیه میکنیم استقرار را طوری تغییر دهید که از یک زیردامنه وبسایت شما استفاده کند.
زیر دامنه وبسایت خود را به سرور برچسبگذاری خود نگاشت کنید .
۴. آدرس اینترنتی سرور را به گوگل تگ منیجر اضافه کنید
حالا که سرور دارید، باید مطمئن شوید که گوگل تگ منیجر میداند که باید از سرور شما استفاده کند.
روی کانتینر سروری که میخواهید به سرور برچسبگذاری خود اشاره کنید، کلیک کنید.
تنظیمات کانتینر سرور خود را در برگه مدیریت > تنظیمات کانتینر باز کنید.
روی افزودن URL کلیک کنید و آدرس سرور خود را جایگذاری کنید.
ذخیره کنید و به فضای کاری خود برگردید.
۵. اعتبارسنجی
حالا که سرور برچسبگذاری خود را راهاندازی کردهاید، مطمئن شوید که طبق انتظار کار میکند.
تأیید رابط کاربری
در فضای کاری Tag Manager خود، روی دکمه پیشنمایش کلیک کنید. اگر صفحه پیشنمایش بارگذاری شد، یعنی همه چیز به درستی تنظیم شده است.
تأیید API
همچنین میتوانید با استفاده از API آن، تأیید کنید که سرور به بررسیهای سلامت پاسخ میدهد:
- آدرس اینترنتی کانتینر سرور خود را از Admin > Container Settings کپی کنید.
- یک تب جدید مرورگر باز کنید.
- آدرس اینترنتی را پیست کنید و
/healthyرا به مسیر اضافه کنید. برای مثال:https://www.example.com/metrics/healthy - اگر سرویس شما کار میکند، باید عبارت
okرا در صفحه مشاهده کنید.
اگر درخواستهایی برای یک محصول خاص وجود ندارد، بررسی کنید که آیا رویدادی در حال رخ دادن است یا خیر. دستور config محصول را مقداردهی اولیه میکند، اما دادهها معمولاً فقط زمانی ارسال میشوند که یک event فراخوانی شود.
برای اطلاعات بیشتر در مورد بهترین شیوههای تأیید برچسبگذاری سمت سرور، به پیکربندی دامنه سفارشی مراجعه کنید.
پیشنمایش چندین URL
اگر چندین دامنه را به یک سرور برچسبگذاری واحد نگاشت کردهاید، مطمئن شوید که هر URL به تنظیمات کانتینر اضافه شده است.
اگر چندین URL ارائه دادهاید، همه مسیرها (رشته بعد از نام دامنه) باید مطابقت داشته باشند.
| آثار | کار نمیکند. |
|---|---|
آدرس اینترنتی ۱: example.com/abcآدرس اینترنتی ۲: example2.com/abc | آدرس اینترنتی ۱: example.com/abcآدرس اینترنتی ۲: example2.com/def |
اگر چندین URL اضافه شده باشد، نمادی در کنار دکمه پیشنمایش مشاهده خواهید کرد که به شما امکان میدهد URL مورد نظر برای پیشنمایش را انتخاب کنید.
نسخه سرور برچسبگذاری را بهروزرسانی کنید
بهروزرسانیهای جدید سرور برچسبگذاری شامل رفع آسیبپذیریهای امنیتی و ویژگیهای جدید است. توصیه میکنیم حداقل برای هر انتشار نسخه اصلی (مثلاً ارتقا از نسخه 1.xx به 2.xx) هنگامی که Tag Manager به شما اطلاع میدهد که بهروزرسانی کنید، سرور برچسبگذاری خود را بهروزرسانی کنید.
برای بهروزرسانی سرور برچسبگذاری خود، اسکریپت راهاندازی را با استفاده از همان تنظیماتی که قبلاً استفاده کردهاید، دوباره اجرا کنید. تنظیمات موجود به طور پیشفرض تنظیم شدهاند.
برای بهروزرسانی سرور برچسبگذاری خود:
- پوسته ابری پلتفرم ابری گوگل را باز کنید.
- پروژه Cloud Platform را در Cloud Shell تنظیم کنید.
project IDبا شناسه پروژه GCP که قبلاً یادداشت کردهاید جایگزین کنید:gcloud config set project project ID
- اسکریپت راهاندازی را با استفاده از همان تنظیماتی که قبلاً استفاده کردهاید، اجرا کنید. تنظیمات موجود به طور پیشفرض تنظیم شدهاند.
bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
برای تأیید موفقیتآمیز بودن بهروزرسانی:
- در کانتینر سرور خود، روی دکمه پیشنمایش کلیک کنید تا یک جلسه اشکالزدایی جدید شروع شود و درخواستی را در یک برگه جداگانه ارسال کنید.
- در بخش خلاصه (Summary)، تب کنسول (Console) را انتخاب کنید و مطمئن شوید که هیچ پیامی مبنی بر بهروزرسانی سرور برچسبگذاری وجود ندارد.
ممکن است تا یک روز پس از بهروزرسانی موفقیتآمیز سرور، تگ منیجر پیامهایی را نشان دهد که از شما میخواهند سرور تگگذاری خود را بهروزرسانی کنید. با این حال، صفحه پیشنمایش، پیامی در مورد بهروزرسانی نسخه سرور تگگذاری نشان خواهد داد.
عیبیابی زمانهای استقرار در محیط عملیاتی
وقتی اسکریپت راهاندازی را برای ایجاد یا پیکربندی مجدد سرور برچسبگذاری اجرا میکنید، ممکن است اسکریپت دچار وقفه شود. دلایل مختلفی برای این اتفاق وجود دارد. دو مورد از رایجترین آنها عبارتند از:
حسابهای سرویس مجوزهای نادرستی دارند - حسابهای سرویس Compute Engine و App Engine مسئول استقرار و نگهداری استقرار در محیط عملیاتی هستند. به طور پیشفرض، آنها با مجوزهای مناسب از پیش پیکربندی شدهاند. با این حال، در برخی موارد، سیاستهای یک سازمان ممکن است باعث شود که آنها نادرست باشند.
- در نوار ناوبری سمت چپ کنسول گوگل کلود، به صفحه IAM & Admin بروید.
- حساب سرویس Compute Engine
<project_number>-compute@developer.gserviceaccount.comو حساب سرویس App Engine<project_name>@appspot.gserviceaccount.comرا پیدا کنید. - هر دو حساب کاربری سرویس باید نقش
Editorداشته باشند . اگر هر یک از حسابها نقشEditorرا ندارد، با کلیک روی آیکون مداد در سمت راست حساب، کلیک روی منوی کشویی نقش موجود، اسکرول کردن به بالا و کلیک روی پروژه (Project) و سپس ویرایشگر (Editor) ، نقش را بهروزرسانی کنید.
سهمیه ناکافی - استقرار در مرحله تولید، سهمیه موتور محاسبات را مصرف میکند. اگر پروژه سهمیه کافی نداشته باشد، ممکن است استقرار در حین تلاش برای تأمین منابع، دچار وقفه شود.
- در نوار ناوبری سمت چپ کنسول گوگل کلود، به صفحه IAM & Admin بروید، سپس روی تب Quotas در نوار ناوبری سمت چپ کلیک کنید.
- در نزدیکی بالای صفحه، روی کادر متنی که نوشته شده «Filter table» کلیک کنید و عبارت
Compute Engine APIرا تایپ کنید. روی تنها نتیجه کلیک کنید. - تأیید کنید که همه وضعیتهای سهمیه در محدوده مجاز هستند یا علامت سبز دارند.
- CPUها را پیدا کرده و روی آنها کلیک کنید. تأیید کنید که میزان استفاده فعلی به علاوه تعداد نمونههای در حال استقرار، همچنان کمتر از حد مجاز برای منطقه استقرار باشد.