ارسال مشخصات کاربر

ویژگی‌های کاربر، بخش‌هایی از پایگاه کاربری شما، مانند ترجیح زبان یا موقعیت جغرافیایی را توصیف می‌کند. آنالیتیکس به طور خودکار برخی از ویژگی‌های کاربر را ثبت می‌کند . اگر می‌خواهید ویژگی‌های اضافی را جمع‌آوری کنید، می‌توانید تا ۲۵ ویژگی کاربر اضافی را در هر پروژه تنظیم کنید. برای یادگیری نحوه تنظیم و ثبت ویژگی‌های کاربر، به ویژگی‌های کاربر سفارشی مراجعه کنید.

ویژگی‌های کاربر، تقسیم‌بندی کاربر را بهبود می‌بخشند، اما داده‌های ویژگی‌های کاربر اغلب فقط در سمت سرور در دسترس هستند. پروتکل اندازه‌گیری به شما امکان می‌دهد اندازه‌گیری‌های سمت کلاینت را با داده‌های سمت سرور تقویت کنید، که معمولاً با استفاده از راه‌حل‌های سمت کلاینت غیرممکن است.

نام‌های رزرو شده

برخی از نام‌های ویژگی‌های کاربر رزرو شده‌اند و نمی‌توان از آنها در اندازه‌گیری‌ها استفاده کرد:

  • 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 تکمیل می‌کند:

کد سرور

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 را گزارش می‌دهد.

برای جزئیات کامل در مورد نحوه ارسال رویدادها با استفاده از پروتکل اندازه‌گیری، به بخش ارسال رویدادها مراجعه کنید.

نادیده گرفتن مهر زمانی

پروتکل اندازه‌گیری از اولین برچسب زمانی که در لیست زیر برای هر ویژگی کاربر در درخواست پیدا می‌کند، استفاده می‌کند:

  1. timestamp_micros مربوط به ورودی در user_properties .
  2. timestamp_micros مربوط به درخواست.
  3. زمانی که پروتکل اندازه‌گیری درخواست را دریافت می‌کند.

مثال زیر یک مهر زمانی در سطح درخواست ارسال می‌کند که به تمام ویژگی‌های کاربر در درخواست اعمال می‌شود. در نتیجه، پروتکل اندازه‌گیری به هر دو ویژگی کاربر customer_tier و customer_group یک مهر زمانی از نوع requestUnixEpochTimeInMicros اختصاص می‌دهد.

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

مثال زیر هم یک برچسب زمانی در سطح درخواست و هم یک برچسب زمانی برای ویژگی کاربر customer_tier ارسال می‌کند. در نتیجه، پروتکل اندازه‌گیری، یک برچسب زمانی از نوع customerTierUnixEpochTimeInMicros به customer_tier و یک برچسب زمانی از نوع requestUnixEpochTimeInMicros customer_group اختصاص می‌دهد.

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