وبلاگ
همه رویدادهای GA4 که کانتینر سرور شما میبیند و منشأ هرکدام
منتشرشده · بهروزشده · 6 دقیقه مطالعه
عبور دادن GA4 از یک کانتینر سرور، مجموعه رویدادهای موجود را تغییر نمیدهد. چیزی که تغییر میکند این است که بالاخره میتوانید ببینید کدامها میرسند — صفحه کانتینر هر نام رویدادی را که ارسال میکند میشمارد. این فهرست از هر دو سو غافلگیرکننده است: رویدادهایی که هرگز پیکربندی نکردهاید پیدا میشوند و رویدادهایی که انتظارشان را داشتید نه. وقتی بدانید هر رویداد از کجا میآید، هر دو توضیح سادهای دارند.
چهار رویدادی که تگ Google در هر ویژگی میفرستد
به محض اینکه تگ Google با شناسه اندازهگیری شما بارگذاری شود، چهار رویداد بدون هیچ تنظیمی جریان پیدا میکنند. هیچ چیزی در Analytics آنها را خاموش نمیکند و لازم نیست چیزی در کانتینر شما درخواستشان کند.
- page_view — یکی برای هر بارگذاری صفحه، یا برای هر تغییر مسیر در یک اپ تکصفحهای، وقتی گزینه «page changes» در جریان داده روشن باشد.
- session_start — نخستین ارسال یک نشست تازه. نشست پس از سی دقیقه عدم فعالیت پایان مییابد، پس بازدیدکنندهای که دو ساعت بعد برمیگردد نشست دیگری را آغاز میکند.
- first_visit — یک بار برای هر مرورگر، در نخستین نشستی که GA4 تا به حال از آن دیده است. پاک کردن کوکیها یکی دیگر ایجاد میکند.
- user_engagement — وقتی ارسال میشود که صفحه ده ثانیه در پیشزمینه بوده باشد، یا وقتی بازدیدکننده پس از تعامل صفحه را ترک کند. زمان تعامل (engagement time) در GA4 از همینجا میآید.
اگر page_view را میبینید و چیز دیگری نه، تگ کار میکند. این ایراد نیست؛ فقط سایتی است که هنوز کسی تا پایینش اسکرول نکرده است.
نه رویداد از Enhanced Measurement — و کلیدی که تعیین میکند اصلاً هیچکدامشان را دریافت کنید یا نه
Enhanced Measurement در GA4 نه رویداد دیگر را در مرورگر جمعآوری میکند، بدون اینکه برای هیچکدام تگی لازم باشد. این رویدادها روی جریان داده پیکربندی میشوند، نه در Tag Manager؛ به همین دلیل کانتینر سرور آنها را بدون آگاهی از وجودشان ارسال میکند.
هرکدام شرطی دارد که سختگیرانهتر از چیزی است که از نامش برمیآید.
- scroll — یک بار در هر صفحه و فقط وقتی 90% ارتفاع صفحه دیده شده باشد. نه با هر اسکرولی: با رسیدن به پایین صفحه. صفحهای که کوتاهتر از viewport باشد هرگز آن را ارسال نمیکند.
- click — کلیک خروجی، به دامنهای غیر از دامنه فعلی. پیوندهای داخلی حساب نمیشوند. نام رویداد click است، با پارامتر outbound؛ رویدادی به نام outbound_click وجود ندارد.
- view_search_results — بارگذاری صفحهای که URL آن یک پارامتر جستوجو دارد (بهطور پیشفرض q، s، search، query یا keyword).
- file_download — کلیک روی پیوندی که به پسوند سند، فایل فشرده، صدا، ویدیو یا صفحهگسترده ختم میشود.
- form_start و form_submit — نخستین تعامل با فرمی در صفحه، و ارسال آن.
- video_start، video_progress و video_complete — فقط برای پخشکنندههای جاسازیشده YouTube و فقط وقتی پشتیبانی JS API در کد جاسازی فعال باشد.
این همان بخشی است که هفتهها وقت آدمها را میگیرد. هر نه رویداد به کلید اصلی Enhanced Measurement در جریان داده وابستهاند و جریانی که از طریق Analytics Admin API ساخته شده باشد — نه در رابط کاربری Analytics — این کلید را خاموش (OFF) دارد. اگر تنظیمات را از طریق API بخوانید، تکتک کلیدهای جزئی true گزارش میشوند؛ کلید اصلی اصلاً در پاسخ نیست، چون مقدارش false است و API مقادیر بولی false را حذف میکند. پس پیکربندی کاملاً فعال به نظر میرسد و فقط page_view تحویل میدهد.
ما این را روی ویژگی خودمان پیدا کردیم. SignalHost وقتی برایتان ویژگی میسازد، کلید اصلی را روشن میکند؛ اگر ویژگی شما به روش دیگری ساخته شده و scroll هرگز نمیرسد، جریان داده را در Analytics باز کنید و خود «Enhanced measurement» را بررسی کنید، نه کلیدهای زیر آن را.
شانزده رویدادی که فقط سایت شما میتواند بفرستد
رویدادهایی که پول میسازند — یک فروش، یک سرنخ، یک ثبتنام — تنها رویدادهای این صفحهاند که هیچ چیز بهطور خودکار نمیفرستدشان. GA4 نام و ساختار آنها را تعریف میکند؛ سایت شما باید هرکدام را دقیقاً با همان نام و در همان لحظهای که رخ میدهد به dataLayer بفرستد (push کند).
هر کانتینر SignalHost برای شانزدهتا از آنها یک تریگر و یک تگ رویداد GA4 آماده دارد:
- نه رویداد برای قیف فروشگاه: view_item_list، view_item، add_to_cart، remove_from_cart، view_cart، begin_checkout، add_shipping_info، add_payment_info و purchase، هرکدام همراه با یک شیء ecommerce.
- پنج رویداد برای سرنخها: generate_lead، contact، schedule، submit_application و subscribe.
- دو رویداد برای ثبتنام: sign_up و start_trial.
یک پوسته پیشفرض Shopify هیچکدام از آنها را push نمیکند، هسته WooCommerce هم همینطور: یک اپ یا افزونه dataLayer این کار را میکند و در Shopify رویدادهای پرداخت به یک Custom Pixel نیاز دارند، چون کانتینر پوسته هرگز در صفحههای پرداخت بارگذاری نمیشود. به محض اینکه سایتتان یکی از آنها را push کند، تگ آماده ارسال آن است — ترتیب دادن push با شماست و مقاله Shopify و WooCommerce دقیقاً توضیح میدهد چه چیزی نصب کنید.
دکمه «رویدادهای پشتیبانیشده» در کارت «رویدادها» در کانتینرتان همه آنها را فهرست میکند، همراه با معنای هرکدام و آنچه باید push کنید. اگر کانتینر شما یکی از آنها را از قبل با تگ خودتان به GA4 میفرستد، SignalHost آن رویداد را به تگ شما میسپارد تا دو بار شمرده نشود.
صفحه کانتینر چه چیزی را میشمارد
هر درخواست اندازهگیری که از کانتینر شما عبور کند، بر اساس نام رویداد، به تفکیک روز و به مدت 400 روز شمرده میشود. فقط نام نگه داشته میشود — نه URL، نه client ID، نه حتی یک پارامتر — و همین است که نگه داشتن آن را برای این مدت طولانی بیخطر میکند. این فهرست همان چیزی است که به نام میزبان شما رسیده، پس به پرسشی پاسخ میدهد که خود Analytics نمیتواند: آیا مرورگر اصلاً آن را فرستاده است؟
انتظار داشته باشید شمارشها نابرابر باشند. هر بارگذاری صفحه یک page_view است؛ فقط بارگذاریهایی که به پایین صفحه میرسند یک scroll هستند؛ فقط نشستهایی که از ده ثانیه بگذرند یک user_engagement هستند. سایتی با ده بازدید صفحه و دو scroll، سایتی عادی است.
دو چیز باعث میشود این دو فهرست هرگز دقیقاً یکسان نشوند. بازدیدکنندهای که هنوز به بنر شما پاسخ نداده، باز هم همه رویدادها را بهصورت پینگ بدون کوکی میفرستد و کانتینر آن را میشمارد، در حالی که Analytics کنارش میگذارد — صفحه هر دو عدد را نشان میدهد تا ببینید کدام کدام است. و session_start و first_visit اصلاً در صفحه کانتینر ظاهر نمیشوند: مرورگر آنها را بهصورت رویداد نمیفرستد، بلکه دو پرچم روی نخستین page_view میگذارد و Analytics این رویدادها را در سمت خودش میسازد.
بالای فهرست، کارت میشمارد که چندتا از آن شانزده رویداد در 30 روز گذشته رسیدهاند، تا رویدادی که سایتتان فراموش کرده بفرستد به چشم بیاید.
وقتی رویدادی نمیرسد
دو حالت وجود دارد و صفحه کانتینر آنها را از هم تشخیص میدهد.
اگر رویداد در فهرست کانتینر نیست، سایت شما هرگز آن را نفرستاده است. کانتینر نمیتواند چیزی را که نرسیده ارسال کند. برای یک رویداد استاندارد، کلید Enhanced Measurement جریان داده را بررسی کنید؛ برای یکی از آن شانزده رویداد، بررسی کنید که push به dataLayer با نام درست و در صفحهای که باید، انجام میشود.
اگر رویداد در فهرست کانتینر هست اما در Analytics نیست، رسیده و ارسال شده است و مشکل در سمت Google است: شناسه اندازهگیری اشتباه، یک فیلتر داده، ویژگیای در حسابی غیر از آنچه به آن نگاه میکنید، یا صرفاً تأخیر گزارشدهی — گزارش بیدرنگ (realtime) آن را در چند ثانیه نشان میدهد و گزارشهای استاندارد ممکن است یک روز طول بکشند.
از صفر شروع میکنید؟ چگونه Google Tag Manager سمت سرور را گامبهگام راهاندازی کنیم.

