מה הייצוא נותן שדוחות GA4 לא נותנים?
שלושה דברים. הראשון: נתונים ברמת האירוע. בדוח אתם רואים סכומים, בטבלה של BigQuery כל אירוע הוא שורה עם כל הפרמטרים שלו, כך שאפשר לשאול שאלות שאין להן דוח מוכן. השני: אין דגימה. לפי התיעוד של Google הייצוא היומי מוציא את כל נתוני האירועים הגולמיים ללא דגימה, בעוד שבממשק דגימה עשויה להתרחש כשחורגים ממכסת האירועים של הנכס. השלישי: היסטוריה. הגדרת שמירת הנתונים של GA4 מוחקת נתונים אחרי 14 חודשים לכל היותר בנכס רגיל. בטבלאות שלכם ב-BigQuery הנתונים נשארים כל עוד אתם משלמים על האחסון.
בפועל אלה השאלות שמצדיקות את החיבור: מה היה שיעור ההמרה של לקוחות חוזרים לפי מוצר ראשון שקנו, כמה זמן עובר בין ביקור ראשון לרכישה לפי ערוץ ואיך נראה המשפך המלא בלי מגבלת קרדינליות. את המגבלות שגורמות לפער הזה בממשק הסברנו בספי נתונים, דגימה ושורת (other) ב-GA4.
מה קורה אחרי שמחברים
הדרך של אירוע מהאתר אל טבלה ב-BigQuery
ייצוא יומי או הזרמה: מה ההבדל?
לפי התיעוד של Google יש שני סוגי ייצוא שאפשר להפעיל יחד או בנפרד. הייצוא היומי מוציא פעם ביום את כל נתוני האירועים הגולמיים ללא דגימה מהיום הקודם ויוצר טבלה בשם events_YYYYMMDD. ההזרמה היא ייצוא רציף של נתוני היום הנוכחי לטבלה בשם events_intraday_YYYYMMDD שנמחקת בסוף היום ברגע שהטבלה היומית מוכנה.
הפרט שחשוב לדעת על ההזרמה: לפי התיעוד היא שירות במאמץ מיטבי שפועל בלי יעד שלמות ועלול להכיל פערי נתונים. גוגל ממליצה במפורש לשאול את הטבלה היומית ולא את טבלת הביניים, כדי לעבוד על מערך נתונים יציב. לכן ההזרמה מתאימה לניטור בזמן אמת. הדוחות והניתוחים נבנים על הטבלה היומית.
| ייצוא יומי | הזרמה | |
|---|---|---|
| מה מקבלים | כל האירועים הגולמיים של היום הקודם, ללא דגימה | נתוני היום הנוכחי באופן רציף |
| שם הטבלה | events_YYYYMMDD | events_intraday_YYYYMMDD, נמחקת בסוף היום |
| מגבלת נפח בנכס רגיל | מיליון אירועים ביום | אין מגבלת נפח |
| אמינות | מערך נתונים יציב לשאילתות | מאמץ מיטבי, עלול להכיל פערים |
| עלות נוספת | אחסון ושאילתות ב-BigQuery | בנוסף 0.05 דולר לכל ג'יגה-בייט |
מגבלת מיליון האירועים: מה קורה כשחורגים?
זו המגבלה שהכי חשוב להכיר לפני שמחברים. לפי התיעוד של Google, לנכסים רגילים יש מגבלת ייצוא יומית ל-BigQuery של מיליון אירועים. אם הנכס חורג מהמגבלה באופן עקבי, הייצוא היומי מושהה. התיעוד מציין במפורש שהייצוא של הימים הקודמים לא יעובד מחדש. בנוסף נאמר שהמערכת עשויה להשהות את הייצוא היומי באופן מיידי. עורכים ומנהלים של הנכס מקבלים התראה במייל בכל פעם שהנכס חורג מהמגבלה היומית.
המשמעות המעשית: אתר עם הרבה תנועה יכול לגלות חודשיים אחרי החיבור שיש לו חורים בנתונים שאי אפשר למלא, כי לפי התיעוד אחרי ייצוא מ-GA4 ל-BigQuery אי אפשר לייצא מחדש. לכן לפני החיבור בודקים כמה אירועים ביום הנכס מייצר. מי שמתקרב למיליון משתמשים באפשרות שהתיעוד מציין: לסנן זרמי נתונים ואירועים מסוימים מהייצוא. ההזרמה, לעומת זאת, אינה מוגבלת בנפח.
איך מחברים את GA4 ל-BigQuery?
- מכינים פרויקט ב-Google Cloud. יוצרים פרויקט או בוחרים קיים ומפעילים בו את BigQuery API דרך תפריט הניווט, APIs and Services ואז Library.
- מוודאים הרשאות. לפי התיעוד צריך הרשאת Editor או גבוהה יותר ברמת הנכס ב-GA4 וכתובת מייל עם הרשאת OWNER בפרויקט של BigQuery.
- יוצרים את הקישור ב-GA4. נכנסים ל-Admin, תחת Product Links בוחרים BigQuery Links ולוחצים Link. בוחרים את הפרויקט, את המיקום הגאוגרפי ואת זרמי הנתונים.
- בוחרים את סוג הייצוא. במסך הזה מסמנים ייצוא יומי, הזרמה או שניהם. כאן גם אפשר להחריג זרמי נתונים ואירועים. כאן גם מחליטים אם לכלול מזהי פרסום באפליקציות.
- מחכים עד 24 שעות. לפי התיעוד, אחרי השלמת הקישור הנתונים אמורים להתחיל לזרום לפרויקט תוך 24 שעות. הייצוא מתחיל מרגע ההפעלה.
- בודקים שהטבלה נוצרה. ב-BigQuery אמור להופיע מערך נתונים בשם analytics ואחריו מזהה הנכס ובתוכו הטבלה היומית. אם אין אחרי 24 שעות, בודקים את ההרשאות ואת אמצעי התשלום.
איך נראים הנתונים ומה אפשר לשאול?
כל שורה בטבלה היא אירוע. השדות המרכזיים לפי התיעוד: event_name הוא שם האירוע, event_params הוא רשומה חוזרת שמכילה את הפרמטרים של האירוע, user_pseudo_id הוא המזהה הפסאודונימי של המשתמש, user_id הוא המזהה הייחודי שהקציתם למשתמש, event_timestamp הוא הזמן במיליוניות שנייה ב-UTC שבו האירוע התקבל ב-Analytics. השדה event_date הוא התאריך שבו האירוע נרשם.
המבנה הזה הוא גם מה שמקשה בהתחלה: event_params היא רשומה מקוננת, כך שכדי להוציא פרמטר בודד צריך UNNEST ולא פשוט לבחור עמודה. זו השאילתה הבסיסית שסופרת אירוע לפי יום:
SELECT
event_date,
COUNT(*) AS events,
COUNT(DISTINCT user_pseudo_id) AS users
FROM `PROJECT.analytics_PROPERTYID.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20261001' AND '20261031'
AND event_name = 'purchase'
GROUP BY event_date
ORDER BY event_date;
שימו לב למגבלה אחת שלא כולם מכירים: לפי התיעוד אירועים שמגיעים אחרי חלון של שלושה ימים אינם נרשמים. כלומר נתונים שמגיעים באיחור גדול לא יופיעו בטבלה גם אם הם מופיעים בדוח.
כמה זה עולה?
הייצוא עצמו מוגדר מתוך GA4 בלי תשלום ל-Google Analytics, אבל BigQuery מחייב על שימוש בשני רכיבים: אחסון ועיבוד שאילתות. לפי התיעוד צריך אמצעי תשלום תקף בחשבון Cloud כדי שהייצוא יתבצע. מי שרוצה להתנסות יכול לייצא ל-BigQuery sandbox ללא תשלום. שם חלות מגבלות הארגז, כולל מכסת אחסון של 10 ג'יגה-בייט בפרויקטים חינמיים.
על ההזרמה יש חיוב נוסף: לפי התיעוד 0.05 דולר לכל ג'יגה-בייט. גוגל מציינת שג'יגה-בייט אחד שווה בקירוב ל-600,000 אירועים, תלוי בגודל האירוע. כלומר אתר עם מיליון אירועים ביום שמפעיל הזרמה משלם סדר גודל של כמה עשרות דולרים בחודש רק על ההזרמה, לפני עלות האחסון והשאילתות.
מה לא נכנס לייצוא?
כמה פערים שכדאי להכיר לפני שבונים דוח על הנתונים. לפי התיעוד נתוני Google signals אינם מיוצאים ל-BigQuery. לכן הפילוח הדמוגרפי שקיים בממשק לא יהיה זמין בטבלה. מזהי wBRAID ו-gBRAID אינם נכללים בייצוא. בייצוא בהזרמה חסרים נתוני ייחוס תנועה עבור משתמשים חדשים, בין השאר שם המקור והמדיום. לכן ניתוח ערוצים נעשה על הטבלה היומית. התיעוד גם מציין שהנתונים ב-BigQuery הם הנתונים הגולמיים שהתקבלו מהלקוח. אין בהם את העיבוד שמתבצע בממשק GA4.
בכיוון השני, זו בדיוק הסיבה שהמספרים לא יהיו זהים למה שאתם רואים בדוחות. ההבדל הזה לא מעיד על תקלה. מי שמציג לשני גורמים שני מספרים צריך להגדיר מראש מהו מקור האמת לכל מדד. זה חלק ממילון המדדים שמוסבר באיך בונים תוכנית מדידה מהיעדים העסקיים.
שאלות נפוצות
האם הייצוא של GA4 ל-BigQuery חינמי?
הייצוא מוגדר מתוך GA4 בלי תשלום ל-Google Analytics, אבל BigQuery מחייב על אחסון ועל עיבוד שאילתות. לפי התיעוד צריך אמצעי תשלום תקף בחשבון Cloud כדי שהייצוא יתבצע. אפשר לייצא ל-BigQuery sandbox ללא תשלום, שם חלות מגבלות הארגז כולל מכסת אחסון של 10 ג'יגה-בייט בפרויקטים חינמיים.
כמה אירועים ביום אפשר לייצא בנכס רגיל?
לפי התיעוד של Google, לנכסים רגילים יש מגבלת ייצוא יומית של מיליון אירועים. אם הנכס חורג באופן עקבי הייצוא היומי מושהה. הייצוא של הימים הקודמים לא יעובד מחדש. ההזרמה אינה מוגבלת בנפח.
מה ההבדל בין ייצוא יומי להזרמה?
הייצוא היומי מוציא פעם ביום את כל האירועים הגולמיים של היום הקודם ללא דגימה לטבלה בשם events_YYYYMMDD. ההזרמה מייצאת את נתוני היום הנוכחי באופן רציף לטבלה בשם events_intraday_YYYYMMDD שנמחקת בסוף היום. לפי התיעוד ההזרמה היא שירות במאמץ מיטבי שעלול להכיל פערי נתונים. לכן מומלץ לשאול את הטבלה היומית.
האם הייצוא מביא גם נתונים היסטוריים?
התיעוד הרשמי לא מציין החזר של נתונים היסטוריים בהפעלת הקישור. בפועל הייצוא מתחיל מרגע ההפעלה. לפי התיעוד אחרי שנתונים יוצאו מ-Analytics ל-BigQuery אי אפשר לייצא אותם מחדש. כדאי להפעיל את הייצוא מוקדם ככל האפשר גם אם עוד לא בונים עליו דוחות.
למה המספרים ב-BigQuery שונים מהדוחות ב-GA4?
כי אלה שני דברים שונים. לפי התיעוד ב-BigQuery נמצאים הנתונים הגולמיים שהתקבלו מהלקוח, בלי העיבוד שמתבצע בממשק. בנוסף נתוני Google signals אינם מיוצאים. בייצוא בהזרמה חסרים נתוני ייחוס תנועה עבור משתמשים חדשים. פער בין השניים אינו תקלה.
כמה זמן לוקח עד שהנתונים מופיעים?
לפי התיעוד, אחרי השלמת הקישור הנתונים אמורים להתחיל לזרום לפרויקט תוך 24 שעות. אם אחרי 24 שעות לא נוצר מערך נתונים בפרויקט, בודקים את ההרשאות בנכס ובפרויקט ואת אמצעי התשלום בחשבון Cloud.
מה השורה התחתונה?
הייצוא ל-BigQuery מתאים למי שנתקל באחת משלוש התקרות של GA4: דגימה בדוחות, מחיקת היסטוריה אחרי 14 חודשים או שאלות ברמת האירוע שאין להן דוח מוכן. ההחלטה הראשונה לפני החיבור היא לא טכנית אלא חשבונאית: לבדוק כמה אירועים ביום הנכס מייצר ולוודא שלא חורגים ממיליון, כי ייצוא שהושהה לא מתמלא רטרואקטיבית. אנחנו מקימים את החיבור הזה כחלק משירות מדידה מתקדמת, כולל בחירת האירועים לייצוא ובניית הדוחות מעל הנתונים. אם אתם שוקלים את זה ולא בטוחים אם הנכס שלכם מצדיק את העלות, כתבו לנו.
מקורות
Google Analytics Help: BigQuery Export, Google Analytics Help: Set up BigQuery Export, Google Analytics Help: BigQuery Export schema
