屬性值上報時,可以同時上報多個,例如商品類型可以為母嬰、食品和水果。針對這類需求QuickTracking提供了字串群組類型屬性,本文檔主要介紹了此類型屬性的上報和分析方法。
字串組僅支援事件屬性、全域屬性和使用者屬性
1 使用情境
在使用者購買商品時,需要對客戶的瀏覽、添加購物車和結算行為進行埋點,常見的埋點方案如下:
頁面名稱 | 頁面編碼 | 事件名稱 | 事件編碼 | 屬性名稱 | 屬性key | 屬性類型 |
商品頁瀏覽 | goods_page | 商品頁瀏覽 | goods_page | 商品名稱 | goods_name | 字串 |
商品類型 | goods_type | 字串組 | ||||
商品價格 | goods_price | 數值 | ||||
購物車點擊 | trolley_clk | 商品名稱 | goods_name | 字串 | ||
商品類型 | goods_type | 字串組 | ||||
商品價格 | goods_price | 數值 | ||||
結算點擊 | pay_clk | 商品名稱 | goods_name | 字串 | ||
商品類型 | goods_type | 字串組 | ||||
商品價格 | goods_price | 數值 |
其中「商品類型」為字串組,因為在一件商品的類型會有多種,例如瓜子:
商品名稱:瓜子
商品類型:堅果、零食、加工食品
商品價格:12.00
那麼,在埋點上報時就需要在屬性key“goods_type”中同時寫入“堅果”、“零食”、“加工食品”,此類型的屬性即為字串組。具體上報的方式和分析方式可見下文。
2 屬性管理
在上報前,務必提前15分鐘對屬性進行管理:在“資料擷取-埋點管理-屬性管理”模組中,管理屬性類型為“字串組”,否則將會無法解析落庫。


3 上報方式
在上報前,務必提前15分鐘對屬性進行管理:在“資料擷取-埋點管理-屬性管理”模組中,管理屬性類型為“字串組”,否則將會無法解析落庫。
在SDK上報中,您需要將多個屬性值按照以下格式拼接為一個字串進行上報。如果不符合以下格式,將會解析失敗,無法分析出結果。
"String_arrayString": "['堅果','零食']"
"String_arrayInt": "[1,2]"
"String_arrayBoolean": "[true,false]"
"String_arrayString": ["堅果","零食"]
"String_arrayInt": [1,2]
"String_arrayBoolean": [true,false]上報格式 | 格式處理 |
| 標準上報格式 |
| 會被強制轉為字串組"['1','2']",錯誤上報格式,雖可以相容將數值部分改為字串,但盡量不要進行此類型上報。 |
| 會被強制轉為字串組"['true','false']",錯誤上報格式,雖可以相容布爾部分改為字串,但盡量不要進行此類型上報。(注意,不支援全大寫或者首字母大寫!!!) |
使用 Android自訂事件埋點為例:
Map<String, Object> goods = new HashMap<String, Object>();
goods.put("goods_name", "瓜子");//商品名稱-瓜子
goods.put("goods_type", "['堅果','零食','加工食品']"); //商品類型-堅果、零食、加工食品
goods.put("goods_price",12); //價格:12元
QtTrackAgent.onEventObject(this, "pay_clk", goods, "goods_page");或使用如下方式:
Map<String, Object> goods = new HashMap<>();
goods.put("goods_name", "瓜子");//商品名稱-瓜子
String[] type_property = {"堅果", "零食", "加工食品"};
goods.put("goods_type", type_property);//商品類型-堅果、零食、加工食品
goods.put("goods_price", 12);//價格:12元
MobclickAgent.onEventObject(mContext, "pay_clk", goods);使用 iOS自訂事件埋點為例:
NSDictionary *dict = @{@"goods_name" : @"瓜子", @"goods_type" : @"['堅果','零食','加工食品']",@"goods_price" : @12};
[QTMobClick event:@"pay_clk" pageName:@"goods_page" attributes:dict];或使用如下方式:
[QTMobClick event:@"pay_clk" attributes:@{
@"goods_name" : @"瓜子",
@"goods_price" : @12,
@"goods_type": @[@"堅果", @"零食", @"加工食品"]
}];使用小程式自訂事件埋點為例:
aplus.record('pay_clk', 'CLK', {
goods_name: '瓜子',
goods_type: ['堅果','零食','加工食品'],
goods_price: 12,
page_name: "goods_page",
});使用 Web/H5 自訂事件埋點為例:
aplus.record('pay_clk', 'CLK', {
goods_name: '瓜子',
goods_type: ['堅果','零食','加工食品'],
goods_price: 12,
page_name: "goods_page",
});4 分析方式
字串組分析方式共分為兩種:
單一值:其含義為將上報字串組內的每一個單一值進行拆解後再分析,例如上文中所描述的['堅果','零食','加工食品'],單一值即表示“堅果”、“零食”、“加工食品”,可針對其中某一個值進行分析。
原始值:其含義為上報字串組變為一個整體的字串進行分析,例如上文中所描述的['堅果','零食','加工食品'],原始值即為"['堅果','零食','加工食品']"。
4.1 支援的分析模型
選擇指標:事件分析、屬性分析和人群建立時,支援在選擇指標時選擇字串組單一值,其他模型僅支援原始值。

