برای اینکه گوگل آنالیتیکس تشخیص دهد که دو بازدید مجزا به یک کاربر تعلق دارند، باید یک شناسه منحصر به فرد مرتبط با آن کاربر خاص، با هر ضربه ارسال شود.
کتابخانه analytics.js این کار را از طریق فیلد Client ID انجام میدهد، رشتهای منحصربهفرد و بهطور تصادفی که در کوکیهای مرورگرها ذخیره میشود، بنابراین بازدیدهای بعدی از همان سایت را میتوان با همان کاربر مرتبط کرد.
به طور پیشفرض، analytics.js از یک کوکی شخص اول به نام _ga
برای ذخیره شناسه مشتری استفاده میکند، اما نام، دامنه و زمان انقضای کوکی را میتوان سفارشی کرد. سایر کوکیهای ایجاد شده توسط analytics.js عبارتند از _gid
، AMP_TOKEN
و _gac_<property-id>
. این کوکیها سایر شناسهها و اطلاعات کمپین را که بهطور تصادفی تولید شدهاند در مورد کاربر ذخیره میکنند.
استفاده از کوکیها به analytics.js اجازه میدهد تا کاربران منحصربهفرد را در طول جلسات مرور شناسایی کند، اما نمیتواند کاربران منحصربهفرد را در مرورگرها یا دستگاههای مختلف شناسایی کند. اگر سایت شما سیستم احراز هویت خاص خود را دارد، میتوانید از ویژگی User ID ، علاوه بر شناسه مشتری، برای شناسایی دقیقتر کاربر در تمام دستگاههایی که برای دسترسی به سایت شما استفاده میکنند، استفاده کنید.
این راهنما نحوه سفارشی کردن تنظیمات کوکی و همچنین نحوه تنظیم فیلد شناسه کاربری برای اندازهگیری دقیقتر فعالیت کاربر در جلسات را توضیح میدهد.
پیکربندی تنظیمات فیلد کوکی
جدول زیر مقادیر فیلد کوکی پیش فرض استفاده شده توسط analytics.js را نشان می دهد:
نام زمینه | نوع ارزش | مقدار پیش فرض |
---|---|---|
cookieName | متن | _ga |
cookieDomain | متن | نتیجه عبارت جاوا اسکریپت زیر:document.location.hostname |
cookieExpires | عدد صحیح | 63072000 (دو سال، در ثانیه) |
cookieUpdate | بولی | true |
cookieFlags | متن |
|
برای تغییر هر یک از این مقادیر، میتوانید آنها را در fieldObject
که دستور create
ارسال میکنید، مشخص کنید. مثلا:
ga('create', 'UA-XXXXX-Y', {
'cookieName': 'gaCookie',
'cookieDomain': 'blog.example.co.uk',
'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds.
'cookieUpdate': 'false',
'cookieFlags': 'SameSite=None; Secure',
});
رایج ترین فیلد کوکی برای تنظیم، cookieDomain
است، به این ترتیب، دستور create
فیلد cookieDomain
را به عنوان پارامتر سوم اختیاری برای راحتی می پذیرد:
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
پیکربندی خودکار دامنه کوکی
تگ توصیه شده Google Analytics رشته 'auto'
را برای قسمت cookieDomain
تنظیم می کند:
ga('create', 'UA-XXXXX-Y', 'auto');
تعیین 'auto'
بهعنوان cookieDomain
پیکربندی خودکار دامنه کوکی را فعال میکند، که به analytics.js میگوید بهطور خودکار بهترین دامنه کوکی مورد استفاده را تعیین کند.
پیکربندی خودکار دامنه کوکی، کوکی _ga
را در بالاترین سطح دامنه ای که می تواند تنظیم می کند. برای مثال، اگر آدرس وبسایت شما blog.example.co.uk
باشد، analytics.js دامنه کوکی را روی .example.co.uk
تنظیم میکند. علاوه بر این، اگر analytics.js تشخیص دهد که شما یک سرور را به صورت محلی اجرا می کنید (مثلاً localhost
)، به طور خودکار cookieDomain
را روی 'none'
تنظیم می کند.
انقضای کوکی
هر بار که ضربه ای به Google Analytics ارسال می شود، زمان انقضای کوکی به روز می شود تا زمان فعلی به اضافه مقدار فیلد cookieExpires
شود. این به این معنی است که اگر از زمان پیشفرض cookieExpires
دو ساله استفاده کنید و کاربر هر ماه از سایت شما بازدید کند، کوکی او هرگز منقضی نمیشود.
اگر cookieExpires
را روی 0
(صفر) ثانیه تنظیم کنید، کوکی به یک کوکی مبتنی بر جلسه تبدیل میشود و پس از پایان جلسه مرورگر فعلی منقضی میشود:
به روز رسانی کوکی
وقتی cookieUpdate
روی true
(مقدار پیشفرض) تنظیم میشود، analytics.js کوکیها را در هر بار بارگذاری صفحه بهروزرسانی میکند. با این کار انقضای کوکی برای تنظیم نسبت به آخرین بازدید از سایت به روز می شود. به عنوان مثال، اگر انقضای کوکی روی یک هفته تنظیم شده باشد، و کاربر هر پنج روز یکبار با استفاده از مرورگر یکسان بازدید کند، انقضای کوکی در هر بازدید بهروزرسانی میشود و عملاً هرگز منقضی نمیشود.
وقتی روی false
تنظیم شود، کوکی ها در هر بار بارگذاری صفحه به روز نمی شوند. این تأثیر منقضی شدن کوکی ها نسبت به اولین باری است که کاربر از سایت بازدید می کند.
پرچم های کوکی
هنگام تنظیم، پرچم های اضافی را به کوکی اضافه می کند. پرچم ها باید با نقطه ویرگول از هم جدا شوند.
دریافت شناسه مشتری از کوکی
شما نباید مستقیماً به مجموعههای کوکی analytics.js دسترسی داشته باشید، زیرا ممکن است قالب کوکی در آینده تغییر کند. در عوض، توسعهدهندگان باید از readyCallback
استفاده کنند تا صبر کنند تا analytics.js بارگیری شود و سپس مقدار clientId
ذخیره شده در ردیاب را دریافت کنند.
ga(function(tracker) { var clientId = tracker.get('clientId'); });
غیرفعال کردن کوکی ها
در برخی موارد ممکن است بخواهید از مکانیسم ذخیره سازی خود (مانند localStorage
یا Service Worker ) برای حفظ شناسه مشتری در تمام جلسات بدون استفاده از کوکی ها استفاده کنید. میتوانید با تنظیم فیلد storage
روی 'none'
analytics.js را از تنظیم کوکیها غیرفعال کنید.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
اگر خودتان فیلد clientId
را ذخیره می کنید، باید هنگام ایجاد ردیاب مطمئن شوید که فیلد cliendId
را تنظیم کرده اید.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
برای غیرفعال کردن کوکی های _gac_<property-id>
، فیلد storeGac
را در دستور create
روی false
قرار دهید:
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
استفاده از localStorage برای ذخیره شناسه مشتری
نمونه کد زیر نشان می دهد که چگونه می توانید تگ جاوا اسکریپت را برای استفاده از localStorage
برای ذخیره شناسه مشتری به جای کوکی ها تغییر دهید:
var GA_LOCAL_STORAGE_KEY = 'ga:clientId';
if (window.localStorage) {
ga('create', 'UA-XXXXX-Y', {
'storage': 'none',
'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
});
ga(function(tracker) {
localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
});
}
else {
ga('create', 'UA-XXXXX-Y', 'auto');
}
ga('send', 'pageview');
شناسه کاربر
شناسه کاربری تجزیه و تحلیل گروههای جلسات را در سراسر دستگاهها با استفاده از یک رشته شناسه منحصربهفرد، دائمی و غیرشخصی که یک کاربر را نشان میدهد، امکانپذیر میکند. برای اطلاع از اینکه چرا باید User ID را پیاده سازی کنید، به مزایای استفاده از ویژگی User ID مراجعه کنید.
برای پیاده سازی User ID با analytics.js:
- شناسه رشته منحصر به فرد، دائمی و غیرشخصی خود را برای نمایش هر کاربر وارد شده ارائه دهید. این شناسه اغلب توسط یک سیستم احراز هویت ارائه می شود.
- شناسه کاربری را روی ردیاب تنظیم کنید:
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
مدیریت احراز هویت پس از بارگیری صفحه
هنگام ساخت برنامه های کاربردی صفحه تک یا سایر وب سایت های پویا که ورود کاربر را پس از بارگیری اولیه صفحه مدیریت می کنند، فرآیند تنظیم مقدار شناسه کاربر در ردیاب نمی تواند در زمان ایجاد اتفاق بیفتد.
در چنین مواردی، میتوانید از دستور set
برای تنظیم مقدار روی ردیاب به محض مشخص شدن استفاده کنید.
// Creates the tracker and sends a pageview as normal // since the `userId` value is not yet known. ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); // At a later time, once the `userId` value is known, // sets the value on the tracker. ga('set', 'userId', USER_ID); // Setting the userId doesn't send data to Google Analytics. // You must also use a pageview or event to send the data. ga('send', 'event', 'authentication', 'user-id available');
هنگام استفاده از این رویکرد، بازدیدهایی که قبل از تنظیم فیلد userId
ارسال میشوند، حاوی مقادیر شناسه کاربر نیستند. با این حال، از طریق فرآیندی به نام Unification Session ، Google Analytics قادر است این بازدیدها را با کاربر صحیح در زمان پردازش مرتبط کند.