בוחרים את הפלטפורמה הרלוונטית:
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 |
אותו שם צוין יותר מפעם אחת בבקשה. |