با App Engine برچسب‌گذاری سمت سرور را تنظیم کنید

این راهنما توضیح می دهد که چگونه:

  • ارائه یک سرور برچسب گذاری در موتور برنامه Google Cloud Platform (GCP).
  • سرور برچسب گذاری را برای مدیریت ترافیک زنده ارتقا دهید.
  • تعداد سرورهایی را که ظرف Google Tag Manager شما را اجرا می کنند، افزایش یا کاهش دهید.
  • پس از تهیه سرور، نسخه سرور برچسب گذاری خود را به روز نگه دارید.

پیش نیازها

  1. شما به یک حساب GCP نیاز دارید. اگر ندارید، یک حساب GCP جدید ایجاد کنید .
  2. شما به یک حساب صورت‌حساب GCP نیاز دارید. اگر ندارید، یک حساب صورت‌حساب GCP ایجاد کنید (به نقش ایجادکننده حساب صورت‌حساب نیاز دارد).
  3. به نقش سازنده پروژه و نقش کاربر حساب صورت‌حساب نیاز دارید. درباره افزودن نقش ها بیشتر بیاموزید.

1. ارائه یک سرور

برای ایجاد یک سرور برچسب گذاری جدید در یک نمونه App Engine، باید:

  • یک محفظه سرور جدید در Tag Manager ایجاد کنید
  • ایجاد یک پروژه جدید Google Cloud (GCP)
  • ارائه یک سرور برچسب گذاری موتور برنامه جدید
  • URL سرور برچسب گذاری جدید را به ظرف سرور Tag Manager اضافه کنید

یک ظرف سرور Google Tag Manager ایجاد کنید

  1. گوگل تگ منیجر را باز کنید.

  2. در ردیف حساب، روی منوی سرریز > ایجاد کانتینر کلیک کنید.

  3. یک محفظه سرور جدید ایجاد کنید.

  4. روی دکمه رادیویی "سرور برچسب گذاری ارائه دستی" کلیک کنید. به پیکربندی ظرف توجه کنید. برای تهیه سرور خود به آن نیاز دارید.

یک پروژه GCP جدید ایجاد کنید

برای ایجاد یک پروژه GCP جدید برای سرور برچسب‌گذاری:

  1. Google Cloud Console را باز کنید.

  2. یک پروژه GCP جدید ایجاد کنید .

  3. پروژه خود را نام ببرید توصیه می کنیم برای راحتی بیشتر از شناسه کانتینر خود استفاده کنید. این نام فقط در GCP استفاده می شود.

  4. به شناسه پروژه GCP توجه کنید، زیرا برای ایجاد سرور برچسب گذاری خود به آن نیاز خواهید داشت.

ارائه یک سرور برچسب گذاری جدید

برای ایجاد سرور برچسب گذاری خود:

  1. Cloud Shell را باز کنید.

  2. پروژه GCP را در Cloud Shell تنظیم کنید. project ID با شناسه پروژه GCP که قبلاً ذکر کردید جایگزین کنید:

    gcloud config set project project ID
    
  3. سرور برچسب گذاری خود را با دنبال کردن اسکریپت پوسته ایجاد کنید. نوع استقرار را روی testing تنظیم کنید.

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

URL سرور برچسب‌گذاری را به مدیر برچسب اضافه کنید

  1. گوگل تگ منیجر را باز کنید.

  2. در Admin > Container Settings ، روی Add URL کلیک کنید. اگر URL سرور خود را نمی دانید، دستور زیر را در Cloud Shell اجرا کنید:

    gcloud app browse
    

    نتیجه : شما یک سرور برچسب گذاری راه اندازی کرده اید و آن را با یک پیکربندی testing تدارک دیده اید. اکنون می توانید برچسب گذاری سمت سرور را آزمایش کنید.

پیکربندی اولیه سرور ( testing )

پیکربندی تست برای کاوش محصول با ارسال مقادیر کمی از ترافیک آزمایشی و استفاده از ویژگی پیش نمایش در Tag Manager مناسب است. این پیکربندی یک کلاس نمونه App Engine F1 در محیط Standard است و در بیشتر موارد، هیچ هزینه ای متحمل نمی شوید.

2. استفاده از App Engine در تولید

