برچسبگذاری سمت سرور روشی جدید برای استفاده از Google Tag Manager برای ابزارسازی برنامه شما در همه دستگاهها است. کانتینرهای سرور از همان مدل تگ، ماشه و متغیری استفاده میکنند که شما به آن عادت کردهاید، در حالی که ابزارهای جدیدی را ارائه میدهند که به شما امکان میدهند فعالیت کاربر را در هر کجا که اتفاق میافتد اندازهگیری کنید.
یک پیکربندی برچسبگذاری معمولی بدون برچسبگذاری سمت سرور به یک ظرف در صفحه برای ارسال دادههای اندازهگیری به سرورهای مجموعه مختلف متکی است. شکل 1 مثالی را نشان می دهد که چگونه یک محفظه وب Tag Manager در حال اجرا در یک مرورگر وب، داده ها را به چندین سرور ارسال می کند.
شکل 1: نموداری از سایتی که برای استفاده از محفظه وب Google Tag Manager استفاده شده است.
در مقابل، یک کانتینر سرور در مرورگر کاربر یا گوشی او اجرا نمیشود. در عوض، روی سروری که شما کنترل می کنید اجرا می شود.
شکل 2: نمونه ای از پیکربندی برچسب گذاری که از یک کانتینر سرور استفاده می کند.
سرور در پروژه پلتفرم Google Cloud خودتان - یا در محیط دیگری که انتخاب میکنید - اجرا میشود و فقط شما به دادههای موجود در سرور دسترسی دارید تا زمانی که آن را به جای دیگری ارسال کنید. شما کنترل کاملی بر نحوه شکلدهی آن دادهها و مسیریابی آنها از سرور دارید. برچسب ها با استفاده از فناوری جاوا اسکریپت sandboxed ساخته می شوند. مجوزها به شما این امکان را میدهند که برچسب چه کاری انجام دهد و خطمشیها به شما اجازه میدهند تا مرزهایی را در اطراف کانتینر تعیین کنید.
سرور درخواست های وب را از دستگاه کاربر دریافت می کند و آن درخواست ها را به رویداد تبدیل می کند. هر رویداد توسط برچسب ها، محرک ها و متغیرهای کانتینر پردازش می شود. برچسبها، محرکها و متغیرها در یک کانتینر سرور دقیقاً مانند سایر کانتینرها کار میکنند: تریگرها هر رویداد را برای جستجوی شرایط خاص بررسی میکنند و در صورت لزوم، برچسبهایی را که دادههای رویداد را برای پردازش ارسال میکنند، آتش میزنند.
این مدل دو سوال مهم را برای کانتینرهای سرور مطرح می کند:
- چگونه داده های اندازه گیری از دستگاه کاربر به ظرف سرور می رسد؟
- چگونه داده های اندازه گیری ارسال شده به محفظه سرور به یک رویداد تبدیل می شود؟
پاسخ به هر دو سوال نوع جدیدی از موجودیت برای استفاده در کانتینرهای سرور است: یک مشتری .
مشتریان چگونه کار می کنند
کلاینت ها آداپتورهایی بین نرم افزار در حال اجرا در دستگاه کاربر و ظرف سرور شما هستند. مشتری دادههای اندازهگیری را از یک دستگاه دریافت میکند، آن دادهها را به یک یا چند رویداد تبدیل میکند، دادهها را برای پردازش در کانتینر هدایت میکند، و نتایج را بستهبندی میکند تا به درخواستکننده ارسال شود.
این خیلی چیزهاست! بیایید نگاه دقیق تری به هر قسمت به صورت جداگانه بیندازیم. شکل 3 دادههایی را نشان میدهد که از مرورگر وب کاربر به ظرف سرور و از وب سرور شما به ظرف سرور جریان مییابند.
شکل 3: یک کلاینت متفاوت هر جریان داده را مدیریت می کند.
مشتریان داده های اندازه گیری را از یک دستگاه دریافت می کنند. فرض کنید می خواهید فعالیت کاربر را در سه مکان اندازه گیری کنید: یک وب سایت، یک برنامه تلفن و یک توستر هوشمند. وب سایت شما از Google Analytics استفاده می کند، برنامه تلفن شما از Firebase Analytics و توستر شما از یک پروتکل اختصاصی به نام «ToastMeasure» استفاده می کند.
ابزار دقیق این سه دستگاه با Google Tag Manager معمولاً به یک کانتینر متفاوت برای هر پلتفرم نیاز دارد. از آنجایی که کانتینر سرور روی دستگاه اجرا نمیشود، همان کانتینر میتواند ابزارهای تحلیلی را برای هر سه پلتفرم دستگاه انجام دهد. هر چند مشکلی وجود دارد. این دستگاه ها همه به یک شکل ارتباط برقرار نمی کنند. پروتکل Google Analytics با پروتکل ToastMeasure یکسان نیست. اینجاست که مشتریان وارد می شوند.
به جای آن سه کانتینر، کانتینر سرور شما سه مشتری دارد. هر درخواستی که وارد کانتینر میشود توسط هر مشتری به ترتیب اولویت پردازش میشود، ابتدا مشتری با بالاترین اولویت. اولین کاری که هر مشتری انجام می دهد این است که تصمیم بگیرد که آیا می داند چگونه چنین درخواستی را پردازش کند یا خیر. اگر بتواند، مشتری درخواست را "ادعا" می کند و به مرحله بعدی پردازش ادامه می دهد. عمل ادعای درخواست مانع از اجرای مشتریان بعدی می شود. اگر مشتری نتواند درخواست را پردازش کند، کاری انجام نمی دهد و به سایر مشتریان اجازه می دهد تصمیم بگیرند که آیا درخواست را رسیدگی کنند یا نه.
مشتریان داده های درخواست را به یک یا چند رویداد تبدیل می کنند. هنگامی که سرویس گیرنده ToastMeasure درخواستی را درخواست کرد، باید درخواست را به چیزی تبدیل کند که بقیه کانتینر آن را درک می کند. آن چیزی مجموعه ای از رویدادهاست .
رویدادها چیزهایی هستند که اتفاق میافتند و میخواهید اندازهگیری کنید. آنها می توانند هر چیزی باشند: start_toasting
، finish_toasting
، یا buy_bread
. توصیه هایی در مورد ساختار رویدادهایی که مشتری ایجاد می کند وجود دارد، اما تنها شرط این است که بقیه کانتینر آنها را درک کنند.
مشتریان کانتینر را اجرا می کنند. مشتری درخواست را ادعا کرده و آن را به رویداد تبدیل کرده است. اکنون زمان تگ ها، محرک ها و متغیرها است. مشتری هر رویداد را برای پردازش بیشتر به بقیه کانتینر منتقل می کند.
مشتریان نتایج را بسته بندی می کنند تا به دستگاه برگردانند. هنگامی که ظرف اجرا شد، زمان پاسخ به توستر است. پاسخ می تواند اشکال مختلفی داشته باشد. شاید مشتری فقط بگوید "OK، انجام شد." شاید یکی از تگ ها بخواهد درخواست را به سرور مجموعه دیگری هدایت کند. یا شاید یکی از تگ ها به چراغ های روی توستر می گوید که رنگشان تغییر کند. هر اتفاقی که قرار است بیفتد، این وظیفه مشتری است که نتایج را بسته بندی کند و آنها را برای درخواست کننده بازگرداند.
خوشبختانه، Tag Manager بسیاری از این موارد را برای شما انجام می دهد. کانتینرهای سرور دارای 2 کلاینت هستند: Google Analytics 4 و Measurement Protocol. این کلاینتها ابزارهایی را که برای شروع ابزار دقیق برنامهتان نیاز دارید، به محض ایجاد کانتینر، فراهم میکنند.
یک مثال کوتاه
بیایید یک مثال سریع را مرور کنیم تا ببینیم چگونه همه قطعات با هم قرار می گیرند. در این مثال، موارد زیر را ایجاد خواهید کرد:
- یک وب سایت ساده که از gtag.js برای ارسال یک رویداد
click
به یک کانتینر سرور استفاده می کند. - یک سرویس گیرنده Google Analytics 4 که رویداد را دریافت می کند.
- ماشه ای که در رویداد
click
فعال می شود. - یک تگ Google Analytics 4 که دادههای رویداد را برای پردازش به Google Analytics ارسال میکند.
برای این مثال، فرض می کنیم که شما قبلاً کانتینر سرور خود را ایجاد و مستقر کرده اید.
gtag.js را پیکربندی کنید
ابتدا gtag.js را پیکربندی کنید تا داده ها را به ظرف سرور شما ارسال کند. با gtag.js، ارسال داده به محفظه سرور شما درست مانند ارسال داده به Google Analytics با یک تغییر عمل می کند. مانند صفحه مثال زیر، گزینه server_container_url
config را طوری تنظیم کنید که به ظرف سرور اشاره کند.
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TAG_ID', {
server_container_url: 'https://analytics.example.com',
});
</script>
TAG_ID
با شناسه برچسب خود جایگزین کنید. URL ظرف سرور خود را جایگزین https://analytics.example.com
کنید.
سپس یک تابع sendEvent()
اضافه کنید تا رویدادهای click
را مدیریت کند:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TAG_ID', {
server_container_url: 'https://analytics.example.com',
});
function sendEvent() {
gtag('event', 'click');
}
</script>
<button onclick="javascript:sendEvent()">Send Event</button>
TAG_ID
با شناسه برچسب خود جایگزین کنید. URL ظرف سرور خود را جایگزین https://analytics.example.com
کنید.
با این پیکربندی، کنترلکنندههای رویداد مانند تابع sendEvent()
موجود در این مثال یک رویداد click
را به ظرف سرور شما ارسال میکنند.
سرویس گیرنده Google Analytics 4
ظرف شما به مشتری نیاز دارد تا رویداد را پس از رسیدن به سرور دریافت کند. خوشبختانه، کانتینرهای سرور با یک سرویس گیرنده Google Analytics 4 از پیش نصب شده ارائه می شوند، بنابراین شما قبلاً این مرحله را انجام داده اید.
ماشه را کلیک کنید
بعد، یک ماشه ایجاد کنید که روی رویداد click
فعال شود. یک ماشه سفارشی ایجاد کنید که زمانی فعال شود که متغیر داخلی نام رویداد برابر با "کلیک" باشد.
تگ Google Analytics 4
در نهایت یک تگ GA4 را به ماشه وصل کنید. همانند کلاینتها، یک کانتینر سرور با یک برچسب GA4 همراه است. به سادگی تگ را ایجاد کنید، تنظیمات خود را پیکربندی کنید و اکنون ظرف خود را سیم کشی کرده اید. کلاینت های GA4 و تگ های GA4 برای کار با هم طراحی شده اند. این به این معنی است که تنها کاری که باید انجام دهید این است که یک تگ GA4 ایجاد کنید و پیکربندی آن به طور خودکار از رویدادهایی که از کلاینت خارج می شود خارج می شود.
پیش نمایش ظرف
اکنون که ظرف پیکربندی شده است، روی Preview کلیک کنید. از وب سایت خود در یک پنجره مرورگر دیگر بازدید کنید. همانطور که درخواست ها و رویدادها به کانتینر سرور شما ارسال می شود، درخواست ها و رویدادها را در سمت چپ صفحه پیش نمایش مشاهده خواهید کرد.
هنگامی که از تغییرات خود راضی شدید، ظرف سرور را منتشر کنید.
سرور خود را برای حالت تولید با سرویس شخص اول پیکربندی کنید
قبل از ارسال هرگونه ترافیک تولیدی به کانتینر سرور خود، اکیداً توصیه میکنیم سرور را در دامنه شخص اول خود نصب کنید و سرور را به حالت تولید ارتقا دهید.