در مقایسه با نسخه‌های قبلی، Google Analytics 4 امکانات ترکینگ داخلی بیشتری ارائه می‌ده. این امکانات شامل ترکینگ دانلود فایلا، کلیک‌های خروجی، اسکرول ترکینگ و چیزهای دیگه‌ست. اما می‌دونستی که اسکرول ترکینگ به صورت دیفالت در GA4 فقط زمانی فعال می‌شه که کاربر بیشتر از ۹۰٪ ارتفاع صفحه اسکرول کنه؟

خب حالا اگه بخوای سطوح دیگه‌ای از عمق اسکرول رو هم ترک کنی (مثلاً ۲۵٪، ۵۰٪ یا ۷۵٪) چی؟

توی این پست وبلاگ می‌خوام بهت نشون بدم که چطور می‌تونی ترکینگ اسکرول رو با استفاده از GA4 و GTM پیاده‌سازی کنی و بر اساس نیاز خودت شخصی‌سازیش کنی. اینجا دو روش مختلف وجود داره و من هر دوتاشو برات کامل توضیح می‌دم.

تمپلیت آماده GTM
برای اینکه وقتتو نگیرم، یه تمپلیت (یا همون recipe) آماده برای GTM آماده کردم. می‌تونی از اینجا دانلودش کنی و وارد GTM کنی.

 json scroll.txt

دانلود فایل کانتینر
فایل JSON مربوط به کانتینر رو از بالا دانلود کن. (روی لینک بالا باید راست کلیک کنی و گزینه‌ی “Save Link As” یا “Save Target As” رو بزنی تا فایل JSON رو توی کامپیوترت ذخیره بشه.)

ایمپورت کردن فایل JSON توی GTM
وارد اکانت GTM خودت بشو و از منوی سایت، به بخش Admin برو. زیر گزینه‌های مربوط به Container، روی Import Container کلیک کن. توی تنظیمات ایمپورت روی گزینه merge بزن.

Measurement ID مربوط به GA4 خودت رو وارد کن
توی تگ ایونت GA4، فیلدی هست به اسم “Measurement ID”. توی این قسمت، Measurement ID مربوط به property خودت در GA4 رو وارد کن.


پریویو و پابلیش
از قابلیت Preview استفاده کن تا این کانتینر رو توی سایت خودت تست کنی. سعی کن هر کدوم از ایونت‌ها رو تست کنی تا مطمئن بشی همه چیز درست کار می‌کنه.


دو روش ترکینگ اسکرول در GA4
احتمالاً شنیدی که مدل داده GA4 نسبت به نسخه‌های قبلی خیلی انعطاف‌پذیرتره. ولی این انعطاف بیشتر یعنی مسئولیت بیشتر. یعنی باید از اول مشخص کنی که اسم و ساختار ایونت‌های اسکرولت چطور باشه. دو روش اصلی داریم:

  1. استفاده از یه اسم ایونت ثابت مثل scroll با یه پارامتر دیفالت به اسم percent_scrolled (این همون چیزیه که Enhanced Measurement داره ترکینگ می‌کنه)
  2. تعریف ایونت‌های متفاوت برای هر آستانه اسکرول، مثل scroll_25، scroll_50، scroll_75، scroll_90. توی این روش دیگه نیازی به پارامتر percent_scrolled نیست چون عدد درصد توی اسم ایونت مشخصه.

خب، کدوم روش بهتره؟

روش اول (یعنی استفاده از ایونت scroll در کنار پارامتر percent_scrolled) نیاز به ثبت یه کاستوم دایمنشن  داره (البته گه بخوای توی Looker Studio ببینیش). اگه نزدیک سقف ۵۰ تا کاستوم دایمنشن در پراپرتیGA4 هستی، این روش شاید مناسب نباشه. ولی اگه فقط بخوای توی رابط کاربری GA4 ازش استفاده کنی، یه دایمنشن دیفالت به اسم “Percent scrolled” وجود داره که می‌تونی ازش استفاده کنی.

