שליחה של מאפייני משתמש

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

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

שמות שמורים

חלק מהשמות של מאפייני המשתמשים שמורים ואי אפשר להשתמש בהם במדידות:

  • first_open_time
  • first_visit_time
  • last_deep_link_referrer
  • user_id
  • first_open_after_install

בנוסף, שמות של מאפייני משתמשים לא יכולים להתחיל ב:

  • google_
  • ga_
  • firebase_

דוגמה לשימוש

בדוגמה הבאה, למערכת ה-CRM יש מאפיין משתמש (customer_tier) שאתם רוצים להוסיף למדידות. אפשר להגדיר את customer_tier לאחד מהערכים premium או standard. כדי להציג את מאפיין המשתמש הזה בדוחות, צריך לבצע את הפעולות הבאות:

קודם כול, הלקוח צריך לשלוח אירוע add_payment_info יחד עם קריאה ל-API של השרת שיש לו גישה למערכת לניהול קשרי הלקוחות (CRM):

קוד לקוח

FirebaseAnalytics.logEvent("add_payment_info")
ServerAPI.addCustomerTier(
  FirebaseAnalytics.getAppInstanceId(),
  "[{name: \"add_payment_info\"}"]
);

לאחר מכן, השרת מוסיף למדידה את מאפיין המשתמש customer_tier באמצעות Measurement Protocol:

קוד השרת

const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";

function addCustomerTier(appInstanceId, events) {

  // Request the customer tier from the CRM.
  const customerTier = getCustomerTier(appInstanceId);

  const queryParams = `?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`;
  fetch(`https://www.google-analytics.com/mp/collect${queryParams}`, {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "app_instance_id": "APP_INSTANCE_ID",
      "user_properties": {
        "customer_tier": {
          "value": "CUSTOMER_TIER"
        }
      },
      "events": JSON.parse(events)
    })
  });
}

מאפיין המשתמש הזה מדווח על שני הפלחים premium ו-standard.

במאמר שליחת אירועים מוסבר איך שולחים אירועים באמצעות Measurement Protocol.

שינוי חותמת הזמן

‫Measurement Protocol משתמש בחותמת הזמן הראשונה שהוא מוצא ברשימה הבאה לכל מאפיין משתמש בבקשה:

  1. ה-timestamp_micros של הרשומה ב-user_properties.
  2. timestamp_micros של הבקשה.
  3. השעה שבה הבקשה התקבלה ב-Measurement Protocol.

בדוגמה הבאה נשלחת חותמת זמן ברמת הבקשה, שחלה על כל מאפייני המשתמש בבקשה. כתוצאה מכך, Measurement Protocol מקצה למאפייני המשתמש customer_tier ו-customer_group את חותמת הזמן requestUnixEpochTimeInMicros.

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "user_properties": {
      "customer_tier": {
        "value": customerTierValue
      },
      "customer_group": {
        "value": customerGroupValue
      }
  }
}

בדוגמה הבאה נשלחות גם חותמת זמן ברמת הבקשה וגם חותמת זמן של מאפיין המשתמש customer_tier. כתוצאה מכך, Measurement Protocol מקצה ל-customer_tier את חותמת הזמן customerTierUnixEpochTimeInMicros, ול-customer_group את חותמת הזמן requestUnixEpochTimeInMicros.

"timestamp_micros": requestUnixEpochTimeInMicros,
"user_properties": {
    "customer_tier": {
      "value": customerTierValue,
      "timestamp_micros": customerTierUnixEpochTimeInMicros
    },
    "customer_group": {
      "value": customerGroupValue
    }
}