در پیکربندی production ، هر سرور تقریباً 40 دلار در ماه (USD) هزینه دارد. هر سرور یک نمونه App Engine با 1 vCPU، 0.5 گیگابایت حافظه، 10 گیگابایت دیسک در محیط Flexible است.

برای درک صورت‌حساب App Engine و نحوه پیکربندی هشدارهای صورت‌حساب، به مدیریت هزینه‌های App Engine مراجعه کنید. ما قویاً توصیه می‌کنیم که یک هشدار صورت‌حساب تنظیم کنید.

توصیه می کنیم حداقل 3 سرور را برای کاهش خطر از دست دادن اطلاعات در صورت قطع شدن سرور اجرا کنید. با این حال، ممکن است انتخاب کنید که سرورهای کمتر (یا بیشتر) را اجرا کنید. ما انتظار داریم که مقیاس خودکار 3-6 سرور (پیش‌فرض) 50-200 درخواست در ثانیه را مدیریت کند. عملکرد به تعداد تگ ها و کاری که آن تگ ها انجام می دهند بستگی دارد.

برای پیکربندی سرور برچسب گذاری:

  1. Google Cloud Platform Cloud Shell را باز کنید.
  2. پروژه Cloud Platform را در Cloud Shell تنظیم کنید. project ID با شناسه پروژه GCP که قبلاً ذکر کردید جایگزین کنید:
    gcloud config set project project ID
  3. برای پیکربندی مجدد سرور برچسب گذاری برای یک محیط تولید، اسکریپت راه اندازی زیر را اجرا کنید. وظایف زیر را انجام دهید:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. نوع استقرار را به production تغییر دهید.
    2. سرورهای اضافی را برای سرویس دهی به ترافیک تولید تنظیم کنید. ما حداقل سه سرور را توصیه می کنیم.

اختیاری: غیرفعال کردن ورود به سیستم

درخواست ورود به سیستم

به طور پیش‌فرض، App Engine اطلاعات مربوط به تک تک درخواست‌ها (مانند مسیر درخواست، پارامترهای پرس و جو و غیره) را که دریافت می‌کند، ثبت می‌کند. اگر سرور برچسب‌گذاری شما درخواست‌های زیادی را در ماه انجام می‌دهد (مثلاً بیش از 1 میلیون)، آن پیام‌های گزارش ممکن است هزینه‌های قابل توجهی را برای ورود به سیستم داشته باشند. برای کاهش یا حذف هزینه‌های گزارش، توصیه می‌کنیم گزارش درخواست موتور برنامه را غیرفعال کنید.

برای غیرفعال کردن گزارش درخواست موتور برنامه:

  1. در پلتفرم Google Cloud، Logs Router را باز کنید. مطمئن شوید که در پروژه ای هستید که با شناسه کانتینر شما مطابقت دارد:
    تصویری از انتخابگر پروژه GCP، که یک نمونه شناسه ظرف مدیر برچسب را نشان می‌دهد.
  2. برای سطل Type : Cloud Logging ، Name : _Default line، منوی سرریز را انتخاب کنید، سپس روی Edit Sink کلیک کنید.
  3. در قسمت مقصد سینک ، سطل گزارشات _Default را انتخاب کنید.
  4. در بخش Choose logs to in sink ، یک خط جدید اضافه کنید. قانون زیر را در فیلتر گنجاندن موجود وارد کنید:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. همچنین برای غیرفعال کردن ورود به سیستم از بار متعادل کننده، یک خط جدید اضافه کنید و قانون زیر را به فیلتر موجود وارد کنید:

    NOT LOG_ID("requests")
    
  6. برای اعمال تغییرات ، سینک را به روز کنید . اکنون درخواست های App Engine از ثبت نام حذف می شوند.

  7. بررسی کنید که هیچ درخواست جدیدی در گزارش های Logs Explorer ظاهر نمی شود.

ورود به سیستم کنسول

سرور برچسب‌گذاری، کلاینت‌ها یا برچسب‌ها در یک کانتینر می‌توانند پیام‌هایی را در کنسول ثبت کنند که ممکن است هزینه‌های ثبت را متحمل شوند. برای کاهش یا حذف هزینه‌های گزارش، می‌توانید پیام‌های گزارش ناخواسته کنسول را غیرفعال کنید.

