設置用戶屬性

調用地址

POST /v1/user/property

調用驗證

EngageLab REST API 採用 HTTP 基本認證 的驗證方式:HTTP Header(頭)里加 Authorization:

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
此代碼塊在浮窗中顯示

上述 base64_auth_string 的生成算法為:base64(api_key:api_secret)

  • Header 名稱是 "Authorization",值是 base64 轉換過的 "username:password" 對(中間有個冒號)。
  • 在 MA API 的場景里,username 是 APIKey,password 是 APISecret。請在數據來源中添加 API 類型的數據源獲得 APIKey 與 API Secret。

請求示例

請求頭

> POST /v1/user/property > Content-Type: application/json > Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
              
              > POST /v1/user/property
> Content-Type: application/json
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==

            
此代碼塊在浮窗中顯示

請求體

{ "euid":10362473, "type": "set", "properties":{ "user_number_once":46.2, //用戶屬性名稱和屬性值 "user_string_once":"refef", "user_datetime_once": "2023-12-12 00:56:23" } }
              
              {
    "euid":10362473,
    "type": "set",
    "properties":{
        "user_number_once":46.2, //用戶屬性名稱和屬性值
        "user_string_once":"refef",
        "user_datetime_once": "2023-12-12 00:56:23"
    }
}

            
此代碼塊在浮窗中顯示

請求參數

字段 類型 必填 描述
euid Long EngageLab MA 用戶唯一ID
type String 對屬性進行更新的操作類型
properties JSON 用戶屬性列表,key 是屬性名,value 是屬性值

操作類型說明

同一請求中的所有屬性使用相同的 type。支援 setincreaseaddremovedeletesetOnceupdate

操作 適用屬性類型 說明
set 所有類型 更新屬性值;object_array 必須傳物件陣列並覆蓋原陣列。
increase 數字 將傳入數值累加至現有值;屬性不存在時以 0 為初始值。
add 清單、物件陣列 清單追加並去重;物件陣列追加一個物件。
remove 清單、物件陣列 清單移除傳入元素;物件陣列依標識欄位移除一個物件。
delete 所有類型 刪除該屬性的全部值。
setOnce 所有類型 僅在屬性尚未設定時寫入。
update 物件陣列 依標識欄位局部更新一個物件陣列元素。

物件陣列操作

對於 object_array 屬性,add 的屬性值為單一 JSON 物件;set 的屬性值為 JSON 物件陣列。removeupdate 透過 $identifier_key$identifier_value 定位元素;標識欄位必須是該屬性已定義的 stringnumber 子欄位。

remove 的屬性值只能包含這兩個標識欄位:

{ "euid": 10362473, "type": "remove", "properties": { "devices": { "$identifier_key": "device_id", "$identifier_value": "ios-001" } } }
              
              {
  "euid": 10362473,
  "type": "remove",
  "properties": {
    "devices": {
      "$identifier_key": "device_id",
      "$identifier_value": "ios-001"
    }
  }
}

            
此代碼塊在浮窗中顯示

update 還必須提供非空的 $new_object$new_object 不得包含標識欄位;值為 null 的欄位會從匹配元素中移除。標識條件必須恰好匹配一個陣列元素。

{ "euid": 10362473, "type": "update", "properties": { "devices": { "$identifier_key": "device_id", "$identifier_value": "ios-001", "$new_object": { "model": "iPhone 16", "legacy_field": null } } } }
              
              {
  "euid": 10362473,
  "type": "update",
  "properties": {
    "devices": {
      "$identifier_key": "device_id",
      "$identifier_value": "ios-001",
      "$new_object": {
        "model": "iPhone 16",
        "legacy_field": null
      }
    }
  }
}

            
此代碼塊在浮窗中顯示

返回參數

字段 類型 必填 描述
code Int 接口調用是否成功,0 表示成功或者部分成功,其他值代表失敗
message String 接口調用結果描述,對返回碼的說明

全部成功

{ "code": 0, "message": "success" }
              
              {
    "code": 0,
    "message": "success"
}

            
此代碼塊在浮窗中顯示

全部失敗

{ "code": 55102, "message": "Invalid user attributes exist" }
              
              {
    "code": 55102,
    "message": "Invalid user attributes exist"
}

            
此代碼塊在浮窗中顯示

錯誤碼

錯誤碼

錯誤碼 描述 詳細說明
40050 I接口鑒權失敗 確認項目ID和項目密鑰是否正確
40007 EUID為空 請檢查 EUID 的值
50031 項目 ID 非法 請檢查 APIKey 和 APISecret 是否正確
50034 項目 ID 不存在 請檢查 APIKey 和 APISecret 是否正確,檢查項目是否已被刪除
50074 API 數據源不存在 請檢查 APIKey 和 APISecret 是否正確,請檢查 API 數據源是否已被刪除
55004 業務參數不合法 請檢查請求參數字段是否正確
55101 用戶標識個數超限 確認用戶標識的值的數量是否超過 100 個
55102 存在無效的用戶屬性名稱 確認屬性名稱是否符合命名要求,是否為空/用到了保留字符/超過長度限制
55103 用戶屬性值不能為空 確認請求體中用戶屬性的值是否為空
55105 用戶標識的 value 值不能超過 256 個字符 確認用戶標識的值是否超過256個字符
55106 用戶標識的名稱不在支持範圍內 確認用戶標識的名稱是否是 user_id、 anonymous_id、registration_id
55107 用戶標識的 value 值為空 確認請求體中用戶標識的值是否為空
55108 無效的 EUID 請檢查 EUID 的值
-1 服務器內部錯誤 請聯繫 EngageLab 技術支持
Icon Solid Transparent White Qiyu
聯繫銷售