בסדרת הפוסטים הקרובים אני רוצה לתת לכם הסבר מלא על מעקב cross-domains בגוגל אנליטיקס.
מכיוון שהגרסא הישנה של אנליטיקס, classic analytics, עומדת להיעלם מן העולם ממש בחודשים הקרובים, המדריך יכתב עם הסברים על הגרסא החדשה בלבד – Universal Analytics.
הערה חשובה: המדריך לא נועד (רק) להסביר איך להתקין מעקב קרוס דומיין בגוגל אנליטיקס, כי מדריכים כאלו תוכלו למצוא בלי סוף ברחבי הרשת. המטרה שלי היא לרדת לעומקם של דברים ולהסביר לכם בצורה טכנית איך כל העסק הזה בכלל עובד, כדי שתבינו גם את ההגיון מאחורי הדברים.
חלק ראשון- עולם הקוקיז, ואיפה בדיוק הבעיה
גוגל אנליטיקס, ובכלל האינטרנט, מבוססים הרבה מאוד על קוקיז.
קוקי הוא קובץ טקסט שנועד לשמור מידע על גולשים, כאשר המידע יכול להיות כל דבר בעצם, והוא נשמר בתוך קובץ טקסט במחשב של הגולש ברגע שהאתר בו הגולש מבקר כרגע החליט לשמור עליו מידע כלשהוא.
קיימים שני סוגים של עוגיות – first party ו-third party.
הראשון, first party, מכיל מידע שנגיש אך ורק לדומיין שיצר את העוגייה הזו. העוגייה של גוגל אנליטיקס למשל היא מסוג first party, וזה אומר שרק הדומיין שממנו נורה הסקריפט של האנליטיקס יוכל לגשת אליה. זה אומר שאם הטמעתי באתר קוד אנליטיקס, ויש אתר אחר שמנסה לגשת למידע שנמצא בעוגייה של הגולשים שלי הוא לא יצליח.
הסוג השני של העוגיות, third party cookies, מאחסנים מידע שאתרים אחרים יכולים לגשת אליו גם אם הם לא היו אלו שיצרו את העוגייה (כמו למשל עוגיית הרימרקטינג של גוגל אדוורדס, שאליה יכולים לגשת גם אתרים אחרים ולהציג לכם מודעות על סמך המידע שיש בעוגיה הזו).
ישנן עוגיות שנשתלות במחשב של הגולש לתמיד (או עד שהוא מוחק אותם), וישנן עוגיות שנשתלות עם תאריך תפוגה. העוגיות של גוגל אנליטיקס נשתלות עם תאריך תפוגה כלשהוא שמשתנה על פי סוג העוגייה.
לא נכנס להסברים יותר מדי מעמיקים בנושא, אבל מי שרוצה להעמיק יכול לקרוא עוד כאן.
עוגיות של גוגל אנליטיקס
העוגיות בגוגל אנליטיקס נחלקות ל-2 סוגים:
1. העוגיות של Classic Analytics
העוגיות של הגרסא הקודמת של גוגל אנליטיקס שמרו כמעט את כל המידע על הגולש:
- עוגיית _utma שומרת את המידע על הגולש עצמו, עם תוקף של שנתיים מהביקור האחרון. העוגייה הזו עוזרת לגוגל אנליטיקס לדעת אם מדובר בגולש חדש או ישן, מתי היה הביקור האחרון שלו, ומה המספר של הביקור הנוכחי. כמו כן העוגייה הזו מכילה מידע על הדומיין שיצר אותה, כדי שדומיינים אחרים לא יוכלו לגשת למידע השמור בתוכה.
- עוגיית _utmb שומרת את המידע על הסשן הנוכחי, ולה יש תאריך תפוגה של 30 דקות מהפעולה האחרונה שהגולש ביצע או בסוף היום, אז גוגל אנליטיקס מתחיל לספור את הסשנים מחדש. העוגייה הזו שימשה את גוגל אנליטיקס הקלאסי כדי לדעת אם מדובר בסשן חדש או ישן. בכל פעם שהקוד של אנליטיקס היה נטען (כלומר בכל פעם שביקרתם בעמוד חדש באתר) הוא בדק האם העוגיה utmb קיימת במחשב של הגולש. אם היא לא קיימת – סימן שמדובר בסשן חדש וצריך ליצור את העוגייה הזו, ואם היא כן קיימת – סימן שזה אותו סשן וצריך לעדכן את התוקף שלה לעוד 30 דקות.
- _utmz שומרת למשך 6 חודשים את המידע על הקמפיין או מקור התנועה ממנו הגולש הגיע. זה אומר שאם הגולש נכנס מגוגל אורגני ואחרי חודשיים נכנס בצורה ישירה (direct) – גוגל אנליטיקס עדיין יחשיב אותו כמבקר אורגני (בתנאי שבאמצע הוא לא נכנס דרך מקור תנועה אחר כמובן).
- _utmv שומרת נתונים שהוגדרו באמצעות setCustomVar (מה שמתבצע היום באמצעות Custom Dimensions) למשך שנתיים. בדרך כלל אלו היו נתונים שעזרו לנו לבצע סגמנטציה בין גולשים לאורך זמן, למשל גולשים שנרשמו לתוכנית gold לעומת אלו שנרשמו לתוכנית silver.
באמצעות שימוש בעוגייה של setCustomVar היינו יכולים לשמור את המידע על הגולשים הללו לאורך זמן.
ישנו עוד 2 עוגיות אבל אלו העוגיות העיקריות שחשוב להכיר, וכאן תוכלו לקרוא את ההסבר הרשמי של גוגל בנושא.
2. העוגיות של Universal Analytics
ביוניברסל יש לנו רק עוגייה אחת, מכיוון שכל יתר המידע נשלח ישירות לשרתים של גוגל ולא נשמר במחשב של הגולש. המידע העיקרי שנמצא בעוגייה זה המזהה הייחודי של הגולש (הדפדפן ליתר דיוק), שהוא בעצם מספר רנדומלי שנשלח עם כל hit לשרתים של גוגל אנליטיקס כדי ללמד אותם שמדובר באותו גולש.
למשל – אתם יכולים לראות בתמונה הבאה שברגע שנכנסתי בפעם הראשונה לאתר allthingsdata.co.il גוגל אנליטיקס הצמיד אלי את המזהה 233938351 (זה ה-clientId שלי), ולכן בכל פעם שאני אצפה בעמוד חדש, אבצע טרנזקציה מסויימת, אפעיל event או אשלח כל hit אחר לשרתים של גוגל אנליטיקס – ה-clientId יישלח ביחד עם ההיט הזה ויעזור להם לזהות אותי ולדעת שמדובר באותו גולש.
בביקור הבא שלי באותו אתר, אנליטיקס יזהה שכבר קיימת אצלי עוגייה עם clientId מסויים, ולכן כל שאר ה-hits שאשלח באותו ביקור ימשיכו להשתייך לאותו clientId, כלומר לאותו ״גולש״.
כמובן שבמידה ואמחק את הקוקיז במחשב או אכנס מדפדפן אחר (וכמובן ממכשיר אחר) – גוגל אנליטיקס יראה שהעוגייה לא נמצאת אצלי במחשב, ולכן ייצור אותה מחדש ויתייחס אלי כגולש אחר (וזו הבעיה הכי גדולה עם cross-device measurement).
כמו שאתם רואים בתמונה, העוגייה כוללת את המידע הבא:
- שם העוגייה ( _ga בברירת המחדל).
- התוכן של העוגייה, שמשמעו (מימין לשמאל) הוא הזמן בו היא נוצרה לראשונה (=מספר השניות שעברו מה-1.1.1970), המזהה הייחודי של הגולש (או יותר נכון של הדפדפן שלו), מספר החלקים של הדומיין (מה שמופיע בין הנקודות של כתובת הדומיין. במקרה שלנו 3) וגרסת האנליטיקס (GA1 עד להודעה חדשה). שני המספרים הימניים הם ה-clientId שעליו נדבר בהמשך.
[הערה למתקדמים]
שימו לב שבמקרה שנגדיר את הדומיין באופן שונה, או שנגדיר את ה-path באופן שונה – המספר שמגיע מימין ל-GA1 ישתנה. החלק הראשון (4 בדוגמא הבאה) מציין את מספר האיברים שנמצאים בין הנקודות בדומיין, והחלק השני שמגיע אחרי המקף (2 בדוגמא שלהלן) מציין את מספר האיברים שמופיעים בין סלאש. מכיוון שהגדרנו path של ספריה מסויימת אז יש לנו את הדומיין לפני הסלאש ואת הספריה אחרי הסלאש ולכן זה 2:
זה שימושי מאוד במקרים בהם יש לכם ספרייה בתוך אתר שאתם לא רוצים שחלקים אחרים באתר יוכלו לגשת אליה, ואז אתם מגדירים לה קוקי נפרד למרות שהדומיין נשאר אותו דומיין.
[/הערה למתקדמים]
- לאחר התוכן של העוגייה מגיע domain, שזה הדומיין שיכול לגשת למידע שבתוך העוגייה (ברירת מחדל היא ה-host שבתוכו רץ הסקריפט של האנליטיקס. allthingsdata.co.il במקרה שלנו).
- אחריו ה-path של הקוקי (ברירת המחדל היא root, כלומר ״/״).
- ולבסוף התאריך האחרון בו העוגייה נוצרה (כלומר הפעם האחרונה בה הסקריפט של אנליטיקס נשלח + שנתיים קדימה).
איך לשנות את הערכים הדיפולטיביים של העוגיה
לפני שנעבור הלאה, אני רוצה להראות לכם איך לשנות באופן ידני את התוכן הדיפולטיבי של העוגייה. סביר להניח שרובכם לא תזדקקו לזה אבל בכל זאת אולי כדאי שתדעו:
- כדי לשנות את השם של העוגייה צריך להוסיף method (לא יודע איך לקרוא לזה בעברית) בשם ״cookieName״ בפקודה של יצירת העוגייה. בצורה כזו:
[syntax type=”js”] ga(‘create’, ‘UA-11111111-1’, {
‘cookieName’ : ‘GACookie’
});
[/syntax]
- כדי לשנות את הדומיין שיכול לגשת לעוגייה יש להוסיף method בשם cookieDomain בצורה כזו:
[syntax type=”js”] ga(‘create’ , ‘UA-11111111-1’, {
‘cookieDomain’ : ‘domain.co.il’
});
[/syntax]
או בדרך אחרת: [syntax type=”js”] ga(‘create’ , ‘UA-11111111-1’ , ‘domain.co.il’); [/syntax]
זה יהיה שימושי עבורכם אם תרצו לאפשר לסאב דומיין גישה לעוגייה מבלי שהדומיין הראשי יוכל לגשת אליה גם כן.
* שימו לב שהדומיין שאתם רושמים חייב להיות חלק מהדומיין בו הסקריפט נמצא אחרת ה-hit לא ישלח לאנליטיקס. אם תפעילו את הסקריפט מדומיין a.co.il ותכתבו ‘cookieDomain’ : ‘b.co.il’ זה לא יעבוד.
** בגלל שבמעקב קרוס דומיין אנחנו רוצים שהעוגייה תהיה משותפת לכל הדומיינים שבהם הסקריפט ירוץ, אני צריך להעביר בפרמטר השלישי את כל הדומיינים המשותפים או פשוט את המילה auto. בצורה כזו:
[syntax type=”js”] ga(‘create’,’UA-11111111-1′,’domainA.co.il, domainB.co.il’); [/syntax]
או: [syntax type=”js”] ga(‘create’,’UA-11111111-1′,’auto’); [/syntax]
- כדי לשנות את תאריך התפוגה של העוגייה יש להוסיף method בשם cookieExpires ואחריו את מספר השניות שיהיו משך החיים החדש של העוגייה. בצורה כזו (דוגמא לשינוי משך החיים ל-24 שעות):
[syntax type=”js”] ga(‘create’, ‘UA-11111111-1’, {
‘cookieExpires’ : 86400
});
[/syntax]
למה אין בעיה לעקוב אחרי סאב-דומיינים מרובים
כמו שאתם רואים בשורה השלישית, הדומיין שיצר את העוגייה הוא allthingsdata.co.il ולכן רק הוא יהיה זה שיוכל לגשת לתוכן שלה.
באנליטיקס הקלאסי המצב היה שכאשר הסקריפט של האנליטיקס היה רץ בסאב דומיין sub.allthingsdata.co.il – גוגל אנליטיקס היה יוצר עבורו קוקי אחר עם clientId אחר, ואפילו הדומיין הראשי (allthingsdata.co.il) לא היה יכול לגשת לעוגייה הזו.
זו בעיה שהיתה קיימת באנליטיקס הקלאסי מכיוון שהדומיין של הקוקי בברירת מחדל היה הדומיין שיצר את העוגייה. כלומר אם היינו שולחים את הסקריפט של אנליטיקס מכתובת sub.domain.com אז רק לסאב דומיין הזה היתה גישה ולא לדומיין הראשי domain.com.
לעומת זאת, ביוניברסל אנליטיקס הדומיין של הקוקי מוגדר כ”auto” בברירת המחדל, מה שאומר שלא משנה מאיפה הסקריפט פועל – הדומיין תמיד יהיה הדומיין הראשי של אותה כתובת.
למשל – אם תשימו את הקוד שלעיל בעמודים blog.domain.com, shop.domain.com, domain.com והגולש יעבור ביניהם במהלך הביקור – לשלושתם תהיה גישה לעוגייה של אותו גולש ושלושתם יוכלו לדעת שמדובר באותו clientId, כלומר אותו גולש, מכיוון שהעוגייה מוגדרת על הרמה העליונה של הדומיין domain.com שכוללת את שלושתם.
מה שזה אומר הוא שבמידה והגולש הגיע ל-domain.com ממקור תנועה מסויים, אדוורדס למשל, אז גם אם הוא יעבור אחרי זה לסאב דומיין shop.domain.com הוא עדיין יזוהה כאילו הגיע מאדוורדס (ולא מ-referral / domain.com).
אבל כאמור זה רק ביוניברסל אנליטיקס, ואילו בקלאסי תצטרכו לבצע שינוי קטן בקוד כדי שזה יקרה.
אז איפה כן יש בעיית קרוס דומיין?
למרות שפתרנו את הבעיה במעקב בין סאב דומיינים, עדיין יש לנו בעיה כאשר הגולש עובר בין דומיינים ראשיים שונים, כמו למשל מ-domain.com ל-domain.co.il.
כמו שאמרנו קודם הבעיה הזו קיימת בגלל שהעוגייה נגישה רק לדומיין הראשי שיצר אותה, ומהבחינה הזו הדומיינים domain.com ו-domain.co.il הם לא אותם דומיינים ראשיים.
ולמה זה משנה לנו? מכיוון שהרעיון במעקב קרוס-דומיין הוא בכך שהוא מאפשר לנו לדעת שמדובר באותו גולש גם אם הוא עובר בין דומיינים ראשיים שונים.
למשל: גולש מגיע מגוגל אורגני לדף הבית של נאוטיקה דוט קום, אבל מכיוון שהוא רוצה לקנות באתר בשפה שלו הוא הולך ל-select country, בוחר ישראל ועובר לאתר בעברית שהסיומת שלו היא כמובן co.il.
אותו גולש משוטט באתר וקונה בסכום של 2,000 ₪, אבל מנהלי האתר (הישראלי והבינלאומי) לא ביצעו מעקב קרוס דומיין כמו שצריך ולכן מקור התנועה שמקבל את הקרדיט על הרכישה הזו הוא כמובן referral / nautica.com ולא google / organic.
#FAIL
אם נלך לתוכן של העוגיות ונראה מה הם מכילות נוכל לראות שה-clientId שלי שונה בשניהם, אבל האמת היא שהבעיה נמצאת עוד הרבה קודם מכיוון שהאתר הבינ״ל עדיין עובד עם האנליטיקס הקלאסי, ואילו האתר הישראלי עובד עם היוניברסל:
בכל אופן, במעקב קרוס דומיין אנחנו רוצים לאפשר לכל דומיין לגשת למידע שנמצא בעוגיות שהדומיינים האחרים יצרו, ולהתייחס ל-hits שנשלחים כפעולות שבוצעו על ידי אותו גולש בדיוק.
בואו נראה דוגמא בלייב:
לפניכם נמצא אייפריים שמכיל קוד אנליטיקס גנרי. המזהה (UA) הוא פיקטיבי ושיניתי את שם העוגייה כדי לא לשבש את המידע שנמצא בעוגייה האמיתית של האנליטיקס שלי.
בשורה הראשונה יש לכם את ה-URL שמוצג בתוך באייפריים, לאחר מכן לינקים לדומיין אחר ולעמוד אחר באותו דומיין, ולבסוף מידע שאותו אני שולף מתוך העוגייה שגוגל אנליטיקס יצר במחשב שלכם. אתם יכולים לשחק עם הלינקים הלוך חזור ולראות את הדברים הבאים:
1. במעבר לדומיין אחר הדומיין משתנה ולכן גם ה-clientId שלכם משתנה.
2. במעבר לדף אחר באותו דומיין – גם ה-cookieDomain וגם ה-clientId נשארים אותו דבר:
אם אתם זוכרים את ההסבר מתחילת הפוסט, אז העוגיה של גוגל אנליטיקס עם ה-clientId שבתוכה נגישים רק לדומיין שיצר אותה, ולכן במעבר בין הדומיינים השונים נוצרת עוגייה חדשה עם clientId חדש, והגולש נחשב כגולש חדש מבחינת מדידת הנתונים של גוגל אנליטיקס.
סיכום
בפוסט הנוכחי ראינו איך עובדות העוגיות של גוגל אנליטיקס בגרסא הקלאסית ובגרסא החדשה של היוניברסל, וראינו איפה בדיוק נמצאת הבעיה.
המטרה של מעקב קרוס דומיין היא לאפשר לדומיינים השונים לשתף את ה-clientId של הגולש, וכך לאפשר לאנליסט לשייך את כל הפעולות המתבצעות בדומיינים לאותו גולש למרות שמדובר בדומיינים שונים.
חשוב לציין שעוגייה משוייכת אך ורק לדפדפן שיצר אותה. כלומר אם נכנסתי מ-chrome ועכשיו אני נכנס מ-IE או FireFox – גוגל אנליטיקס יתייחס אלי כאל גולש אחר לחלוטין, ולא ידע לזהות שמדובר באותו משתמש/מחשב. כמובן שזה מה שקורה גם אם הייתי נכנס ממכשיר אחר, כמו למשל מובייל, טאבלט ודסקטופ.
בחלק השני של סדרת הפוסטים נלמד איך קוד המעקב של גוגל אנליטיקס עובד, ובחלק השלישי נלך לפרקטיקה – איך מבצעים בפועל את מעקב הקרוס דומיין בצורה ידנית או עם העזרה של גוגל תג מנג׳ר.
ועכשיו תורכם – אם אהבתם את הפוסט שתפו אותו כדי שעוד אנשים יוכלו להנות, ואם יש לכם שאלה מוזמנים לרשום אותה בתגובות.