ملفات تعريف الارتباط وتعريف المستخدم

لكي يحدّد "إحصاءات Google" أنّ نتيجتَين مختلفتَين تنتميان إلى المستخدِم نفسه، يجب إرسال معرّف فريد مرتبط بهذا المستخدِم بالتحديد مع كل نتيجة.

وتنفذ مكتبة analytics.js ذلك من خلال حقل معرّف العميل، وهو سلسلة فريدة يتم إنشاؤها عشوائيًا يتم تخزينها في ملفات تعريف ارتباط المتصفح، بحيث يمكن ربط الزيارات اللاحقة إلى الموقع نفسه بالمستخدم نفسه.

تستخدم analytics.js تلقائيًا ملف تعريف ارتباط واحدًا للطرف الأول يُسمى _ga لتخزين معرّف العميل، ولكن يمكن تخصيص اسم ملف تعريف الارتباط ونطاقه ووقت انتهاء صلاحيته. وتشمل ملفات تعريف الارتباط الأخرى التي تم إنشاؤها من خلال analytics.js _gid وAMP_TOKEN و_gac_<property-id>. وتخزِّن ملفات تعريف الارتباط هذه معرّفات أخرى تم إنشاؤها عشوائيًا ومعلومات حملات حول المستخدم.

يسمح استخدام ملفات تعريف الارتباط لشفرة analytics.js بتحديد المستخدمين الفريدين عبر جلسات التصفح، ولكن لا يمكنه تحديد المستخدمين الفريدين عبر المتصفحات أو الأجهزة المختلفة. إذا كان موقعك الإلكتروني يتضمّن نظام مصادقة خاصًا به، يمكنك استخدام ميزة User ID، بالإضافة إلى Client ID، لتحديد المستخدم بدقة أكبر على جميع الأجهزة التي يستخدمها للوصول إلى موقعك الإلكتروني.

يوضّح هذا الدليل كيفية تخصيص إعدادات ملفات تعريف الارتباط بالإضافة إلى كيفية ضبط حقل رقم تعريف المستخدم لقياس نشاط المستخدم بدقة أكبر في جميع الجلسات.

يعرض الجدول التالي القيم التلقائية لحقول ملفات تعريف الارتباط التي تستخدمها analytics.js:

اسم الحقل نوع القيمة القيمة التلقائية
cookieName text _ga
cookieDomain text نتيجة تعبير JavaScript التالي:
document.location.hostname
cookieExpires عدد صحيح 63072000 (عامان بالثواني)
cookieUpdate boolean true
cookieFlags text

لتعديل أي من هذه القيم، يمكنك تحديدها في 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" المقترَحة السلسلة '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"، يتمّ تحديث وقت انتهاء صلاحية ملفّ تعريف الارتباط ليكون الوقت الحالي بالإضافة إلى قيمة الحقل cookieExpires. وهذا يعني أنّه إذا استخدَمت مدة cookieExpires التلقائية التي تبلغ سنتَين، وكان أحد المستخدمين يزور موقعك الإلكتروني كل شهر، لن تنتهي صلاحية ملف تعريف الارتباط لديه أبدًا.

إذا ضبطت مدة cookieExpires على 0 (صفر) ثوانٍ، سيتحول ملف تعريف الارتباط إلى ملف تعريف ارتباط مستند إلى جلسة وتنتهي صلاحيته بعد انتهاء جلسة المتصفّح الحالية:

عند ضبط cookieUpdate على true (القيمة التلقائية)، ستعمل analytics.js على تحديث ملفات تعريف الارتباط عند كل تحميل للصفحة. سيؤدّي هذا إلى تحديث تاريخ انتهاء صلاحية ملفّ تعريف الارتباط الذي سيتمّ إعداده مقارنةً بآخر زيارة إلى الموقع. على سبيل المثال، إذا تم ضبط تاريخ انتهاء صلاحية ملفات تعريف الارتباط على أسبوع واحد، وكان أحد المستخدمين يزور الموقع نفسه كل خمسة أيام، سيتم تعديل مدة انتهاء صلاحية ملفات تعريف الارتباط في كل زيارة، وبالتالي لن تنتهي صلاحيتها أبدًا.

وعند ضبطها على false، لا يتم تعديل ملفات تعريف الارتباط عند كل تحميل للصفحة. ويحدث هذا بسبب انتهاء صلاحية ملفات تعريف الارتباط بالنسبة إلى أوّل مرّة زار فيها المستخدم الموقع.

تُستخدَم لإلحاق علامات إضافية بملفّ تعريف الارتباط عند إعداده. يجب فصل العلامات باستخدام الأشكال الجزئية.

يجب عدم الوصول مباشرةً إلى مجموعات analytics.js لملفات تعريف الارتباط، لأنّ تنسيقها قد يتغيّر في المستقبل. بدلاً من ذلك، على المطوّرين استخدام readyCallback للانتظار إلى أن يتم تحميل analytics.js، ثم الحصول على قيمة clientId المخزَّنة في أداة التتبُّع.

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

إيقاف ملفات تعريف الارتباط

في بعض الحالات، قد تحتاج إلى استخدام آلية التخزين الخاصة بك (مثل localStorage أو مشغّل الخدمات) للحفاظ على معرّف العميل في جميع الجلسات بدون استخدام ملفات تعريف الارتباط. يمكنك إيقاف مقتطف analytics.js من ضبط ملفات تعريف الارتباط عن طريق ضبط الحقل storage على 'none'.

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 على false في الأمر create:

ga('create', 'UA-XXXXX-Y', {
  storeGac: false,
});

استخدام LocalStorage لتخزين معرّف العميل

يوضّح نموذج الرمز البرمجي التالي كيفية تعديل علامة JavaScript لاستخدام 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.

لتنفيذ User ID باستخدام analytics.js:

  1. تقديم رقم تعريف فريد وثابت وغير محدِّد للهوية الشخصية لتمثيل كل مستخدم سجّل دخوله. غالبًا ما يتم توفير هذا المعرّف من خلال أحد أنظمة المصادقة.
  2. ضبط رقم تعريف المستخدم على جهاز التتبُّع:
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 على قيم رقم تعريف المستخدم. ومع ذلك، من خلال عملية تُعرف باسم توحيد الجلسة، يمكن لخدمة "إحصاءات Google" ربط هذه النتائج بالمستخدم الصحيح في وقت المعالجة.