إرسال خصائص المستخدمين

تصف خصائص المستخدمين شرائح من قاعدة المستخدمين لديك، مثل اللغة المفضّلة أو الموقع الجغرافي. تُسجِّل "إحصاءات Google" بعض خصائص المستخدِمين تلقائيًا. إذا أردت جمع سمات إضافية، يمكنك إعداد ما يصل إلى 25 سمة مستخدم إضافية لكل مشروع. يمكنك الاطّلاع على خصائص المستخدمين المخصّصة لمعرفة كيفية ضبط خصائص المستخدمين وتسجيلها.

تساعد خصائص المستخدمين في تحسين عملية تقسيم المستخدمين، ولكنّ بيانات خصائص المستخدمين لا تتوفّر غالبًا إلا من جهة الخادم. يتيح لك Measurement Protocol زيادة القياسات من جهة العميل باستخدام البيانات من جهة الخادم، وهو أمر غير ممكن عادةً باستخدام الحلول من جهة العميل فقط.

الأسماء المحجوزة

بعض أسماء خصائص المستخدمين محجوزة ولا يمكن استخدامها في القياسات:

  • first_open_time
  • first_visit_time
  • last_deep_link_referrer
  • user_id
  • first_open_after_install

بالإضافة إلى ذلك، لا يمكن أن تبدأ أسماء خصائص المستخدمِين بما يلي:

  • google_
  • ga_
  • firebase_

مثال على الاستخدام

في المثال التالي، يتضمّن نظام إدارة علاقات العملاء سمة مستخدم (customer_tier) تريد إضافتها إلى قياساتك. يمكن ضبط customer_tier على premium أو standard. للحصول على موقع المستخدم هذا في تقاريرك، عليك إجراء ما يلي:

أولاً، اطلب من العميل إرسال حدث add_payment_info مع طلب إلى واجهة برمجة تطبيقات للخادم يمكنها الوصول إلى نظام إدارة علاقات العملاء:

رمز العميل

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 طابعًا زمنيًا بقيمة customerTierUnixEpochTimeInMicros لـ customer_tier، وطابعًا زمنيًا بقيمة requestUnixEpochTimeInMicros لـ customer_group.

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