إخفاء هوية IP في "إحصاءات Google"

شرح تقني لكيفية إخفاء "إحصاءات Google" لهوية عناوين بروتوكول الإنترنت (IP)

نظرة سريعة

عندما يطلب أحد عملاء "إحصاءات Google" إخفاء هوية عنوان بروتوكول الإنترنت (IP)، تُحدِّد "إحصاءات Google" هوية العنوان في أقرب وقت ممكن من الناحية التقنية في أولى مراحل شبكة جمع البيانات. وتضبط ميزة إخفاء هوية عناوين بروتوكول الإنترنت (IP) في "إحصاءات Google" آخر وحدة ثمانيّة البت من عناوين IP لمستخدم IPv4 وآخر 80 بت من عناوين IPv6 على قيم صفرية في الذاكرة بعد وقت قصير من إرسالها إلى شبكة جمع البيانات في "إحصاءات Google". ولا يتم مطلقًا كتابة عنوان IP بالكامل على القرص في هذه الحالة.

عند إنشاء موقع، تتوفّر لك ثلاثة خيارات، وبالنسبة إلى كل اختيار، يتم تنفيذ إخفاء هوية عناوين IP على النحو التالي:

المعلومات التفصيلية

منذ يوم 25 أيار (مايو) 2010، وفّر منتج "إحصاءات Google" ميزة ‎_anonymizelp في مكتبة جافا سكريبت ga.js (ومؤخرًا ga('set', 'anonymizeIp', true)‎ في مكتبة analytics.js) للسماح لمالكي المواقع الإلكترونية بطلب أن تكون جميع عناوين IP لمستخدميهم مجهولة الهوية في هذا المنتج. وقد تم تصميم هذه الميزة لمساعدة مالكي المواقع الإلكترونية على الالتزام بسياسات الخصوصية المتّبعة لديهم، أو الالتزام بتوصيات هيئات حماية البيانات المحلية في بعض البلدان، والتي قد تحول دون تخزين معلومات عناوين بروتوكول الإنترنت (IP) بالكامل. وتتم عملية إخفاء الهوية/إخفاء عناوين IP فور تلقّي البيانات من خلال شبكة جمع البيانات في "إحصاءات Google"، قبل إجراء أي تخزين أو معالجة.

تحدث عملية إخفاء هوية بروتوكول الإنترنت (IP) ضمن "إحصاءات Google" في خطوتين في مسار جمع البيانات: علامة جافا سكريبت وشبكة جمع البيانات. ويتم شرح هذه الخطوات في ما يلي.

علامة جافا سكريبت في "إحصاءات Google"

عندما يُحمِّل متصفح ويب مُفعَّل بجافا سكريبت صفحةً مزوّدةً بعلامة "إحصاءات Google" ‏(ga.js أو analytics.js)، يحدث أمران بشكلٍ غير متزامن: تحميل ومعالجة قائمة انتظار وظائف "إحصاءات Google" وطلب جافا سكريبت في "إحصاءات Google". وقائمة انتظار الوظائف هي مجموعة رموز جافا سكريبت؛ حيث يتم دفع وظائف الضبط وجمع البيانات المختلفة في "إحصاءات Google". ويمكن أن تشتمل هذه الوظائف، التي يتم تحديدها من قِبل مالك الموقع الإلكتروني عند تنفيذ "إحصاءات Google"، على وظائف مثل تحديد رقم حساب "إحصاءات Google"، وإرسال بيانات مشاهدة الصفحة فعليًا إلى شبكة جمع البيانات في "إحصاءات Google" لإجراء المعالجة.

عندما يعمل رمز جافا سكريبت في "إحصاءات Google" على تشغيل وظيفة من قائمة انتظار الوظائف التي تشغِّل البيانات المراد إرسالها إلى شبكة جمع البيانات في "إحصاءات Google" (عادةً ما تكون هذه الوظيفة ga('send', 'pageview')‎ في مكتبة جافا سكريبت analytics.js و‎_trackPageview في مكتبة ga.js)، يُرسل البيانات كمعلّمات عناوين URL مرفقةً بطلب HTTP للرابط http://www.google-analytics.com/_utm.gif (بالنسبة إلى ga.js) والرابط http://www.google-analytics.com/collect (بالنسبة إلى analytics.js). وإذا تم استدعاء وظيفة إخفاء الهوية قبل وظيفة تتبّع الصفحة، تتم عندئذٍ إضافة معلّمة أخرى إلى طلب وحدة البكسل. وتظهر معلّمة إخفاء هوية عناوين IP بهذا الشكل: ‎&aip=1

شبكة جمع البيانات في "إحصاءات Google"

تمثّل شبكة جمع البيانات في "إحصاءات Google" مجموعة من الخوادم التي تقدّم خدمتين رئيسيتين: توفير ga.js وanalytics.js (جافا سكريبت "إحصاءات Google") وجمع البيانات التي يتم إرسالها من خلال طلبات الحصول على ‎_utm.gif و‎/collect.

عند تلقّي طلب الحصول على ga.js أو analytics.js أو ‎_utm.gif أو ‎/collect، يتضمّن معلومات إضافية في رأس طلب HTTP (أي نوع المتصفح المُستخدَم) ورأس بروتوكول TCP/IP (أي عنوان بروتوكول الإنترنت (IP) للطالب).

فور تلقّي طلب الحصول على ‎_utm.gif، يتم الاحتفاظ به في الذاكرة لإخفاء هويته. وإذا تم العثور على المعلمة ‎&aip=1 في عنوان URL للطلب (حيث قد يتم وضعه من خلال جافا سكريبت "إحصاءات Google" بعد معالجة وظيفة إخفاء الهوية في ga.js أو analytics.js)، يتم عندئذٍ ضبط آخر وحدة ثمانيّة البت لعنوان IP للمستخدم على قيمة صفرية مع الاستمرار في تخزينها بالذاكرة. فمثلاً، يمكن تغيير عنوان IP المتمثل في 12.214.31.144 إلى 12.214.31.0. (إذا كان عنوان بروتوكول الإنترنت (IP) هو عنوان IPv6، فسيتم تعيين الـ 80 بت الأخيرة من 128 بت على صفر). لا يتم إرسال الطلب الخطي إلى القرص للمعالجة إلا بعد إنهاء عملية إخفاء الهوية. وفي حال استخدام طريقة إخفاء هوية IP، تتم فورًا كتابة عنوان بروتوكول الإنترنت (IP) بالكامل على القرص كما يحدث في كل عمليات إخفاء الهوية في الذاكرة بعد تلقّي الطلب على الفور تقريبًا.

هل كان ذلك مفيدًا؟
كيف يمكننا تحسينها؟