لاگ های ناخواسته کنسول را شناسایی کنید:

  1. در GCP، Logs Explorer را باز کنید.
  2. به دنبال پیام‌های لاگ ناخواسته‌ای باشید که از برچسب‌های شما نشات می‌گیرد. مثلا:

    یک برچسب ممکن است گزارش های زیر را ارسال کند:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    به دنبال پیام های گزارش مربوطه در قسمت textPayload بگردید:
    تصویری از GCP Logs Explorer که نمونه گزارش‌ها را نشان می‌دهد.

برای غیرفعال کردن پیام گزارش کنسول:

  1. در پلتفرم Google Cloud، Logs Router را باز کنید. مطمئن شوید که در پروژه ای هستید که با شناسه کانتینر شما مطابقت دارد:
    تصویری از انتخابگر پروژه GCP، که یک نمونه شناسه ظرف مدیر برچسب را نشان می‌دهد.
  2. برای سطل Type : Cloud Logging ، Name : _Default line، منوی سرریز را انتخاب کنید، سپس روی Edit Sink کلیک کنید.
  3. در قسمت مقصد سینک ، سطل گزارشات _Default را انتخاب کنید.
  4. در بخش Choose logs to in sink ، یک خط جدید اضافه کنید. قانون زیر را در فیلتر گنجاندن موجود وارد کنید:

    NOT textPayload:"Custom message:"
    

    برای گزارش‌های کنسول خود، Custom message: متن را با یک رشته فرعی از گزارش کنسول که می‌خواهید غیرفعال کنید، جایگزین کنید. برای فیلترهای دقیق تر، از زبان جستجوی گزارش استفاده کنید.

  5. برای اعمال تغییرات ، سینک را به روز کنید . پیام logToConsole منطبق باید از ورود به سیستم حذف شود.

  6. بررسی کنید که هیچ پیام گزارش جدید کنسول در Logs Explorer ظاهر نمی شود.

3. استقرار را به دامنه سفارشی خود ترسیم کنید

استقرار پیش‌فرض برچسب‌گذاری سمت سرور در دامنه App Engine میزبانی می‌شود. توصیه می کنیم که استقرار را برای استفاده از زیر دامنه وب سایت خود تغییر دهید.

زیر دامنه وب سایت خود را به سرور برچسب گذاری خود نگاشت کنید .

4. URL سرور را به Google Tag Manager اضافه کنید

اکنون که سرور دارید، باید مطمئن شوید که Google Tag Manager می داند که باید از سرور شما استفاده کند.

  1. گوگل تگ منیجر را باز کنید.

  2. روی محفظه سروری که می‌خواهید به سرور برچسب‌گذاری خود اشاره کنید، کلیک کنید.

  3. تنظیمات ظرف سرور خود را در تب Admin > Container Settings باز کنید.

  4. روی Add URL کلیک کنید و URL سرور خود را جایگذاری کنید.

  5. ذخیره کنید و به فضای کاری خود برگردید.

5. اعتبار سنجی

اکنون که سرور برچسب‌گذاری خود را راه‌اندازی کرده‌اید، مطمئن شوید که همانطور که می‌خواهید کار می‌کند. در فضای کاری Tag Manager خود، روی دکمه Preview کلیک کنید. اگر صفحه پیش نمایش بارگیری شود، همه چیز به درستی تنظیم شده است.

پیش نمایش چندین URL

اگر چندین دامنه را به یک سرور برچسب گذاری نگاشت کرده اید، مطمئن شوید که هر URL به تنظیمات ظرف اضافه شده است.

اگر چندین URL ارائه کرده اید، همه مسیرها (رشته بعد از نام دامنه) باید مطابقت داشته باشند.

آثار کار نمی کند
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

اگر چندین URL اضافه شود، نمادی را در کنار دکمه Preview خواهید دید که به شما امکان می دهد URL را برای پیش نمایش انتخاب کنید.

نسخه سرور برچسب گذاری را به روز کنید

به‌روزرسانی‌های جدید سرور برچسب‌گذاری شامل رفع آسیب‌پذیری‌های امنیتی و ویژگی‌های جدید است. توصیه می کنیم حداقل سرور برچسب گذاری خود را برای هر نسخه اصلی به روز کنید (مثلاً ارتقاء از نسخه 1.xx به 2.xx) زمانی که مدیر برچسب به شما اطلاع می دهد که به روز رسانی کنید.