روش دوم (یعنی استفاده از اسم‌های متفاوت برای هر آستانه اسکرول، مثل scroll_25 و …) توی گزارش‌هایی مثل Path Exploration یه‌کم راحت‌تره، ولی اگه تصمیم بگیری مثلاً ۱۰ تا آستانه مختلف ترکینگ کنی، یعنی ۱۰ تا ایونت مختلف توی لیست ایونت‌هات داری و تعداد ایونت هات خیلی زیاد میشه. حالا سوال اینه که این برات راحته یا نه؟

پس انتخاب با خودته.

راستش من خودم الان یه روش ترکیبی رو ترجیح می‌دم: یعنی ایونت‌هایی مثل scroll_25 بفرستم و همزمان یه پارامتر percent_scrolled هم همراهش بفرستم، که اگه یه روز خواستم از دایمنشن Percent Scrolled توی گزارش‌های GA4 استفاده کنم، دستم باز باشه (بعضی وقتا واقعاً به‌درد می‌خوره).

خب، حالا بریم سراغ پیکربندی عملی.

غیرفعال کردن اسکرول ترکینگ خودکار در GA4

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

توی پنل Google Analytics برو به مسیر:
Admin > Data Streams > دیتاستریم سایتت رو انتخاب کن.
بعدش روی آیکن چرخ‌دنده کلیک کن…


…و ترکینگ Scroll رو غیرفعال کن. روی Save بزن.

disable scroll tracking in google analytics 4 enhanced measurement

ست کردن Scroll Trigger

با این وجود که GTM خودش قابلیت اسکرول ترکینگ  رو داره، ولی این قابلیت به‌صورت پیش‌فرض غیرفعاله.

برای فعال کردنش برو به:
Google Tag Manager > Triggers > New > Scroll Depth و تنظیمات پایین رو اعمال کن:

scroll trigger in google tag manager

(تصویر مربوط به تنظیمات اسکرول در GTM)

اگه دوست داشتی می‌تونی درصدها رو تغییر بدی یا یه سری تنظیمات دلخواه دیگه انجام بدی. ولی این تنظیمی که بالا می‌بینی رایج‌ترین حالته.

در نهایت Trigger رو ذخیره کن.

فعال کردن وریبل های Scroll

گرچه توی این تنظیمات فقط به یه وریبل اسکرول نیاز داریم، ولی بد نیست همه‌شون رو فعال کنیم، چون تأثیر منفی خاصی روی سرعت سایت نمی‌ذاره.
برو به بخش:
Variables > Configure (توی قسمت Built-in variables) و همه متغیرهایی که به Scroll مربوط می‌شن رو فعال کن:


تنظیم کردن تگ ایونت GA4

حالا وقتشه که تگ ایونت GA4 رو تنظیم کنیم تا ایونت اسکرول ارسال بشه. توی این بخش فرض می‌کنم با اصول پایه GA4 آشنایی و قبلاً تگ کانفیگ GA4 رو توی GTM ست کردی.

ولی اگه هنوز تگ کانفیگ Google رو نساختی، اول برو به:
Tags > New > Google Analytics > Google Tag
شناسه تگ (همون Measurement ID) رو وارد کن و تنظیماتت باید چیزی مثل تصویر زیر باشه:


