איך פועל analytics.js

אפשר לבצע כמעט את כל מה שצריך למדידה באמצעות analytics.js באמצעות תור הפקודות של ga(). במדריך הזה נסביר מהו תור הפקודות, איך הוא פועל ואיך להריץ פקודות כדי למדוד אינטראקציות של משתמשים.

תור הפקודות של ga

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

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

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

console.log(ga.q);

// Outputs the following:
// [
//   ['create', 'UA-XXXXX-Y', 'auto'],
//   ['send', 'pageview']
// ]

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

התבנית הזו מאפשרת למפתחים להשתמש בתור הפקודות של ga() בלי לדאוג אם הטעינה של ספריית analytics.js הסתיימה או לא. היא מספקת ממשק פשוט ובעל מראה סינכרוני שמפשט את רוב המורכבות של הקוד האסינכרוני.

הוספת פקודות לתור

לכל הקריאות לתור הפקודות של ga() יש חתימה משותפת. הפרמטר הראשון, 'command', הוא מחרוזת שמזהה שיטה מסוימת של analytics.js. פרמטרים נוספים הם הארגומנטים שמועברים לשיטה הזו.

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

רשימה מקיפה של כל הפקודות שאפשר לבצע באמצעות תור הפקודות זמינה בחומר העזר בנושא תור הפקודות של ga().

פרמטרים של פקודות

רוב הפקודות של analytics.js (והשיטות התואמות להן) מקבלות פרמטרים בכמה פורמטים שונים. מטרת הפעולה הזו היא להקל על ההעברה של שדות שנמצאים בשימוש נפוץ לשיטות מסוימות.

לדוגמה, נבחן את שתי הפקודות בתג של Google Analytics:

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

בפקודה הראשונה, create מקבל את השדות trackingId, cookieDomain ו-name כדי שניתן יהיה לציין אותם כפרמטרים השני, השלישי והרביעי, בהתאמה. הפקודה send מקבלת פרמטר שני אופציונלי hitType.

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

ga('create', {
  trackingId: 'UA-XXXXX-Y',
  cookieDomain: 'auto'
});
ga('send', {
  hitType: 'pageview'
});

בחומר העזר בנושא תור פקודות ga() תוכלו למצוא רשימה מקיפה של הפרמטרים האופציונליים שמותרים לכל אחת מהפקודות.

השלבים הבאים

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