ایونت ترکینگ در سایت های SPA | آموزش تصویری

ایونت ترکینگ در سایت های SPA | آموزش تصویری

ردیابی page_view در وب‌سایت‌های معمولی بسیار آسان است، یک کد ردیابی به هر صفحه اضافه می‌کنید، و تمام! هر زمان که بازدیدکننده‌ای روی یک لینک داخلی کلیک می‌کند، پنجره مرورگر به روز می‌شود، و یک ایونت page_view جدید به Google Analytics ارسال می‌شود. اما در مورد وب‌سایت‌های تک‌صفحه‌ای (یا وب اپلیکیشن‌ها) جزئیات بیشتری برای ایونت ترکینگ در آنالیتیکس ۴ وجود دارد. با اینکه حالا Google Analytics 4 یک ترکینگ داخلی page_view دارد، اما همیشه برای همه سایتها به درستی کار نمیکند. در نتیجه فقط بازدید از اولین صفحه ردیابی می‌شود و صفحات بعدی ثبت نمی‌شوند.

برای رفع این مشکل، شما باید تنظیمات اضافی برای ردیابی این نوع وب‌سایت‌ها/وب اپلیکیشن‌ها انجام دهید. اما نگران نباشید؛ من به شما سه روش را برای ردیابی وب اپلیکیشن‌های تک‌صفحه‌ای با Google Analytics 4 و Google Tag Manager آموزش خواهم داد.

وب اپلیکیشن تک‌صفحه‌ای یا وب‌سایت SPA چیست؟

وب اپلیکیشن تک‌صفحه‌ای (SPA) یک وب اپلیکیشن یا وب‌سایت است که تمام منابع لازم برای پیمایش در سراسر سایت را در بارگذاری اولین صفحه بارگیری می‌کند. هنگامی که کاربر روی لینک‌ها یا دکمه‌ها کلیک می‌کند و با صفحه تعامل دارد، محتوای بعدی به صورت پویا بارگیری می‌شود، یعنی صفحه از نظر فنی تغییر نمی‌کند، حتی اگر ظاهر متفاوتی داشته باشد.

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

در مورد Google Analytics 4، Enhanced Measurement  امکان ردیابی داخلی page_view را برای چنین سایت هایی فراهم کرده است. اما این روی تمام وب‌سایت‌های تک‌صفحه‌ای کار نمی‌کند. بنابراین ممکن است به پیاده سازی های تنظیمات اضافی از طریق گوگل آنالیتیکس ۴ لازم باشد.

اگر عبارت «وب اپلیکیشن تک‌صفحه‌ای» برای شما آشنا نیست، شاید نام‌هایی مانند React، Angular، Vue.js و Gatsby.js آشنا باشند، وب‌سایت‌هایی که با چارچوب‌های جاوااسکریپت ساخته شده‌اند وب اپلیکیشن‌های تک‌صفحه‌ای هستند.

چطور متوجه شویم یک سایت به صورت SPA پیاده سازی شده است؟

وقتی بین صفحات مختلف حرکت می‌کنید، آیا page_view جدید در حالت دیباگ مود GTM می‌بینید؟

به طور پیش‌فرض، تگ نصب گوگل آنالیتیکس ۴ (Google Analytics) هر بار که یک صفحه بارگذاری می‌شود، رخ میدهد. همراه با کد صفحه، بخش جاوااسکریپت Tag Manager نیز از ابتدا بارگیری می‌شود. بنابراین اگر از صفحه A به B بروید، یک ایونت page_view جدید رخ خواهد داد. هر بار که این اتفاق می‌افتد، به این معنی است که صفحه کاملا (دوباره) بارگذاری شده است.

پس اگر در هر بازدید صفحه، عنوان صفحه را در سمت چپ نوار کناری در دیباگ مود گوگل تگ منیجر مشاهده کنید، سایت شما یک وب اپلیکیشن تک‌صفحه‌ای نیست. اما اگر سایت شما از نوع سینگل پیج اپلیکیشن باشد، هر بار که از صفحه A به صفحه B حرکت می‌کنید، عنوان صفحه را در دیباگ مود گوگل تگ منیجر نخواهید دید. چرا؟

به این دلیل که در ردیابی وب، «بازدید از صفحه» معمولا زمانی است که داکیومنت صفحه بارگذاری می‌شود، و کد‌های ردیابی جاوااسکریپت همراه با آن بارگیری می‌شوند (شامل تگ های بازدید صفحه). اما در SPA، «page_view» بعدی به صورت پویا بدون بارگیری یا تازه‌کردن داکیومنت صفحه رخ می‌دهد. به همین دلیل به طور پیش‌فرض، «گوگل تگ منیجر بازدیدهای پویا» را ردیابی نمی‌کند.