اگه کنجکاوی بدونی اون عبارت‌هایی که بین دو تا آکولاد {{ هستن چیه، باید بگم اینا متغیرهایی هستن که شناسه GA4 رو ذخیره کردن و توی تگ استفاده شدن.

وقتی تگ کانفیگ گوگل رو ساختی، حالا وقتشه تصمیم بگیری کدوم روش اسکرول ترکینگ رو می‌خوای استفاده کنی:

  1. یه ایونت به‌اسم scroll با پارامتر percent_scrolled
  2. چندتا ایونت مختلف مثل scroll_25، scroll_50 و … بدون استفاده از پارامتر

روش اول: یه ایونت scroll با پارامترpercent_scrolled

این مسیر رو برو Tags > New > Google Analytics > GA4 Event و تنظیمات زیر رو وارد کن:


تو این روش داریم از ساختار نام‌گذاری Enhanced Measurement استفاده می‌کنیم. هر وقت کاربر از یه آستانه اسکرول خاص (که توی Trigger تنظیم کردی) عبور بکنه، این ایونت فایر می‌شه و همراهش پارامتر percent_scrolled هم ارسال می‌شه.

اگه بخوای این پارامتر رو توی گزارش‌ها ببینی، یه دایمنشن پیش‌فرض به‌اسم Percent Scrolled هست که به‌دردت می‌خوره. بعداً نشونت می‌دم کجا می‌تونی ببینیش.

بعد از اینکه تگ رو پابلیش کردی و ایونت‌های اسکرول رو شروع کردی به فرستادن، تا ۲۴ تا ۴۸ ساعت بعد توی گزارش‌ها دیده می‌شن.

روش دوم: ساختن چندتا ایونت جداگانه برای هر آستانه اسکرول

اگه روش دوم رو انتخاب کردی، در محیط تگ منیجر برو به Tags > New > Google Analytics > GA4 Event و این تنظیمات رو وارد کن:


اینجا هم از همون متغیر Scroll Depth Threshold استفاده می‌کنیم، ولی این بار توی اسم ایونت جاگذاریش می‌کنیم. مثلاً اگه کاربر از ۲۵٪ صفحه اسکرول کنه پایین، اسم ایونت می‌شه scroll_25. اگه از ۵۰٪ رد بشه، می‌شه scroll_50 و به همین ترتیب.

یه نکته خوب اینه که حتی توی این روش هم می‌تونی پارامتر percent_scrolled رو اضافه کنی (گرچه توی عکس بالا نیست).

همه‌چیز رو تست کن و بعد پابلیش کن

حالا نوبت تست کردن ستاپمون رسیده. توی GTM روی دکمه Preview بالا سمت راست کلیک کن. آدرس سایتت رو وارد کن و روی Start بزن تا وارد حالت تست بشی.

start google tag manager preview mode

بعد از اینکه وارد سایتت شدی، اسکرول کن به سمت پایین (حداقل تا زیر ۵۰٪).

برگرد به تب پریویو مود (مطمئن شو داری همون کانتینر رو بررسی می‌کنی).

باید حداقل دو تا ایونت Scroll Depth رو توی سایدبار سمت چپ تب Preview ببینی. روی هرکدوم کلیک کن و ببین آیا تگ ایونت GA4 مربوط به اسکرول فایر شده یا نه. تگ اسکرول بعدی رو هم چک کن.


میتونی روی هر تگ کلیک کنی، بعد بری روی تب Values تا ببینی چه دیتاهایی برای گوگل آنالیتیکس فرستاده شده.


حالا باید چک کنیم که GA4 واقعاً دیتا رو دریافت کرده یا نه

توی Google Analytics برو به قسمت DebugView. این بخش الان توی مسیر Admin > DebugView قرار داره.

اگه چند تا دستگاه دیده می‌شن، باید اون یکی رو که مربوط به خودته پیدا کنی (بالا سمت چپ DebugView).

چطور می‌فهمی کدوم دستگاه مال خودته؟ خب، یکی از اونا باید داره ایونت‌های scroll می‌فرسته. این می‌تونه کمکت کنه تا تشخیص بدی.

اگه همه‌چیز درست تنظیم شده باشه، باید شروع کنی به دیدن ایونت‌هایی مثل scroll یا scroll_xx. می‌تونی روشون کلیک کنی و ببینی چه پارامترهایی باهاشون ارسال شدن.

تو اسکرین‌شاتی که پایین هست، می‌تونی ببینی وقتی روش اول (یعنی یه اسم ایونت + پارامتر percent_scrolled) رو استفاده کردی، ایونت چه شکلیه:

scroll event in google analytics 4 debugview

اگه همه‌چیز اوکی بود، برگرد به Google Tag Manager، روی SUBMIT بالا سمت راست بزن و بعدش PUBLISH رو بزن تا تغییراتت منتشر بشن.

گزارش‌های اسکزوب ترکینگ در GA4

وقتی اسکرول ترکینگ رو توی GA4 راه‌اندازی کردی، باید تا ۲۴ تا ۴۸ ساعت صبر کنی تا دیتا توی گزارش‌های معمولی ظاهر بشه.

ایونت‌های جدید scroll توی مسیر زیر نمایش داده می‌شن:
Reports > Engagement > Events


اگه روی اون ایونت کلیک کنی، چندتا نمودار مرتبط باهاش هم نمایش داده می‌شه.

ولی اگه می‌خوای دیتای اسکرول رو برای یه صفحه خاص ببینی، باید بری به:
Explore > Free Form report  و یه سری تنظیمات اضافی انجام بدی.

حالت 1.1: اگه فقط یه اسم ایونت scroll خالی داری و می‌خوای درصد اسکرول رو توی یه صفحه خاص بررسی کنی

در اکسپلوریشن GA4 ستون Variables ، روی علامت + کنار Dimensions کلیک کن.


  • دایمنشن Percent Scrolled رو پیدا کن و اضافه‌اش کن (توی GA4 به‌صورت پیش‌فرض وجود داره)
  • دایمنشن Page Path رو هم اضافه کن

حالا توی ستون Tab Settings، دایمنشن Percent Scrolled رو توی قسمت Rows بنداز.

قسمت Columns رو خالی بذار.

توی بخش ولیوها ها هم  Active Users و Event Count رو اضافه کن.


توی قسمت Filters، دو تا فیلتر اضافه کن:

  1. Event name دقیقاً برابر باشه با scroll
  2. اگه می‌خوای بررسی‌ات رو محدود کنی به یه صفحه خاص، فیلتر دوم اینه که Page Path شامل یه مقدار خاص باشه (مثلاً /pages/contact-us/). یادت نره Page Path شامل دامنه نیست. می‌تونی مثال‌های Page Path رو توی GA4 > Engagement > Pages and Screens ببینی (و از بالا Page Path and Screen Class رو انتخاب کنی).


گزارشت می‌تونه شکلی شبیه این داشته باشه:

percent scrolled report in ga4

توی این گزارش می‌تونی ببینی که چند نفر توی یه صفحه خاص به چه درصدهایی از اسکرول رسیدن.

حالت 1.2: اگه یه اسم ایونت scroll خالی داری و می‌خوای اسکرول رو توی چند صفحه بررسی کنی

این حالت تقریبا شبیه همون حالت قبله، فقط این‌بار گزارش رو برای چند صفحه می‌گیریم.

توی اکسپلوریشن ستون Variables، روی + کلیک کن و این دایمنشن‌ها رو اضافه کن:

  • Percent Scrolled (دایمنشن پیش‌فرض GA4)
  • Page Path

حالا توی Tab Settings:

  • Page Path رو بنداز توی Rows. تعداد ردیف‌ها رو بذار روی ۲۵ یا بیشتر
  • Percent Scrolled رو بنداز توی Columns

توی Values فقط Event Count رو بنداز.


توی Filters، این فیلترها رو اضافه کن:

  • Event name دقیقاً برابر با scroll
  • Percent Scrolled دقیقاً برابر با (not set) نباشه (اگه تعدادش کم باشه، می‌تونه کمک کنه که گزارش دقیق‌تر باشه)


این‌جوری یه گزارش داری که نشون می‌ده توی هر صفحه چقدر اسکرول اتفاق افتاده:

scroll report in google analytics 4

فعلاً توی این حالت فقط می‌تونی داده‌ها رو بر اساس ستون Totals مرتب کنی. شاید در آینده گوگل این رو بهتر کنه.

حالت 2.1: اگه از چند اسم ایونت اسکرول برای هر آستانه اسکرول استفاده کردی(مثلا scroll-25) و می‌خوای یه صفحه خاص رو بررسی کنی

اگه تصمیم گرفتی برای هر آستانه‌ی اسکرول، یه اسم ایونت جداگانه بذاری (مثلاً scroll_25، scroll_50، و غیره)، اینجا یه نمونه گزارش هست که می‌تونی برای یه صفحه خاص بسازی.

توی ستون Variables در بخش Exploration، روی آیکن + کنار Dimensions کلیک کن:

  • دایمنشن Page Path رو پیدا کن و اضافه‌اش کن و روی Apply بزن.

حالا در Tab Settings:

  • Event Name رو در بخش Rows قرار بده.
  • قسمت Columns رو خالی بذار.
  • در Values، دوتا متریک رو اضافه کن: Active Users و Event Count.


در قسمت Filters، این دو فیلتر رو اضافه کن:

  1. Event name شامل عبارت scroll باشه (اگه اسم‌هات چیزی مثل scroll_25, scroll_50, ... هستن، این فیلتر همه‌شونو پوشش می‌ده).
  2. اگه می‌خوای گزارش فقط برای یه صفحه خاص باشه، فیلتر دوم رو بذار که Page Path شامل یه عبارت خاص باشه (مثلاً /pages/contact-us/). یادت نره Page Path شامل دامنه نیست. برای دیدنش هم می‌تونی بری به GA4 > Engagement > Pages and Screens و اون بالا نمایش رو روی Page Path بذاری (همون‌طور که توی تنظیمات 1a گفتم).

خروجی این گزارش می‌تونه چیزی شبیه این باشه:

scroll report in ga4

📊 توی این گزارش می‌بینی که چند نفر توی یه صفحه خاص، تا چه درصدی اسکرول کردن. مثلاً چند درصدشون تا ۲۵٪، چند درصدشون تا ۵۰٪ پایین رفتن.

حالت 2.2: اگه از چند اسم ایونت scroll استفاده کردی(scroll-25, scroll-50...) و می‌خوای چند صفحه مختلف رو با هم بررسی کنی

این حالت جایگزین حالت قبله. این‌بار به‌جای تمرکز روی یه صفحه، می‌خوای اسکرول رو توی چندتا صفحه بررسی کنی.

مراحل ستاپ گزارش:

  1. توی ستون Variables در بخش Exploration، روی آیکن + کلیک کن و دایمنشن‌های زیر رو اضافه کن:
    • Page Path
    • Event Name
  2. در Tab Settings:
    • Page Path رو بنداز توی قسمت Rows (تعداد سطرها رو بذار روی ۲۵ یا بیشتر).
    • Event Name رو بنداز توی قسمت Columns.
    • توی Values، متریک Event Count رو اضافه کن.


  1. در Filters، فقط یه فیلتر بذار:
    • Event name شامل عبارت scroll باشه.


و تمام!

گزارشی که با این تنظیمات به‌دست میاد، شبیه اینه:

scroll events in ga4

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

جمع بندی:

خب، در مجموع میشه گفت:

برای اسکرول ترکینگ  توی GA4، دو تا روش اصلی وجود داره:

  1. یه ایونت ثابت داشته باشی (مثلاً scroll) و درصد اسکرول رو به‌عنوان یه پارامتر جداگانه بفرستی (مثل percent_scrolled)
  2. یا اصلاً پارامتر نفرستی و آستانه اسکرول رو توی اسم ایونت بذاری (مثلاً scroll_25, scroll_50 و ...)

من اول با روش اول شروع کردم ولی هرچی گذشت بیشتر به روش دوم علاقه‌مند شدم.