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

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

وتُنفّذ مكتبة 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 Analytics ربط هذه النتائج بالمستخدم المناسب في وقت المعالجة.