על מנת ש-Google Analytics יוכל לקבוע ששתי התאמות ייחודיות שייכות לאותו משתמש, יש לשלוח מזהה ייחודי המשויך לאותו משתמש מסוים עם כל התאמה.
ספריית analytics.js עושה זאת באמצעות השדה Client ID – מחרוזת ייחודית שנוצרת באופן אקראי, שנשמרת בקובצי ה-cookie של הדפדפן, כך שניתן לשייך ביקורים עתידיים באותו אתר לאותו משתמש.
כברירת מחדל, ב-analytics.js נעשה שימוש בקובץ cookie יחיד מהדומיין הנוכחי בשם _ga
כדי לאחסן את מזהה הלקוח, אבל ניתן להתאים אישית את השם, הדומיין ושעת התפוגה של קובץ ה-cookie. קובצי cookie אחרים שנוצרו על ידי analytics.js כוללים את _gid
, AMP_TOKEN
ואת _gac_<property-id>
. קובצי ה-cookie האלה מאחסנים מזהים ופרטי קמפיין אחרים שנוצרים באופן אקראי לגבי המשתמש.
השימוש בקובצי cookie מאפשר ל-analytics.js לזהות משתמשים ייחודיים בהפעלות גלישה שונות, אבל הוא לא יכול לזהות משתמשים ייחודיים בדפדפנים או במכשירים שונים. אם לאתר שלכם יש מערכת אימות משלו, אפשר להשתמש בתכונה User ID, בנוסף ל-Client-ID, כדי לזהות משתמש בצורה מדויקת יותר בכל המכשירים שבהם הוא משתמש כדי לגשת לאתר.
במדריך הזה מוסבר איך להתאים אישית את הגדרות קובצי ה-cookie ואיך להגדיר את השדה User-ID כדי למדוד בצורה מדויקת יותר את פעילות המשתמש בסשנים שונים.
קביעת הגדרות של שדות קובצי Cookie
בטבלה הבאה מוצגים ערכי ברירת המחדל של השדות של קובצי ה-cookie שמשמשים את analytics.js:
שם השדה | סוג הערך | ערך ברירת המחדל |
---|---|---|
cookieName |
טקסט | _ga |
cookieDomain |
טקסט |
התוצאה של ביטוי ה-JavaScript הבא:document.location.hostname
|
cookieExpires |
מספר שלם | 63072000 (שנתיים, בשניות) |
cookieUpdate |
boolean |
true
|
cookieFlags |
טקסט |
|
כדי לשנות ערכים כאלה, אפשר לציין אותם ב-fieldObject
שמעבירים את הפקודה create
. לדוגמה:
ga('create', 'UA-XXXXX-Y', {
'cookieName': 'gaCookie',
'cookieDomain': 'blog.example.co.uk',
'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds.
'cookieUpdate': 'false',
'cookieFlags': 'SameSite=None; Secure',
});
שדה קובצי ה-cookie הנפוץ ביותר להגדרה הוא cookieDomain
, ולכן הפקודה create
מקבלת את השדה cookieDomain
כפרמטר שלישי אופציונלי מבחינת נוחות:
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
תצורה אוטומטית של דומיין קובצי ה-cookie
התג המומלץ של Google Analytics מגדיר את המחרוזת 'auto'
בשדה cookieDomain
:
ga('create', 'UA-XXXXX-Y', 'auto');
ציון של 'auto'
בתור cookieDomain
מאפשר הגדרה אוטומטית של דומיין קובצי ה-cookie, וכך מורה ל-analytics.js לקבוע באופן אוטומטי את דומיין קובצי ה-cookie שבו יש להשתמש.
הגדרה אוטומטית של דומיין קובצי ה-cookie מגדירה את קובץ ה-cookie של _ga
בדומיין ברמה הגבוהה ביותר שאפשר. לדוגמה, אם כתובת האתר היא blog.example.co.uk
, analytics.js יגדיר את הדומיין של קובצי ה-cookie ל-.example.co.uk
. בנוסף, אם analytics.js מזהה שהפעלת שרת באופן מקומי (למשל localhost
), הוא מגדיר באופן אוטומטי את cookieDomain
לערך 'none'
.
תפוגה של קובץ cookie
בכל פעם שהיט נשלח אל Google Analytics, זמן התפוגה של קובץ ה-cookie מתעדכן לזמן הנוכחי וגם לערך בשדה cookieExpires
. כלומר, אם משתמשים בתאריך ברירת המחדל של cookieExpires
של שנתיים, ומשתמש מבקר באתר בכל חודש, התוקף של קובץ ה-cookie שלו לא יפוג אף פעם.
במקרה שמגדירים את הזמן של cookieExpires
ל-0
(אפס) שניות, קובץ ה-cookie הופך לקובץ cookie שמבוסס על סשן, והתוקף שלו פג כשהסשן הנוכחי בדפדפן מסתיים:
עדכון קובצי cookie
כאשר cookieUpdate
מוגדר ל-true
(ערך ברירת המחדל), קובץ analytics.js יעדכן את קובצי ה-cookie בכל טעינת דף. הפעולה הזו תעדכן את תאריך התפוגה של קובצי ה-cookie כך שיוגדר ביחס לביקור האחרון באתר. לדוגמה, אם התוקף של קובץ ה-cookie מוגדר לשבוע אחד, ומשתמש מבקר באתר באמצעות אותו דפדפן פעם בחמישה ימים, תאריך התפוגה של קובץ ה-cookie יתעדכן בכל ביקור, כך שהתוקף שלו לא יפוג אף פעם.
כשמגדירים את הערך false
, קובצי ה-cookie לא מתעדכנים בכל טעינת דף. במצב כזה, תאריך התפוגה של קובצי ה-cookie הוא יחסי לביקור הראשון של משתמש כלשהו באתר.
דגלים של קובצי Cookie
מצרף סימונים נוספים לקובץ ה-cookie לאחר הגדרתו. הדגלים צריכים להיות מופרדים באמצעות סמיקולים.
קבלת מזהה הלקוח מקובץ ה-cookie
אל תיגש ישירות לקבוצות analytics.js של קובצי cookie, מכיוון שפורמט קובצי ה-cookie עשוי להשתנות בעתיד. במקום זאת, מפתחים צריכים להשתמש ב-readyCallback
כדי להמתין עד ש-analytics.js ייטען, ואז לשמור את הערך clientId
שמאוחסן במכשיר המעקב.
ga(function(tracker) { var clientId = tracker.get('clientId'); });
השבתת קובצי cookie
במקרים מסוימים, כדאי להשתמש במנגנון אחסון משלכם (כמו localStorage
או Service Worker) כדי לשמור את ה-Client-ID בסשנים שונים בלי להשתמש בקובצי cookie. אפשר להשבית את האפשרות analytics.js להגדיר קובצי cookie על ידי הגדרת השדה storage
ל-'none'
.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
אם אתם מאחסנים את השדה clientId
בעצמכם, תצטרכו לוודא שהגדרתם את השדה cliendId
כשיוצרים את מכשיר המעקב.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
כדי להשבית את קובצי ה-Cookie של _gac_<property-id>
, מגדירים את השדה storeGac
לערך false
בפקודה create
:
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
שימוש ב-localStorage כדי לאחסן את מזהה הלקוח
דוגמת הקוד הבאה מראה איך לשנות את תג JavaScript כך שישתמש ב-localStorage
לאחסון מזהה הלקוח במקום קובצי cookie:
var GA_LOCAL_STORAGE_KEY = 'ga:clientId';
if (window.localStorage) {
ga('create', 'UA-XXXXX-Y', {
'storage': 'none',
'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
});
ga(function(tracker) {
localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
});
}
else {
ga('create', 'UA-XXXXX-Y', 'auto');
}
ga('send', 'pageview');
מזהה המשתמש
התכונה User ID מאפשרת לנתח קבוצות של סשנים במכשירים שונים, באמצעות מחרוזת מזהה ייחודית, קבועה ובלי פרטים אישיים מזהים שמייצגת משתמש. במאמר יתרונות השימוש בתכונה User ID מוסבר למה כדאי להטמיע את User-ID.
כדי להטמיע את התכונה User ID באמצעות analytics.js:
- עליכם לספק מזהה מחרוזת ייחודי משלכם, קבוע וללא פרטים אישיים מזהים, כדי לייצג כל משתמש מחובר. בדרך כלל המזהה הזה מסופק על ידי מערכת אימות.
- מגדירים את ה-User ID במכשיר המעקב:
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
טיפול באימות לאחר טעינת דף
כשיוצרים אפליקציות בדף יחיד או אתרים דינמיים אחרים שמטפלים בכניסה של משתמשים אחרי הטעינה הראשונית של הדף, תהליך ההגדרה של ערך ה-User-ID בכלי המעקב לא יכול להתרחש בזמן היצירה.
במקרים כאלה, תוכלו להשתמש בפקודה set
כדי להגדיר את הערך במכשיר המעקב ברגע שהוא ידוע.
// Creates the tracker and sends a pageview as normal // since the `userId` value is not yet known. ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); // At a later time, once the `userId` value is known, // sets the value on the tracker. ga('set', 'userId', USER_ID); // Setting the userId doesn't send data to Google Analytics. // You must also use a pageview or event to send the data. ga('send', 'event', 'authentication', 'user-id available');
כשמשתמשים בגישה הזו, היטים שנשלחים לפני השדה userId
לא יכללו ערכי User ID. עם זאת, באמצעות תהליך שנקרא איחוד סשנים, מערכת Google Analytics יכולה לשייך את ההיטים האלה למשתמש הנכון בזמן העיבוד.