يصف هذا الدليل كيفية قياس الأحداث على مستوى نطاقات متعددة باستخدام analytics.js.
نظرة عامة
تستخدم مكتبة analytics.js معرِّف عميل فريدًا لتحديد ما إذا كان المستخدم عميلاً جديدًا أم عميلاً متكررًا. يُعد المستخدم مكررًا للزيارة إذا تم إرسال نتيجة بمعرِّف عميل مطابق إلى الموقع نفسه.
يتم تخزين معرّف العميل تلقائيًا في ملفات تعريف الارتباط على المتصفّح، ما يعني أنّه لا يمكن الوصول إليه إلا من خلال الصفحات على النطاق نفسه. لتتبع معرِّف العميل نفسه لمستخدم معين على مستوى نطاقات مختلفة، استخدِم ميزة التتبُّع عبر النطاقات.
لمشاركة معرِّف عميل على مستوى النطاقات، يمكنك إلحاقه كمعلمة طلب بحث لعناوين URL التي تشير إلى النطاق الحالي (النطاق المصدر) إلى النطاق الوجهة الذي تريد قياسه. عندما ينقر أحد المستخدمين على رابط أو يرسل نموذجًا على النطاق المصدر وينتقل إلى النطاق الوجهة، يمكن للرمز في الصفحة المقصودة الوصول إلى معرِّف العميل من خلال قراءته من عنوان URL.
الحصول على معرِّف العميل على النطاق المصدر
لاسترداد معرِّف عميل على النطاق المصدر، يمكنك استخدام طريقة get
:
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
بعد حصولك على معرِّف العميل على النطاق المصدر، يمكنك إضافته إلى الروابط التي تشير إلى النطاق الوجهة.
<a href="https://destination.com/?clientId=XXXXXX">destination.com</a>
ضبط معرِّف العميل على نطاق الوجهة
يمكنك إعلام كائن أداة التتبّع على النطاق الوجهة بنوع معرّف العميل المطلوب استخدامه من خلال تحديد حقل معرّف العميل في الأمر create
:
ga('create', 'UA-XXXXX-Y', 'auto', {
'clientId': getClientIdFromUrl()
});
وفي حال توفُّر معرِّف عميل على نطاق الوجهة، ستستبدله هذه الطريقة.
رصد مشاركة عناوين URL
هناك مشكلة محتملة في تمرير معرِّف العميل في عنوان URL، وهي أن يكون المستخدمون قد شاركوا عناوين URL، ويمكن أن يشارك مستخدم عنوان URL يحتوي على معرِّف عميل ينتمي إلى شخص آخر.
لتجنّب هذه المشكلة، عليك إلحاق طابع زمني بمعرّف العميل. ويسمح لك ذلك برصد الوقت الذي تم فيه إنشاء عنوان URL في الأصل، وفي حال مرور وقت طويل جدًا، يمكنك اعتبار معرّف العميل غير صالح. بالإضافة إلى طابع زمني، يمكنك إلحاق سلسلة وكيل المستخدم أو بيانات وصفية أخرى خاصة بالمتصفح أو الجهاز. وبعد ذلك على نطاق الوجهة، إذا لم تتطابق البيانات الوصفية، ستعرف معرِّف العميل المنشأ من شخص آخر.
تجاهل الإحالات الذاتية
سيتم إنشاء حملة إحالة جديدة عندما تأتي مُحيل المستند لإحدى الصفحات من اسم مضيف لا يتطابق مع أي إدخال في القائمة استبعاد الإحالات لموقعك.
تشتمل قائمة استبعاد الإحالات تلقائيًا على النطاق الذي أدخلته فقط عند إنشاء الموقع. لمنع إنشاء حملات إحالة جديدة عندما ينتقل المستخدمون عبر النطاقات، يجب إضافة إدخال لكل نطاق ترغب في قياسه في قائمة "استبعاد الإحالة".
إطارات iframe
يتطلّب الأسلوب الموضّح أعلاه رمز JavaScript يتم تشغيله بعد تحميل مقتطف analytics.js. بما أنّ عناصر <iframe>
تتوفّر عادةً على الصفحة قبل تحميل analytics.js، لا يتم غالبًا إلحاق معرِّف العميل بعنوان URL في مَعلمة مصدر البيانات في إطار iframe.
لحل هذه المشكلة، يمكنك ضبط الصفحة داخل إطار iframe لتأخير إنشاء أداة التتبع حتى بعد تلقي بيانات معرِّف العميل من الصفحة الرئيسية. وفي الصفحة الرئيسية، يمكنك ضبطه لإرسال معرّف العميل إلى صفحة إطار iframe باستخدام postMessage.
في ما يلي مثال على رمز الصفحة الرئيسية على source.com
:
<iframe id="destination-frame" src="https://destination.com"></iframe>
<script>
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
// Gets the client ID of the default tracker.
var clientId = tracker.get('clientId');
// Gets a reference to the window object of the destionation iframe.
var frameWindow = document.getElementById('destination-frame').contentWindow;
// Sends the client ID to the window inside the destination frame.
frameWindow.postMessage(clientId, 'https://destination.com');
});
</script>
وهنا، الرمز الذي سيتلقى الرسالة في إطار iframe المستضاف على destination.com
:
window.addEventListener('message', function(event) {
// Ignores messages from untrusted domains.
if (event.origin != 'https://destination.com') return;
ga('create', 'UA-XXXXX-Y', 'auto', {
clientId: event.data
});
});
من المحتمل أن يتعذّر تحميل analytics.js على الصفحة الرئيسية، وبالتالي لن تحصل الصفحة في إطار iframe على معرِّف العميل مطلقًا. وتعتمد كيفية تعاملك مع هذه الحالة على مدى أهمية مطابقة معرِّفات العملاء.
إذا كنت تريد تسجيل البيانات فقط عندما تكون الأرقام التعريفية للعملاء متطابقة، يكفي الرمز أعلاه. إذا كنت تريد تسجيل بيانات في الصفحة ضمن الإطار بغض النظر عما إذا كانت تتلقى بيانات معرِّف العميل من الصفحة الرئيسية، يجب عليك إضافة عنصر احتياطي.
يستخدم الرمز التالي مهلة في الصفحة في إطار iframe للتعامل مع الحالة التي تكون فيها الصفحة الرئيسية بطيئة أو يتعذّر إرسال معرّف العميل:
// Stores whether or not the tracker has been created.
var trackerCreated = false;
function createTracker(opt_clientId) {
if (!trackerCreated) {
var fields = {};
if (opt_clientId) {
fields.clientId = opt_clientId;
}
ga('create', 'UA-XXXXX-Y', 'auto', fields);
trackerCreated = true;
}
}
window.addEventListener('message', function(event) {
// Ignores messages from untrusted domains.
if (event.origin != 'https://destination.com') return;
// Creates the tracker with the data from the parent page.
createTracker(event.data);
});
// Waits for three seconds to receive the client ID from the parent page.
// If that doesn't happen, it creates the tracker as normal.
setTimeout(createTracker, 3000);