پس برای ایونت ترکینگ در سایت های سینگل پیج اپلیکیشن با توجه به شرایط خاصی که دارند، باید به یک مورد توجه کنید:

آیا بعد از تغییر صفحه، آدرس یا همان URL صفحه تغییر میکند یا نه؟

  • اگر آدرس تغییر نکند، باید از دولوپرکمک بخواهید.
  • اما اگر آدرس تغییر کرد، هنوز این شانس را دارید که از تریگر History Change یا از قابلیت GA4 به طور خودکار استفاده کنید.

تغییرات آدرس ممکن است بر اساس وب‌سایتی مد نظرتان متفاوت باشد. در برخی از وب‌سایت‌ها، بخشی از آدرس که بعد از علامت # قرار میگیرد، تغییر می‌کند. در دیگر سایت ها، تغییر آدرس ممکن است عادی به نظر برسد، مانند یک وب‌سایت معمولی (به عنوان مثال، از /home/ به /home/contact-us) و غیره.)

روش اول: ردیابی page_view از طریقEnhanced Measurement  آنالیتیکس ۴

Enhanced Measurement یکی از قابلیت های آنالیتیکس ۴ است که به شما این امکان را میدهد که برخی از ایونتها را بدون نیاز به گوگل تگ منیجر، ردیابی کنید. اما تمامی این ایونت ها برای تمامی سایت ها به درستی کار نمیکنند. بنابراین بهتر است که همه ایونت ها به غیر از page_view(اسکرول، جستجوی سایت، ردیابی کلیک و غیره) را غیرفعال کنید. اما برای اینکه ببینید آیا قابلیت داخلی آنالیتیکس ۴، قادر به ردیابی بازدید از صفحه در سایت های سینگل پیج اپلیکیشن هست یا نه، مراحل زیر را دنبال کنید:

در Google Analytics ۴، به Admin > Data Streams بروید و روی دیتا استریم وب سایت خود کلیک کنید.

سپس روی آیکون چرخ دنده کنار Enhanced Measurement کلیک کنید و مطمئن شوید که Enhanced Measurementفعال است.)

سپس روی نمایش تنظیمات پیشرفته زیر page_view کلیک کنید و بررسی کنید آیا گزینه Page changes based on browser history events فعال است یا نه. این گزینه به GA4 اجازه می‌دهد به طور خودکار هر بار که آدرس تغییر می‌کند، ایونت بازدید از صفحه را اندازه گیری کند.

بعد از آن، تغییرات را در GA4 ذخیره کنید. در Google Tag Manager، حالت پیش‌نمایش و دیباگ مود را فعال کنید و سپس از یک صفحه به صفحه دیگر بروید. در حالت پیش‌نمایش GTM، شما باید ایونتهای History Change را ببینید.

اگر این ایونت را دیدید، روی شناسه اندازه‌گیری GA4 خود در بالای دیباگ مود گوگل تگ منیجر کلیک کنید و بررسی کنید آیا چندین ایونت page_view را که به Google Analytics ۴ ارسال می‌شوند، میبینید یا نه. اگر بله، پس اوضاع خوب است. زیرا GA4  به صورت خودکار قادر خواهد بود page_view برنامه یا وب‌سایت تک صفحه‌ای شما را ردیابی کند و نیازی به انجام تنظیمات اضافه از سوی شما نیست.

همچنین،DebugView  آنالیتیکس ۴ را بررسی کنید تا مطمئن شوید که ایونتهای page_view با پارامترهای page_title و page_location درست به این ابزار انتقال داده می شوند.

اما اگر ایونتهای History Change را نمی بینید یا ایونتهای page_view به GA4 ارسال نمی‌شوند، پس نمیتوانید از قابلیت آنالیتیکس ۴ به صورت خودکار استفاده کنید.

روش دوم: از تریگر History Change استفاده کنید

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

در Google Tag Manager، به Triggers > New > History Change بروید و یک تریگر با تنظیمات زیر ایجاد کنید:

سپس باید بررسی کنیم که آیا این تریگر درست کار می‌کند یا نه.

روی دکمه Preview در گوشه بالا سمت راست رابط GTM کلیک کنید.

هنگامی که روی دکمه Preview کلیک می‌کنید، یک تب مرورگر جدید با tagassistant.google.com باز می‌شود.

