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

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

הסבר קצר

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

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

הסבר מעמיק

ב-25 במאי 2010 הוספנו במערכת Analytics את האפשרות להשתמש בתכונה ‏‎_anonymizelp‏ בספריית ‏ga.js של JavaScript (ולאחרונה גם בתכונה ‏ga('set', 'anonymizeIp', true‏ בספריית analytics.js‏), כדי לאפשר לבעלי אתרים לבקש אנונימיזציה של כתובות ה-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 של Google Analytics) ואיסוף נתונים הנשלחים דרך בקשות עבור ‎_utm.gif and /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 המלאה לעולם אינה נכתבת בדיסק מפני שכל תהליך האנונימיזציה מתבצע בזיכרון באופן כמעט מיידי לאחר קבלת הבקשה.

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