מדידת אפליקציה של דף יחיד

מדריך זה מתאר כיצד להשתמש ב-analytics.js כדי למדוד פעילות דפים באתרים שהתוכן שלהם נטען באופן דינמי, ללא טעינות קודמות של דפים מלאים.

סקירה

אפליקציה בדף יחיד (SPA) היא אפליקציית אינטרנט או אתר שטוענים את כל המשאבים שנדרשים כדי לנווט באתר בטעינה הראשונה של הדף. כשהמשתמש לוחץ על קישורים ומקיים אינטראקציה עם הדף, התוכן הבא נטען באופן דינמי. לרוב, האפליקציה תעדכן את כתובת ה-URL בסרגל הכתובות כדי לחקות את הניווט המסורתי בדפים, אבל לא נשלחת בקשה נוספת לדף מלא.

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

מעקב אחר צפיות וירטואליות בדף

כשהאפליקציה שלך טוענת תוכן באופן דינמי ומעדכנת את כתובת ה-URL בסרגל הכתובות, גם הנתונים שמאוחסנים במכשיר המעקב אמורים להתעדכן.

כדי לעדכן את מכשיר המעקב, משתמשים בפקודה set ומספקים את הערך החדש page:

ga('set', 'page', '/new-page.html');

לאחר שהגדרת את הערך החדש של הדף, כל ההיטים הבאים שנשלחו ישתמשו בערך החדש הזה. כדי לתעד צפייה בדף, שולחים היט של צפייה בדף מיד אחרי שמעדכנים את מכשיר המעקב.

ga('set', 'page', '/new-page.html');
ga('send', 'pageview');

מבחינה טכנית, הפקודה send להיטים של צפיות בדף מקבלת שדה page אופציונלי כפרמטר השלישי, אבל לא מומלץ להעביר את השדה page בצורה הזו כשמודדים אפליקציות בדף יחיד. הסיבה לכך היא ששדות שמועברים באמצעות הפקודה send לא מוגדרים בכלי המעקב – הם חלים על ההיט הנוכחי בלבד. לא יתבצע עדכון של כלי המעקב, אם האפליקציה תשלח היטים שאינם 'צפייה בדף' (כמו אירועים או אינטראקציות חברתיות). הסיבה לכך היא שההיטים האלה ישויכו לערך של page שהיה לו בכלי המעקב כשהוא נוצר.

טיפול במספר כתובות URL לאותו משאב

חלק מספקי ה-SPA מעדכנים רק את קטע ה-hash של כתובת ה-URL כשטוענים תוכן באופן דינמי. השיטה הזו יכולה להוביל למצבים שבהם הרבה נתיבי דפים שונים מפנים לאותו משאב. במקרים כאלה, בדרך כלל מומלץ לבחור כתובת URL קנונית ולשלוח את הערך page הזה ל-Google Analytics בלבד.

לדוגמה, נניח שיש לכם אתר שניתן להגיע לדף 'מי אנחנו' דרך כל אחת מכתובות ה-URL הבאות:

  • /about.html
  • /#about.html
  • /home.html#about.html

כדי להימנע מכפילויות בדוחות, מומלץ לתעד את כל הצפיות בדפים האלה בתור /about.html.

שיקולים חשובים

לא לעדכן את הגורם המפנה של המסמך

כשיוצרים אובייקט מעקב באמצעות הפקודה create, הערך של document.referrer מאוחסן בשדה referrer של מכשיר המעקב. בהקשר של אפליקציית דף אחת שלא משתמשת בטעינות דפים מלאות, השדה referrer תמיד יישאר ללא שינוי.

למרות זאת, אין צורך לעדכן באופן ידני את שדה הגורם המפנה לפני שליחת היטים של צפיות בדף. מערכת Google Analytics יכולה לקבוע באופן אוטומטי את נתיב הניווט הנכון.

לא לעדכן את מיקום המסמך

באותו אופן שבו כלי המעקב משתמש ב-document.referrer עבור השדה referrer, הוא משתמש ב-document.location עבור השדה location, שעשוי להכיל נתוני קמפיין או מטא-נתונים אחרים בצורת פרמטרים של שאילתה שמצורפים לסוף כתובת ה-URL.

עדכון של שדות הקמפיין או של מטא-נתונים אחרים בבדיקה של Google Analytics עלול לגרום לסיום הסשן הנוכחי ולהתחלה של סשן חדש. כדי להימנע מהבעיה הזו, אין לעדכן את השדה location כשמודדים צפיות וירטואליות בדף באפליקציה יחידה. במקום זאת, השתמשו בשדה page.

לא ליצור מכשירי מעקב חדשים

אין ליצור כלי מעקב חדשים באפליקציה בדף יחיד בניסיון לחקות את הפעולה של קטע הקוד למעקב של JavaScript באתרים רגילים. פעולה זו עלולה לשלוח גורם מפנה שגוי או נתוני קמפיין שגויים, כפי שמתואר למעלה.