בוחרים את הפלטפורמה הרלוונטית:
Measurement Protocol של Google Analytics לא מחזיר קודי שגיאות HTTP, גם אם האירוע מוגדר בצורה שגויה או שחסרים בו פרמטרים נדרשים. כדי לוודא שהאירועים תקינים, אתם צריכים לבדוק אותם מול שרת האימות של Measurement Protocol לפני שתפרסו אותם בסביבת הייצור.
אחרי שמוודאים שהאירועים מובְנים בצורה תקינה, צריך לאמת את ההטמעה כדי לוודא שאתם משתמשים במפתחות הנכונים.
אתם יכולים לשלוח קריאה ישירות לשרת האימות או להשתמש בכלי ליצירת אירועים ב-Google Analytics. הכלי ליצירת אירועים ב-Google Analytics מאפשר לכם ליצור אירועים באופן אינטראקטיבי, ולאמת אותם באמצעות שרת האימות של Measurement Protocol.
במדריך הזה מוסבר איך לשלוח אירועים לשרת האימות של Measurement Protocol ל-Google Analytics ואיך לפרש את התגובה.
שליחת אירועים לאימות
ההבדל היחיד בבקשה לאירועים שנשלחים ל-Measurement Protocol ולשרת האימות של Measurement Protocol הוא כתובת ה-URL.
| שרת | כתובת URL |
|---|---|
| Measurement Protocol | /mp/collect |
| שרת האימות של Measurement Protocol | /debug/mp/collect |
כל שאר השדות של הבקשה זהים.
אנחנו ממליצים על הגישה הבאה לאימות:
- כדי להשתמש בבדיקות אימות מחמירות במהלך הפיתוח, אפשר לבחור באחת מהאפשרויות הבאות:
- מאמתים את הבקשות באמצעות הכלי ליצירת אירועים.
- שולחים בקשות לשרת האימות כשהפרמטר
validation_behaviorמוגדר לערךENFORCE_RECOMMENDATIONS.
- בסביבת הייצור, שולחים בקשות בלי להגדיר את
validation_behaviorכדי לצמצם את הנתונים שנדחים על ידי Measurement Protocol.
דוגמה לאירוע לא תקין
הקוד הבא מראה אירוע לא תקין שנשלח לשרת האימות של Measurement Protocol:
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
app_instance_id: "APP_INSTANCE_ID",
validation_behavior: "ENFORCE_RECOMMENDATIONS",
events: [{
// Event names must start with an alphabetic character.
name: "_badEventName",
params: {},
}]
})
});
דוגמה לאירוע תקין
הקוד הבא מראה אירוע תקין שנשלח לשרת האימות של Measurement Protocol. הבקשה הזו תניב מערך validationMessages ריק בתשובה, כמו שמוצג בקטע תגובת אימות.
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
app_instance_id: "APP_INSTANCE_ID",
validation_behavior: "ENFORCE_RECOMMENDATIONS",
events: [{
name: "level_up",
params: {
level: 2,
character: "MyHero"
},
}]
})
});
תגובת אימות
זוהי התגובה של שרת האימות לדוגמה של האירוע הלא תקין.
{
"validationMessages": [
{
"fieldPath": "events",
"description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
"validationCode": "NAME_INVALID"
}
]
}
זו התגובה של שרת האימות לבקשה שאין בה בעיות אימות:
{
"validationMessages": []
}
תשובה
| מפתח | סוג | תיאור |
|---|---|---|
validationMessages |
Array<ValidationMessage> | מערך של הודעות אימות. |
ValidationMessage
| מפתח | סוג | תיאור |
|---|---|---|
fieldPath |
מחרוזת | הנתיב לשדה שלא היה תקין. |
description |
מחרוזת | תיאור של השגיאה. |
validationCode |
ValidationCode | קוד אימות שמתאים לשגיאה. |
ValidationCode
| ערך | תיאור |
|---|---|
VALUE_INVALID |
הערך שצוין בשדה fieldPath לא תקין. לעיון במגבלות
|
VALUE_REQUIRED |
לא צוין ערך חובה בשדה fieldPath. |
NAME_INVALID |
השם שצוין לא תקין. לעיון במגבלות |
NAME_RESERVED |
השם שצוין הוא אחד מהשמות השמורים. שמות שמורים |
VALUE_OUT_OF_BOUNDS |
הערך שצוין גדול מדי. לעיון במגבלות |
EXCEEDED_MAX_ENTITIES |
היו יותר מדי פרמטרים בבקשה. לעיון במגבלות |
NAME_DUPLICATED |
אותו שם צוין יותר מפעם אחת בבקשה. |