يصف هذا الدليل المهام، وهي ميزة متقدمة تُستخدم لتخصيص كيفية تحقق analytics.js من صحة طلبات بروتوكول القياس وإنشائها وإرسالها.
نظرة عامة
في كل مرة يتم فيها استدعاء الأمر send
، ينفِّذ analytics.js سلسلة من المهام للتحقّق من طلب بروتوكول القياس وإنشائه وإرساله من متصفّح المستخدم إلى "إحصاءات Google". ويوضّح الجدول التالي كل واحدة من هذه المهام بترتيب تنفيذها:
اسم المهمة | الوصف |
---|---|
customTask |
وبشكل تلقائي، لا تؤدي هذه المهمة إلى أي إجراء. ويمكنك تجاوزه لتقديم سلوك مخصّص. |
previewTask |
ويتم إلغاء الطلب إذا كان يتم عرض الصفحة فقط لإنشاء صورة مصغّرة 'أهم المواقع'؛ لمتصفح Safari. |
checkProtocolTask |
ويتم إلغاء الطلب في حال لم يكن بروتوكول الصفحة http
أو https . |
validationTask |
ويتم إلغاء الطلب في حال عدم إدخال الحقول المطلوبة أو عدم صلاحيتها. |
checkStorageTask |
ويتم إلغاء الطلب في حال إعداد أداة التتبّع لاستخدام ملفات تعريف الارتباط، ولكن تم إيقاف ملفات تعريف الارتباط في متصفّح المستخدم. |
historyImportTask |
لاستيراد المعلومات من ملفات تعريف الارتباط ga.js وurchin.js للحفاظ على سجلّ الزوّار عند نقل موقع إلكتروني إلى Universal Analytics. |
samplerTask |
أخذ عينات من الزوار استنادًا إلى
إعداد sampleRate
لأداة التتبّع هذه. |
buildHitTask |
تنشئ سلسلة طلب بروتوكول القياس وتخزّنها في الحقل hitPayload . |
sendHitTask |
تعمل هذه السياسة على نقل طلب بروتوكول القياس المُخزَّن في الحقل hitPayload إلى خوادم"إحصاءات Google". |
timingTask |
يتم إنشاء نتيجة لسرعة الموقع الإلكتروني تلقائيًا استنادًا إلى
إعداد siteSpeedSampleRate لأداة التتبّع هذه. |
displayFeaturesTask |
يتم إرسال نتيجة إضافية إذا تم تفعيل ميزات العرض ولم يتم إرسال نتيجة سابقة خلال فترة المهلة التي يحددها ملف تعريف ارتباط الميزات الإعلانية (_ga). |
يتم تنفيذ كل من هذه المهام كدالة JavaScript والتي تأخذ معلمة نموذج واحدة كإدخال. النموذج عبارة عن كائن بسيط يوفّر إمكانية الوصول إلى أي من الحقول المحدّدة في مرجع حقول Analytics.js.
يمكن الوصول إلى المهام أو استبدالها باستخدام أداة التتبُّع العادية get
وset
. باستخدام هذه الطرق، يمكنك استبدال المهام بالدوال المخصّصة الخاصة بك أو زيادة الوظائف الحالية من خلال ربط الدوال المخصّصة بتنفيذ مهمة قبل المهمة الحالية أو بعدها.
التنفيذ
ويوضّح هذا القسم كيفية إضافة وظائف جديدة إلى المهام الحالية، أو استبدال دوال المهام المضمّنة برمزك المخصّص، أو إيقاف وظيفة مهمة تمامًا.
إلغاء مهمة
لإلغاء مهمة، يمكنك set
قيمتها إلى دالة تنفّذ إجراءً مختلفًا. يتمثل أحد الأسباب الشائعة لإلغاء المهام في وظيفة stub عند اختبار عمليات تنفيذ مقتطف analytics.js.
يحل الرمز التالي محل sendHitTask
بوظيفة تسجِّل حمولة النتيجة إلى وحدة التحكُّم:
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'sendHitTask', function(model) {
console.log(model.get('hitPayload'));
});
الإضافة إلى مهمة
لإدراج وظيفة جديدة، يمكنك ربط وظيفة المهمة المخصّصة بتنفيذ مهمة قبل مهمة حالية أو بعدها. وفي المثال أدناه، يتم استبدال sendHitTask
بوظيفة مهمة مخصّصة تستدعي الدالة sendHitTask
الأصلية أولاً لإرسال إشارة الطلب العادية إلى google-analytics.com/collection، ثم تنفّذ رمزًا مخصّصًا لإرسال نسخة من طلب بروتوكول القياس إلى خادم محلي.
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
// Grab a reference to the default sendHitTask function.
var originalSendHitTask = tracker.get('sendHitTask');
// Modifies sendHitTask to send a copy of the request to a local server after
// sending the normal request to www.google-analytics.com/collect.
tracker.set('sendHitTask', function(model) {
originalSendHitTask(model);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/localhits', true);
xhr.send(model.get('hitPayload'));
});
});
ga('send', 'pageview');
إلغاء معالجة المهام
يمكن أن تؤدي المهمة إلى إلغاء معالجة المهام اللاحقة من خلال طرح استثناء. إذا تم تنفيذ المهمة التي تمنح الاستثناء قبل sendHitTask
، يكون لذلك تأثير منع إرسال طلب بروتوكول القياس إلى خوادم "إحصاءات Google". في المثال أدناه، نلغي الطلب عندما يحتوي متصفّح المستخدم على ملف تعريف ارتباط اسمه 'testing' مع القيمة 'true'.
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
var originalBuildHitTask = tracker.get('buildHitTask');
tracker.set('buildHitTask', function(model) {
if (document.cookie.match(/testing=true/)) {
throw 'Aborted tracking for test user.';
}
originalBuildHitTask(model);
});
});
ga('send', 'pageview');
إيقاف مهمة
لإيقاف أي من دوال المهام المضمّنة، عليك استبدالها بفارغ.
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'checkProtocolTask', null); // Disables file protocol checking.
ga('send', 'pageview');