برای به‌روزرسانی سرور برچسب‌گذاری، اسکریپت راه‌اندازی را با استفاده از همان تنظیماتی که قبلاً استفاده می‌کردید، دوباره اجرا کنید. تنظیمات موجود به صورت پیش فرض تنظیم شده اند.

برای به روز رسانی سرور برچسب گذاری خود:

  1. Google Cloud Platform Cloud Shell را باز کنید.
  2. پروژه Cloud Platform را در Cloud Shell تنظیم کنید. project ID با شناسه پروژه GCP که قبلاً ذکر کردید جایگزین کنید:
    gcloud config set project project ID
  3. اسکریپت راه اندازی را با استفاده از همان تنظیماتی که قبلا استفاده می کردید اجرا کنید. تنظیمات موجود به صورت پیش فرض تنظیم شده اند.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

برای تأیید موفقیت آمیز بودن به روز رسانی:

  1. در ظرف سرور خود، روی دکمه Preview کلیک کنید تا یک جلسه اشکال زدایی جدید شروع شود و یک درخواست در یک برگه جداگانه ارسال شود.
  2. در خلاصه، تب Console را انتخاب کنید و مطمئن شوید که هیچ پیامی وجود ندارد که از شما بخواهد سرور برچسب گذاری را به روز کنید.

مدیر برچسب ممکن است پیام هایی را نشان دهد که از شما می خواهد سرور برچسب گذاری خود را تا یک روز پس از به روز رسانی موفقیت آمیز سرور به روز کنید. با این حال، صفحه پیش نمایش یک پیام به روز در مورد نسخه سرور برچسب گذاری نشان می دهد.

عیب یابی وقفه های زمانی استقرار تولید

هنگامی که اسکریپت راه اندازی را برای ایجاد یا پیکربندی مجدد سرور برچسب گذاری اجرا می کنید، ممکن است زمان اسکریپت تمام شود. دلایل مختلفی وجود دارد که ممکن است این اتفاق بیفتد. دو رایج ترین آنها عبارتند از:

  1. حساب‌های سرویس مجوزهای نادرستی دارند - حساب‌های خدمات Compute Engine و App Engine مسئول استقرار و حفظ استقرار تولید هستند. به طور پیش فرض، آنها با مجوزهای مناسب از قبل پیکربندی شده اند. با این حال، در برخی موارد، سیاست یک سازمان ممکن است باعث نادرست بودن آنها شود.

    1. به صفحه IAM & Admin در نوار پیمایش سمت چپ در کنسول Google Cloud بروید.
    2. حساب خدمات Compute Engine <project_number>-compute@developer.gserviceaccount.com و حساب خدمات App Engine <project_name>@appspot.gserviceaccount.com را پیدا کنید.
    3. هر دو حساب سرویس باید نقش Editor را داشته باشند . اگر هر یک از حساب‌ها نقش Editor را ندارد، نقش را با کلیک کردن روی نماد مداد در سمت راست حساب، کلیک کردن بر روی منوی کشویی نقش موجود، اسکرول کردن به بالا و کلیک کردن روی Project و سپس ویرایشگر به‌روزرسانی کنید .
  2. سهمیه ناکافی - استقرار تولید سهمیه موتور محاسباتی را مصرف می کند. اگر پروژه دارای سهمیه کافی نباشد، زمان استقرار ممکن است در حین تلاش برای تامین منابع به پایان برسد.

    1. به صفحه IAM & Admin در نوار پیمایش سمت چپ در کنسول Google Cloud بروید، سپس روی برگه Quotas در نوار پیمایش سمت چپ کلیک کنید.
    2. نزدیک بالای صفحه، روی کادر متنی که می‌گوید Filter table کلیک کنید و Compute Engine API را تایپ کنید. روی تنها نتیجه کلیک کنید.
    3. بررسی کنید که همه وضعیت‌های سهمیه در محدوده هستند یا دارای علامت تیک سبز هستند.
    4. CPU ها را پیدا کرده و روی آن کلیک کنید. بررسی کنید که میزان استفاده فعلی به اضافه تعداد نمونه‌های در حال استفاده همچنان کمتر از حد مجاز منطقه استقرار باشد.