אנונימיזציה של כתובות IP ב-Analytics

הסבר טכני על האופן שבו מערכת Analytics מבצעת אנונימיזציה של כתובות IP

הסבר קצר

כשלקוח של Analytics מבקש לבצע אנונימיזציה של כתובת ‏IP‏, מערכת Analytics מבצעת אנונימיזציה של הכתובת בשלב מוקדם ככל האפשר ברשת האיסוף, במסגרת האילוצים הטכניים. מיד אחרי שהכתובות נשלחות לרשת האיסוף של Analytics‏, התכונה לאנונימיזציה של כתובות IP ב-Analytics מגדירה את 8 התווים האחרונים בכתובות IP מסוג IPv4 ואת 80 הביטים האחרונים בכתובות IP מסוג IPv6 כאפסים בזיכרון. במקרה כזה, כתובת ה-IP המלאה לעולם אינה נכתבת בדיסק.

כשאתם יוצרים נכס, עומדות בפניכם 3 אפשרויות לאנונימיזציה של כתובות IP:

הסבר מעמיק

ב-25 במאי 2010 הוספנו במערכת Analytics את האפשרות להשתמש בתכונה ‎_anonymizelp בספרייה ga.js JavaScript (ולאחרונה גם בתכונה ga('set', 'anonymizeIp', true)‎ בספרייה analytics.js library) כדי לאפשר לבעלי אתרים לבקש שכתובות ה-IP של כל המשתמשים שלהם יעברו אנונימיזציה בתוך המוצר. תכונה זו נועדה לעזור לבעלי אתרים לציית למדיניות הפרטיות שלהם, או, במדינות מסוימות, לציית להמלצות של רשויות מקומיות להגנה על מידע, שעשויות לאסור על אחסון של פרטי כתובת ה-IP המלאה. האנונימיזציה/התממת המידע של כתובות IP מתבצעת לפני שמתבצעים אחסון או עיבוד כלשהם, מיד אחרי שנתונים מתקבלים ברשת האיסוף של Analytics.

תהליך האנונימיזציה של כתובות IP ב-Analytics מתבצע בשני שלבים בצינור איסוף הנתונים: תג ה-JavaScript ורשת האיסוף. שלבים אלה מוסברים להלן.

תג JavaScript של Analytics

כשדפדפן אינטרנט המותאם ל-JavaScript טוען דף עם התג של Analytics ‏(ga.js או analytics.js), הוא מבצע באופן אסינכרוני שתי פעולות: טעינה ועיבוד של תור הפונקציות של Analytics ובקשת ה-JavaScript של Analytics. תור הפונקציות הוא מערך JavaScript שבו נאספות הפונקציות השונות של הגדרה ואיסוף ב-Analytics. פונקציות אלו, המוגדרות על ידי בעל האתר בעת הטמעת Analytics, יכולות לכלול פונקציות כמו ציון של מספר החשבון ב-Analytics וכן שליחה בפועל של נתוני צפייה בדף לרשת האיסוף של Analytics לצורך עיבוד.

כשתג ה-JavaScript של Analytics מריץ מתוך תור הפונקציות פונקציה שמפעילה שליחה של נתונים לרשת האיסוף של Analytics (בדרך כלל זו הפונקציה ga('send', 'pageview')‎ בספרייה analytics.js JavaScript ו-‎_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‏

רשת האיסוף של Analytics

רשת האיסוף של Analytics היא קבוצת השרתים שמספקים שני שירותים עיקריים: הצגת ga.js ו-analytics.js (ה-JavaScript של Analytics) ואיסוף נתונים הנשלחים דרך בקשות עבור ‎_utm.gif ו-‎/collect‎.

כשמגיעה בקשה ל-ga.js, ל-analytics.js, ל-‎_utm.gif או ל-‎/collect, היא כוללת מידע נוסף בכותרת של בקשת ה-HTTP (כלומר, סוג הדפדפן שבו נעשה שימוש) ובכותרת ה-TCP/IP (כלומר, כתובת ה-IP של המבקש).

מיד אחרי שמתקבלת בקשה ל-‎_utm.gif‎, היא נשמרת בזיכרון לצורך אנונימיזציה. אם הפרמטר ‏‎&aip=1‎‎‏‎‎‎‏ מופיע בכתובת ה-URL של הבקשה (כפי שהוצב על ידי ה-JavaScript של Analytics אחרי העיבוד של פונקציית האנונימיזציה ב-‏ga.js‎‎‏ או ב-‏analytics.js‎‎‏), 8 התווים האחרונים בכתובת ה-IP של המשתמש מוגדרים כאפס בזמן שהיא שמורה בזיכרון. לדוגמה, כתובת ה-‏IP‎‎‏ 12.214.31.144 תשתנה ל-12.214.31.0. (אם כתובת ה-IP היא מסוג ‏IPv6‏, 80 הבתים האחרונים מתוך 128 הבתים מוגדרים לאפס). רק לאחר שמסתיים תהליך ההפיכה של כתובת ה-IP לאנונימית, הבקשה נכתבת לדיסק לצורך עיבודה. אם משתמשים בשיטת האנונימיזציה של כתובות IP, כתובת ה-IP המלאה לעולם אינה נכתבת בדיסק, מפני שכל תהליך האנונימיזציה מתבצע בזיכרון כמעט מיד אחרי שהבקשה מתקבלת.

האם המידע הועיל?
איך נוכל לשפר את המאמר?