選擇分組:事件分析、屬性分析和人群建立時,支援在選擇分組時選擇字串組單一值,其他模型僅支援原始值。
添加篩選:事件分析、漏鬥分析、分布分析、留存分析、間隔分析、路徑分析、歸因分析、屬性分析、人群建立中支援選擇字串組單一值進行篩選。字串組單一值篩選的規則僅支援:等於、不等於。
案例:一商鋪今日多名顧客下單,下單內容如下:
A顧客下單瓜子:
商品名稱:瓜子
商品類型:堅果、零食、加工食品
商品價格:12.00
B顧客下單山楂:
商品名稱:山楂
商品類型:甜品、零食、加工食品
商品價格:5.00
C顧客下單開瓶器:
商品名稱:開瓶器
商品類型:工具、不鏽鋼
商品價格:18.00
則按照「商品類型」單一值對購買人數分組時,分組結果如下:
堅果:1人
零食:2人
加工食品:2人
甜品:1人
工具:1人
不鏽鋼:1人
按照「商品類型」原始值對購買人數分組時,分組結果如下:
[堅果、零食、加工食品]:1人
[甜品、零食、加工食品]:1人
[工具、不鏽鋼]:1人
4.2 分組中有值、無值說明
原始值無值:
轉化不成數組
轉化數組後數組值僅有Null 字元串、Null 物件
key沒有上報
單一值無值:
轉化為數組後,單一值僅存在Null 字元串或Null 物件
以分析屬性b為例,具體結果如下:
編號 | 範例(ClickHouse資料庫儲存) | b的原始值 | 原始值是否有值 | 單一值是否有值 | 原始值分組展示 | 單一值分展示 |
1 | {"a": "hello", "c": 123} | NULL | 否 | 否 | Null 物件(預置) | Null 物件(預置) |
2 | {"a": "hello", "b": 123} | 123 | 否 | 否 | Null 物件(預置) | Null 物件(預置) |
3 | {"a": "hello", "b": "s"} | "s" | 否 | 否 | Null 物件(預置) | Null 物件(預置) |
4 | {"a": "hello", "b": ""} | "" | 否 | 否 | Null 物件(預置) | Null 物件(預置) |
6 | {"b": ["堅果", "零食", "加工食品"]} | ['堅果','零食','加工食品'] | 是 | 是*3 | ['堅果','零食','加工食品'] | 堅果 零食 加工食品 |
7 | { "b": [null,""]} | [null,''] | 否 | 否 | Null 物件(預置) | Null 物件(預置) |
8 | {"b": "[]"} | [] | 否 | 否 | Null 物件(預置) | Null 物件(預置) |
9 | {"b": [""]} | [''] | 否 | 否 | Null 字元串(預置) | Null 字元串(預置) |
9 | {"b": ["", "零食", "加工食品"]} | ['','零食','加工食品'] | 是 | 是*2,否*1 | ['','零食','加工食品'] | Null 字元串(預置) 零食 加工食品 |
10 | {"b": [null, "零食", "加工食品"]} | [null, "零食", "加工食品"] | 是 | 是*2,否*1 | [null, "零食", "加工食品"] | Null 物件(預置) 零食 加工食品 |
5 使用者屬性上報為空白是否覆蓋
若您上報使用者A的使用者屬性「使用者偏好——user_preferences」為:
"user_preferences":"['精靈少女','超級買手']"後又上報
"user_preferences":"[]"
"user_preferences":"[null]"QuickTracking會認為是無效上報,將不會對使用者屬性進行覆蓋更新,您上傳如下格式,才會將使用者屬性置為空白:
"user_preferences":"['']"