اگه با cross-domain tracking در آنالیتیکس یونیورسال آشنا باشی، احتمالاً می‌دونی که بیشتر پیکربندی‌ها یا در سطح کد (مثلاً توی gtag.js) انجام می‌شد یا در سطح تگ‌های GA توی GTM. به‌خاطر همین، خیلی از دیجیتال مارکترها و وب‌آنالیست‌ها نمی‌دونستن دقیقاً باید کجا چی کار کنن. خوشبختانه، توی Google Analytics 4 همه‌چیز خیلی ساده‌تر شده.

توی این راهنما، بهت نشون می‌دم چطور cross-domain tracking رو توی GA4 پیکربندی کنی. اول از مشکلی که این قابلیت حلش می‌کنه شروع می‌کنیم، بعد می‌ریم سراغ خود تنظیمات.

نمی‌خوای مقدمه بخونی؟ برو سراغ تنظیمات

اگه قبلاً با cross-domain tracking کار کردی و نیازی به مقدمه نداری، مستقیماً برو به بخشی که نحوه پیکربندی رو توی GA4 توضیح دادم.

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

مشکل داشتن چندتا دامنه

می‌خوام خیلی ساده اینو توضیح بدم. به‌صورت پیش‌فرض، GA4 کاربران رو با کوکی‌های first-party ردیابی می‌کنه. وقتی وارد یه سایت می‌شی، GA (به نمایندگی از سایت تو) یه کوکی به نام _ga رو توی مرورگر ذخیره می‌کنه (در واقع چند تا کوکی ذخیره می‌شه ولی فعلاً روی همین تمرکز کنیم) که شامل یه شناسه تصادفیه. حالا اگه از صفحه A بری به صفحه B (توی همون دامنه)، گوگل آنالیتیکس مقدار اون کوکی رو بررسی می‌کنه.

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

و این عالیه! با ابزارهای وب آنالیتیکس (نه فقط GA) می‌تونی بفهمی کاربرها چطور از سایتت استفاده می‌کنن، چی کار می‌کنن و ... البته کوکی‌ها یه تکنولوژی بی‌نقص نیستن و کلی ایراد دارن ولی فعلاً از این قضیه بگذریم.

حالا مشکل کجا پیش میاد؟

کوکی‌های first-party (که برای یه دامنه خاص ساخته شدن) نمی‌تونن بین دو دامنه مختلف به اشتراک گذاشته بشن (به‌خاطر سیاست‌های cross-domain). بنابراین، اگه کاربر اول وارد domainA.com بشه و بعد بره به domainB.com، گوگل آنالیتیکس توی domainB نمی‌تونه بفهمه که این همون کاربریه که از domainA اومده (حتی اگه هر دو دامنه به یه GA property وصل باشن).

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

نتیجه؟ گوگل آنالیتیکس (و بقیه ابزارهای آنالیز مبتنی بر کوکی) تو رو به‌عنوان دو کاربر جداگانه می‌بینه: یکی توی domainA و یکی توی domainB.

و این یه مشکل بزرگه. چون توی گزارش‌های GA تعداد کاربرات بیشتر از واقعیت نشون داده می‌شه. هر کسی که هم به domainA سر بزنه و هم به domainB، به‌عنوان دو یوزر شناخته می‌شه.

از طرف دیگه، وقتی کاربر جدید شناخته بشه، یه سشن جدید هم ساخته می‌شه. این یعنی توی گزارش‌های Acquisition، سورس ترافیک می‌تونه خود domainA باشه! این وضعیت رو بهش می‌گن Self-referral.

باید چی کار کرد؟ از Cross-domain tracking استفاده کن!

Cross-domain tracking در GA4 چیه؟

یه راه‌حل موقته که به وب‌مسترها/مارکترها/آنالیست‌ها اجازه می‌ده شناسه‌های یوزر/بازدیدکننده رو از دامنه A به دامنه B بفرستن و اطلاعات سشن رو حفظ کنن. به این ترتیب، کاربر به‌عنوان یه نفر ثابت بین چند سایت یا دامنه مختلف تزکسنگ می‌شه.

برای اینکه این کار جواب بده، هر دو سایت باید از یه دیتا استریم GA4 (یعنی همون Measurement ID یکسان) استفاده کنن.

Cross-domain tracking توی GA4 چطوری کار می‌کنه؟

اینم یه خلاصه از این فرآیند:

