همین اول مقاله بگم که ارسال ایونت یوزر-انگیجمنت قبل از پیج ویو باعث “not set” شدن لندینگ پیج نمی‌شه

وقتشه یه سری باورهای غلط رو بشکنیم. یه تفکر مشابه قبلاً در مورد آنالیتیکس یونیورسال وجود داشت و خیلی‌ها فکر می‌کردن اگه توی یه سشن، ایونتی قبل از پیج ویو فایر بشه، این باعث می‌شه لندینگ پیج اون سشن به صورت “not set” دربیاد. 

حالا ما با نسخه جدیدی از گوگل آنالیتیکس(GA4) سر و کار داریم، ولی همون باور غلط هنوز پابرجاست.

موضوع از این قراره: اگه هر تگ ایونتی رو قبل از گوگل تگ (همون تگ کانفیگ) فایر کنی، ممکنه با مشکل "not set" در گزارش لندینگ پیج مواجه شی. بنابراین باید حواست باشه که گوگل تگ حتماً قبل از بقیه تگ‌های گوگل آنالیتیکس فایر بشه.

اما این مشکل "not set" مستقیماً به ایونت page_view مربوط نیست. اگه گوگل تگ رو اول فایر کنی (با این ستاپ که پارامتر send_page_view معادل false باشه) و بعد یه ایونت مثل user_engagement فایر بشه و بعد از اون هم ایونت page_view بیاد، همچنان ولیوی لندینگ پیج درست ثبت می‌شه.

دایمنشن لندینگ پیج، اطلاعاتش رو از اولین page_view توی اون سشن می‌گیره. اگه توی اون سشن اصلاً page_view نداشته باشیم، اون‌وقت مقدارش می‌شه "not set". مثلاً فرض کن یه کاربر تب مرورگر رو باز می‌ذاره، سشن اول تموم می‌شه. بعد از اینکه کاربر برگشت تنها یه ایونت user_engagement فایر بشه (که خودش باعث شروع یه سشن جدید می‌شه و تنها ایونت اون سشن هم هست)، اون‌وقت لندینگ پیج می‌شه "not set"، چون هیچ page_viewای نداشتیم.

ولی اگه یه سشن حداقل یه page_view داشته باشه، دیگه ترتیب ایونت‌ها اهمیتی نداره (به شرطی که سمت تگ منیجر ببینیم که گوگل کانفیگ تگ قبل از همه تگ‌های گوگل آنالیتیکس فایر بشه).

من چند تا تست انجام دادم و نتایجش هم این موضوع رو تأیید می‌کنه. بریم جزییات این تست ها رو ببینیم:


تست شماره ۱: نبود page_view توی سشن

توی این تست (و همه تست های بعدی) من از یه گوگل تگ استفاده کردم که پارامتر send_page_view براش روی false ست شده بود.


و توی تنظیمات دیتا استریم GA4 هم قابلیت Enhanced Measurement فعال بود، پس انتظار داریم که ایونت‌هایی مثل scroll به‌صورت خودکار ثبت بشن.

ایده این آزمایش این بود که اصلاً هیچ page_viewای فایر نشه، ولی بقیه ایونت‌ها فایر بشن. چون ارتفاع صفحه کم بود، ایونت اسکرول خیلی سریع فایر شد.

بعدش تصمیم گرفتم یه ایونت user_engagement هم بعد از scroll بفرستم.

راحت‌ترین راه برای فایر کردن user_engagement این بود که از کانسنت مود استفاده کنم. وقتی وارد صفحه شدم، همه کانسنت گروپ‌ها روی حالت denied بودن. بعدش حالت کانسنت رو تغییر دادم به granted و این باعث شد یه ایونت user_engagement فایر بشه.

در مجموع، دوتا هیت به گوگل آنالیتیکس فرستاده شد (به این ترتیب):

  • scroll
  • user_engagement


بعد از اینکه بیشتر از ۷۲ ساعت صبر کردم، نتایج این بود: مقدار لندینگ پیج برابر با "not set" بود چون توی اون سشن هیچ page_viewی فایر نشده بود. این دقیقاً همون دلیلیه که باعث می‌شه مقدار لندینگ پیج بشه "not set".