در پاپ آپی که نمایش داده می شود باید آدرس سایتی را که می‌خواهید بررسی کنید، وارد کنید. این آدرس ممکن است آدرس صفحه اصلی، یا آدرس یک صفحه خاص باشد، و سپس روی دکمه Start کلیک کنید.

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

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

آیا ایونت History را میبینید؟ اگر بله، پس أوضاع خوب است! اگر نه، پس حتما باید از یک دولوپر کمک بگیرید.
در برخی از برنامه‌های تک صفحه‌ای، ممکن است چندین ایونت Historyبه طور همزمان رخ دهد. به همین دلیل شما باید به یک سوال دیگر پاسخ دهید.

پس از اینکه مطمئن شدید که ترگیر History Change به درستی کار می‌کند، باید ایونت page_view را به Google Analytics ارسال کنید.

از آنجا که می‌خواهیم page_view را هر بار که یک ایونت تاریخچه رخ می‌دهد، ارسال کنیم، باید یک تگ از نوع ایونت آنالیتیکس ۴ انتخاب کنیم. تنظیماتی که برای این تگ انتخاب میکنیم به به ساختار آدرس وب‌سایت بستگی دارد.

در برخی از وب‌سایت‌ها، ممکن است متوجه شوید که page_view برنامه تک صفحه‌ای شما به درستی ردیابی می‌شوند، اما در گزارش‌ها، عنوان صفحه ردیابی شده همیشه متعلق به صفحه قبلی است. در این شرایط باید ردیابی برنامه تک صفحه‌ای را با کمک دولوپرانجام دهید، یا می‌توانید ایونت History Change را به تأخیر بیاندازید.

اگر URLهای وب سایت شما شامل # باشد

اگر URL وب سایت شما شامل # باشد، مثلاً www.mywebsite.com/#/something. به Tags > New > GA4 event tag بروید و تنظیمات زیر را وارد کنید.

من فرض می‌کنم که شما با GA4 configuration tag آشنا هستید، اگر با این گزینه آشنایی ندارید، به مقاله گوگل تگ چیست، مراجعه کنید.

گوگل آنالیتیکس 4 (و نسخه‌های قبلی آن) قادر به ردیابی خودکار بخشی از URL است که بعد از # می‌آید، نیست. به همین دلیل باید page_location را بازنویسی کنیم.

مهم: شما باید این کار را در تمامی ایونت هایی که در آینده برای گوگل آنالیتیکس ۴ میسازید، انجام دهید.

