ارسال مشخصه‌های کاربر

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

مشخصه‌های کاربر بخش‌بندی کاربر را بهبود می‌بخشد، اما داده‌های مشخصه کاربر اغلب فقط در سمت سرور دردسترس است. ‫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 را به‌همراه فراخوانی به میانای برنامه‌سازی کاربردی سرور که به سیستم 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 را گزارش می‌کند.

برای جزئیات کامل درباره نحوه ارسال رویدادها بااستفاده از 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
    }
}