تست شماره ۲: ارسال ایونت ها با این ترتیب scroll > user_engagement > page_view

حالا بریم یه قدم جلوتر. این بار یه سشن دیگه رو شروع کردم و ایونت ها این‌جوری ثبت شدن (به ترتیب ):

  • وارد صفحه اصلی شدم
  • گوگل کانفیگ تگ اول فایر شد (بدون page_view)
  • بعدش ایونت scroll به خاطر Enhanced Measurement فایر شد
  • بعد کانسنت رو قبول کردم که باعث شد ایونت user_engagement فایر بشه
  • بعدش یه تگ ایونتی برای گوگل آنالیتیکس فایر کردم و داخل اون اسم ایونت رو page_view گذاشته بودم (توی همون صفحه).


ترتیب ایونت‌ها توی پریویو مود توی تصویر مشخصه(اول scroll اتفاق افتاد):

و حالا نتیجه بعد از ۷۲ ساعت:


همون‌طور که می‌بینی، مقدار لندینگ پیج درست ثبت شده چون بالاخره یه page_view داشتیم. سشن از هوم پیج شروع شده بود، بنابراین آدرس " / " بعنوان ولیوی لندینگ پیج ثبت شده.

همه‌چیز اینجا درست کار کرده چون یه page_view داشتیم که بعد از گوگل کانفیگ تگ فایر شده.


تست شماره ۳: user_engagement > رفتن به صفحه دوم > page_view

بیاید یه قدم دیگه جلو بریم. کنجکاو بودم ببینم اگه page_view فقط تو صفحه دوم فایر بشه، چی میشه؟ چون لندینگ پیج یه دایمنشن سشن-اسکوپ هست، انتظار داشتم که همون page_view دوم به‌عنوان لندینگ پیج در نظر گرفته بشه.

روند تست این شکلی بود:

  • وارد هوم پیج شدم
  • گوگل کانفیگ تگ فایر شد (بدون page_view)
  • ایونت اسکرول اتفاق افتاد (به خاطر Enhanced Measurement)
  • کانسنت رو دادم (که باعث شد ایونت user_engagement فایر بشه)
  • به یه صفحه دیگه تو سایت رفتم (مسیر صفحه: /category/uncategorized/)
  • تو اون صفحه دوباره گوگل کانفیگ تگ فایر شد (باز هم بدون page_view)
  • چون صفحه بلندتر بود، ایونت اسکرول این بار فایر نشد
  • در نهایت یه تگ ایونتی فایر کردم که اسم ایونت رو توش page_view گذاشته بودم


و اینم نتیجه بعد از بیشتر از ۷۲ ساعت:

گوگل آنالیتیکس اون page_view دوم رو پردازش کرد و همون رو به‌عنوان لندینگ پیج در نظر گرفت.


البته این سناریوی درستی نیست (چون صفحه دوم، واقعاً اولین صفحه‌ای نیست که کاربر واردش شده)، ولی نکته مهم اینه که بالاخره تو یه جایی از مرور اولین صفحه، یه ایونت page_view باید به گوگل آنالیتیکس فرستاده بشه.

نکته مهمتر اینکه اصلاً مهم نیست که ایونت user_engagement قبل از page_view فایر شده یا نه. چیزی که مهمه اینه که هیچ‌کدوم از تگ‌های ایونتی قبل از گوگل کانفیگ تگ فایر نشن.

جمع‌بندی نهایی

واقعاً نمی‌دونم اول کی این سوءتفاهم رو به‌وجود آورد. شاید یکی فکر کرده که user_engagement قبل از page_view باعث این مشکل میشه، ولی هیچ‌وقت صحتش رو بررسی نکرده.

پس حواست به چیزهایی که می‌خونی باشه. اعتماد کن ولی حتماً بررسی هم بکن. متأسفانه با رشد عجیب محتوای AI و مطالب نصفه‌نیمه، کیفیت محتوا به‌مرور کمتر و کمتر میشه.