یکی از راه‌هایی که می‌توانید URL کامل (شامل #) را به GA4 منتقل کنید این است که یک متغیر جاوا اسکریپت به نام window.location.href  ایجاد کنید.

تگ را ذخیره کنید.

اگر URL های وب سایت شامل # نباشند

اگر URL وب سایت شامل # نباشد، نیازی به بازنویسی page_location نیست. زیرا آنالیتیکس ۴ آدرس صفحه را به درستی دریافت می‌کند.

 نحوه ساخت تریگر

اگر شما به طور کامل این راهنما را دنبال کرده باشید، پس قبلاً یک History Change trigger بدون هیچ شرط خاصی ایجاد کرده اید. اما اگر این تریگر را هنوز ایجاد نکرده‌اید، همین الان آن را بسازیدو به عنوان تریگر تگ ایونت page_view آنالیتیکس ۴ تعیین کنید.

آیا این تگ page_view باید به صورت خودکار، اولین page_view را اندازه گیری کند؟

پاسخ این سوال، به شرایط سایت بستگی دارد. باید بررسی کنید که بعد از لود مجدد یکی از صفحات سینگل پیج اپلیکیشن، چه اتفاقی می‌افتد. آیا ایونت History در حالت پیش‌نمایش هر بار که صفحه را لود می‌کنید نمایش داده می‌شود؟ اگر صفحه را مجدد لود کنید (بدون کلیک کردن در جایی از سایت) و ایونت هیستوری را ببینید، پس باید چک باکس بازدید صفحه را در تگ نصب آنالیتیکس ۴ یعنی GA4 configuration tag را غیرفعال کنید.

اگر ایونت History بلافاصله بعد از به روزکردن صفحه ظاهر نشد و فقط زمانی که با صفحه سایت تعامل داشتید، مثلا اسکرول کردید، نمایش داده شد، پس باید چک باکس موجود در تگ نصب را فعال نگهدارید.

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

اگر (به هر دلیلی تریگر History Changeکار نمی‌کند، گزینه دیگری برای ردیابی برنامه تک صفحه‌ای وب با Google Tag Manager وجود دارد.

از یک دولوپر بخواهید که هر زمان که کاربر بین صفحات مخالف جابجا می‌شود، یک کد dataLayer.push فعال کند. این یک نمونه کد است که دولوپرمی‌تواند از آن استفاده کند:

dataLayer.push({

  ‘event’: ‘virtualPageview’,

  ‘virtualPageURL’: ‘/some-page’,

  ‘virtualPageTitle’ : ‘Some page’

});

توجه: مقادیر پارامترهای ‘pageUrl’ و ‘pageTitle’ (در این قطعه کد باید به طور پویا با URL و عنوان صفحه‌ای که بازدیدکننده در حال مشاهده آن است، جایگزین شوند. اگر URL شامل # یا علامت سوال و برخی پارامترهای دیگر باشد، این اطلاعات هم باید در URL قرار بگیرید.

هر بار که کاربر به بخش خاصی از صفحه شما می‌رود، دولوپر باید این قطعه کد جاوا اسکریپت را فعال کند. این کد مشخص میکند که یک “virtualPageview” رخ داده است، و URL صفحه جدید https://www.mywebsite.com/something/?page#contact-us  است.

سپس شما باید از این dataLayer.push به عنوان یک تریگر در تگ بازدید صفحه ای که برای آنالیتیکس ۴ ساخته اید، استفاده و عنوان و مسیر صفحه (page) را به GA ارسال کنید.

برای دستیابی به این هدف، مراحل زیر را دنبال کنید:

  • دو متغیر ایجاد کنید و آن‌ها را در GA4 event tag قرار دهید
    • عنوان: dlv – pageUrl عبارت dlv  مخفف “Data Layer Variable” است.
    • نوع متغیر: Data Layer Variable
    • نام متغیر: pageUrl- این متغیر مقدار pageUrl را که توسط یک دولوپر به Data Layer انتقال داده شده است را دریافت میکند.
    • عنوانdlv – pageTitle
    • نوع متغیر: Data Layer Variable
    • نام متغیر: pageTitle
  • یک trigger ایجاد کنید و آن را به GA4 Event tag اختصاص دهید.
    • عنوان تریگر: Custom – virtualPageview
    • نوع: Custom Event
    • نام ایونت:  virtualPageview – این Trigger روی: All Custom Events شلیک می‌شود

یک GA4 event tag ایجاد کنید

به Tags > New > GA4 event tag بروید و تنظیمات زیر را وارد کنید.

این بار، دو پارامتر page_location و page_title را باید بازنویسی کنید. مقادیر این پارامترها همان وریبل های دیتالیری هستند که پیش از این ایجاد کردیم.

مهم: شما باید این کار را در تمامی GA4 event tag هایی که بعد از این میسازید هم انجام دهید.

آیا تگ نصب GA4 باید به طور خودکار اولین page_view را ردیابی کند؟

باید بررسی کنید که وقتی صفحه برنامه تک‌صفحه‌ای خود را بارگذاری یا مجدد لود می‌کنید، چه اتفاقی می افتد. آیا ایونت virtualPageview  در حالت پیش‌نمایش هر بار که صفحه را دوباره بارگذاری می‌کنید ظاهر می‌شود؟ اگر بله، پس شما باید چک‌باکس را در برچسب پیکربندی GA4 غیرفعال کنید.

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

بررسی نهایی

DebugView  را بررسی کنید.تمام تغییرات کانتینر گوگل تگ منیجر خود را ذخیره کنید و حالت پیش‌نمایش را با کلیک بر روی دکمه Preview در کانتینر GTM  خود فعال کنید. سپس به GA4 DebugView بروید (در Admin > DebugView).

وقتی صفحه را لود می‌کنید، باید یک ایونت page_view در DebugView ببینید. بررسی کنید که آیا پارامترهای page_location و page_title صحیح و متعلق به صفحه فعلی هستند که شما در حال مشاهده آن هستید یا نه.

سپس شروع به مرور وب‌سایت یا وب‌اپ خود کنید و بررسی کنید که آیا تعداد page_views و پارامترهای آن‌ها که در debug_view می‌بینید صحیح است یا نه.

طی ۲۴ ساعت آینده، داده‌های pageview خود در Reports > Engagement > Pages and Screens reports of GA4 قابل مشاهده خواهند بود.

دیدگاهتان را بنویسید

دریافت مشاوره و آموزش

برای دریافت مشاوره نصب و راه اندازی آنالیتیکس 4 و ایونت ترکینگ از طریق گوگل تگ منیجر، از طریق شماره تماس زیر با من در ارتباط باشید.