وقتی کاربر از domainA.com به domainB.com می‌ره، GA4 یه پارامتر خاص به URL دامنه B اضافه می‌کنه. با کمک اون پارامتر، آنالیتیکس توی domainB متوجه می‌شه که این همون کاربریه که از domainA اومده و لازم نیست سشن جدید بسازه.

آیا Google Analytics ساب‌دامنه‌ها رو ترکینگ می‌کنه؟

بله، و نیازی به Cross-domain tracking برای این مورد نیست. اگه بخوای سایت‌های مختلفی رو که زیرمجموعه یه دامنه هستن (مثلاً blog.example.com و www.example.com) ردیابی کنی، GA4 خودش این رو به‌صورت خودکار انجام می‌ده.

پس اگه گوگل کنی که «آیا ساب‌دامنه هم Cross-domain حساب می‌شه؟»، جواب اینه که توی این شرایط، نه.


چطور Cross-domain tracking رو توی GA4 پیکربندی کنیم؟

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

قبل از اینکه این کارو انجام بدی، یه نکته مهم رو یادت باشه:
هر دو سایتی که می‌خوای بین‌شون cross-domain tracking انجام بشه، باید از یه property مشترک توی GA4 استفاده کنن. یعنی همون Measurement ID باید یکی باشه.

کدی که برای GA4 استفاده می‌کنی می‌تونه مستقیماً داخل سایت ( کد gtag) یا از طریق GTM ست بشه. ولی مهم اینه که هر دو سایت به همون property وصل باشن.

مرحله اول:

وارد بخش Admin در GA4 بشو، بعد به قسمت Data Streams برو و دیتا استریم وب (web data stream) رو انتخاب کن.


مرحله دوم:

روی گزینه‌ی Configure tag settings کلیک کن.


مرحله سوم:

روی Configure your domains کلیک کن.


مرحله چهارم:

همه دامنه‌هایی که می‌خوای توی cross-domain tracking استفاده بشن رو وارد کن. بعدش Save رو بزن.


همین! دیگه نیازی نیست referral exclusion list رو تنظیم کنی. خود GA4 این رو به‌صورت خودکار هندل می‌کنه.
اما اگه به هر دلیلی هنوز دامنه‌هات به‌عنوان منبع ترافیک (referral) توی گزارش‌ها ظاهر شدن، می‌تونی unwanted referrals رو جداگانه تنظیم کنی.

نکته: این تنظیم روی قابلیت اتوماتیک outbound click tracking که توی Enhanced Measurement هست هم اثر می‌ذاره. یعنی دامنه‌هایی که اینجا وارد کردی، دیگه به‌عنوان outbound در نظر گرفته نمی‌شن.

تست ستاپ

بعد از اینکه تغییرات رو ذخیره کردی، یه دقیقه صبر کن، بعد برو به سایت اول (مثلاً domainA.com). توی اون سایت باید یه لینکی باشه که کاربر رو به domainB.com منتقل می‌کنه.

روی اون لینک کلیک کن. بعد از اینکه به دامنه دوم منتقل شدی، URL رو چک کن. باید یه پارامتر با اسم _gl= توی آدرس باشه و یه رشته کاراکترهای عجیب‌غریب پشتش باشه.


بعدش می‌تونی افزونه‌ی GA Debugger رو فعال کنی و وارد بخش DebugView در GA4 بشی. اونجا باید دستگاهت رو پیدا کنی. بعدش باید حداقل چند تا ایونت page_view ببینی.
توی بعضی از این ایونت‌ها، مقدار پارامتر page_location دامنه A هست، و توی بعضی دیگه دامنه B.
این یعنی Cross-domain tracking درست کار می‌کنه.

حواست به ریدایرکت‌ها باشه

اگه توی آدرس دامنه دوم پارامتر _gl دیده نمی‌شه، ممکنه یه جا وسط مسیر یه JavaScript redirect اتفاق افتاده باشه.

می‌تونی از افزونه‌ای به اسم Redirect Path استفاده کنی تا مشکل رو پیدا کنی.

افزونه رو نصب کن، برو به domainA.com و روی لینک به domainB.com کلیک کن. بعد روی آیکن افزونه کلیک کن و ببین آیا _gl توی آدرس بوده یا نه.


اگه اول این پارامتر بوده ولی بعدش حذف شده، با دولوپرها تماس بگیر و ازشون بخواه مشکل رو بررسی کنن.
هدف اینه که پارامتر _gl حفظ بشه و از بین نره.

حرف آخر

راه‌اندازی cross-domain tracking توی GA4 خیلی ساده‌ست، ولی یه‌سری محدودیت داره.

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