Composition Analysis model API
For how to call the API, see the calling method described in the Open API document.
To learn about use cases, read Composition Analysis in the user guide.
1. Composition Analysis query
Endpoint URL
/open/user-prop-analyze?token=xxx
Request method
POST
Content-Type
application/json
Request query parameters
| Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| token | xxx | String | Yes | Query key |
Request body parameters
{
"eventView": {
"userCrowds": [
{
"crowdName": "Female",
"filts": [
{
"columnDesc": "Gender",
"columnName": "gender",
"comparator": "equal",
"filterType": "SIMPLE",
"ftv": [
"Female"],
"specifiedClusterDate": "2022-01-27",
"tableType": "user",
"timeUnit": ""
}],
"relation": "and"
},
{
"crowdName": "Male",
"filts": [
{
"columnDesc": "Gender",
"columnName": "gender",
"comparator": "equal",
"filterType": "SIMPLE",
"ftv": [
"Male"],
"specifiedClusterDate": "2022-01-27",
"tableType": "user",
"timeUnit": ""
}],
"relation": "and"
},
{
"crowdName": "Gender Unknown",
"filts": [
{
"columnDesc": "Gender",
"columnName": "gender",
"comparator": "equal",
"filterType": "SIMPLE",
"ftv": [
"Unknown"],
"specifiedClusterDate": "2022-01-27",
"tableType": "user",
"timeUnit": ""
}],
"relation": "and"
}]
},
"events": [
{
"analysis": "SUM",
"analysisDesc": "Sum",
"eventNameDisplay": "Total Balance",
"filts": [
{
"columnDesc": "Balance",
"columnName": "accountbalance",
"comparator": "greater",
"filterType": "SIMPLE",
"ftv": [
"1"],
"specifiedClusterDate": "2022-01-27",
"tableType": "user",
"timeUnit": ""
}],
"quota": "accountbalance",
"relation": "and",
"tableType": "user"
}],
"projectId": 377,
"limit": 10,
"timeoutSeconds": 10,
"useCache": true
}
Request parameters
| $$Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| eventView | - | Object | Yes | Group-by properties |
| eventView.userCrowds | - | Object | No | User groups |
| eventView.userCrowds.crowdName | Female | String | Yes | User group name |
| eventView.userCrowds.filts | - | List | Yes | Filter objects |
| eventView.userCrowds.filts.columnDesc | Gender | String | No | Field display name |
| eventView.userCrowds.filts.columnName | gender | String | Yes | Field name |
| eventView.userCrowds.filts.comparator | equal | String | Yes | See Filter expressions in the Query API |
| eventView.userCrowds.filts.filterType | SIMPLE | String | No | Filter mode. SIMPLE: simple, COMPOUND: compound |
| eventView.userCrowds.filts.ftv | ["Female"] | List | No | Literal constants used as boundaries for property comparison |
| eventView.userCrowds.filts.specifiedClusterDate | 2022-01-27 | String | No | Uses the historical version of the tag for the specified date |
| eventView.userCrowds.filts.tableType | user | String | Yes | Table type enum values |
| eventView.userCrowds.filts.timeUnit | String | No | Time unit of the filter | |
| eventView.userCrowds.relation | and | String | Yes | Logical relation. and: logical AND, or: logical OR |
| events | - | List | Yes | List of event metrics |
| events.analysis | SUM | String | Yes | Analysis type |
| events.analysisDesc | Sum | String | No | Description of the analysis type (display name) |
| events.eventNameDisplay | Total Balance | String | No | Event display name |
| events.filts | - | List | No | List of conditions |
| events.filts.columnDesc | Balance | String | No | Field display name |
| events.filts.columnName | accountbalance | String | Yes | Field name |
| events.filts.comparator | greater | String | Yes | See Filter expressions in the Query API |
| events.filts.filterType | SIMPLE | String | No | Filter mode. SIMPLE: simple, COMPOUND: compound |
| events.filts.ftv | ["1"] | List | No | Literal constants used as boundaries for property comparison |
| events.filts.specifiedClusterDate | 2022-01-27 | String | No | Uses the historical version of the tag for the specified date |
| events.filts.tableType | user | String | Yes | Table type enum values |
| events.filts.timeUnit | String | No | Time unit of the filter | |
| events.quota | accountbalance | String | No | Logical relation. and: logical AND, or: logical OR |
| events.relation | and | String | No | Logical relation. and: logical AND, or: logical OR |
| events.tableType | user | String | Yes | Table type enum values |
| projectId | 377 | Integer | Yes | Project ID |
| limit | 10 | Integer | No | Maximum number of groups per analysis object. Optional. Defaults to 1000, with a maximum of 10000 |
| timeoutSeconds | 10 | Integer | No | Request timeout. The query task is canceled when it times out |
| useCache | true | Boolean | Yes | true means the cache is used |
Success response example
{
"data": {
"data_list": [
{
"group_cols": [
"Female"
],
"values": 1140523491
},
{
"group_cols": [
"Male"
],
"values": 1141720850
},
{
"group_cols": [
"Gender Unknown"
],
"values": 227565607
}
],
"group_cols_sorted": [
[
"Female",
"Male",
"Gender Unknown"
]
],
"group_num": 0,
"result_generate_time": "2022-01-27 15:01:51",
"unit": ""
},
"return_code": 0,
"return_message": "success"
}
Response parameters
| $$Parameter name | Example value | Parameter type | Description |
|---|---|---|---|
| return_code | 0 | Integer | Return code |
| return_message | success | String | Return message |
| data | - | Object | Returned result |
| data.data_list | - | List | Data list |
| data.data_list.group_cols | ["Female"] | List | List of groups or user groups |
| data.data_list.values | 1140523491 | Integer | Number of users |
| data.group_cols_sorted | ["Female"] | List | Ordered list of all groups or user groups |
| data.group_num | 0 | Integer | Number of groups |
| data.result_generate_time | 2022-01-27 15:01:51 | String | Result generation time |
| data.unit | String | Unit of the numeric property |
Error response example
{
"return_code": -1008,
"return_message": "Parameter (token) is empty"
}
| Parameter name | Example value | Parameter type | Description |
|---|---|---|---|
| return_code | -1008 | Integer | Return code |
| return_message | Parameter (token) is empty | String | Return message |
2. Composition Analysis full download
Endpoint URL
/open/streaming-download/user-prop-analyze?token=xxx
Request method
POST
Content-Type
application/json
Request query parameters
| Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| token | xxx | String | Yes | Query key |
Request body parameters
{
"eventView": {
"groupBy": [{
"columnDesc": "Channel",
"columnName": "channel",
"propertyRange": "",
"specifiedClusterDate": "2022-03-10",
"tableType": "user"
}],
"userCrowds": []
},
"events": [{
"analysis": "TRIG_USER_NUM",
"analysisDesc": "User Number",
"eventNameDisplay": "",
"filts": [{
"columnDesc": "Account ID",
"columnName": "#account_id",
"comparator": "notNull",
"filterType": "SIMPLE",
"ftv": [],
"specifiedClusterDate": "2022-03-10",
"tableType": "user",
"timeUnit": ""
}],
"quota": "",
"relation": "and",
"tableType": "user"
}],
"projectId": 390
}
Request parameters
| $$Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| eventView | - | Object | Yes | Same as the parameters of the Composition Analysis query API |
| events | - | List | Yes | Same as the parameters of the Composition Analysis query API |
| projectId | 377 | Integer | Yes | Project ID |
Response
Same as the Composition Analysis full download in AE
3. Composition Analysis user list
Endpoint URL
/open/user-prop-user-list?token=xxx
Request method
POST
Content-Type
application/json
Request query parameters
| Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| token | xxx | String | Yes | Query key |
| projectId | 0 | Integer | Yes | Project ID |
Request body parameters
{
"projectId": 0,
"events": [{
"analysis": "AVG",
"filts": [
{
"columnName": "latest_login_time",
"comparator": "relativeCurrentBetween",
"ftv": [
"7",
"1"
],
"tableType": "user"
}
],
"quota": "diamond_num",
"relation": "and",
"tableType": "user"
}],
"eventView": {
"groupBy": [
{
"columnName": "user_level",
"tableType": "user"
},
{
"columnName": "channel",
"tableType": "user"
}
]
},
"sliceGroupVal": [
"31",
"app store"
],
"timeoutSeconds": 10
}
Request parameters
| $$Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| projectId | 0 | Integer | Yes | Project ID |
| events | - | List | Yes | Same as the parameters of the Composition Analysis query API |
| eventView | - | Object | Yes | Same as the parameters of the Composition Analysis query API |
| sliceGroupVal | ["31","app store"] | List | No | Group to drill down into |
| eventIndex | 0 | Integer | Yes | Index of the user group in group comparison, starting from 0 |
| timeoutSeconds | 10 | Integer | No | Request timeout. The query task is canceled when it times out |
Success response example
{
"data": {
"datalist": [
{
"#account_id": "b6909071",
"#distinct_id": "b12831131",
"user_level": 31,
"register_time": "2019-09-23 09:33:31",
"diamond_num": 1250,
"first_recharge_time": "2019-11-18 08:50:33",
"latest_login_time": "2019-11-26 18:15:51",
"channel": "app store",
"#user_id": 2961031
},
{
"#account_id": "a6013000",
"#distinct_id": "a11167000",
"user_level": 31,
"register_time": "2019-09-02 19:15:08",
"diamond_num": 72,
"first_recharge_time": "2019-09-02 19:18:36",
"latest_login_time": "2019-11-24 10:02:38",
"channel": "app store",
"#user_id": 2577000
},
{
"#account_id": "j2614535",
"#distinct_id": "j4855535",
"user_level": 31,
"register_time": "2019-08-24 20:40:19",
"diamond_num": 820,
"latest_login_time": "2019-11-21 14:16:42",
"channel": "app store",
"#user_id": 1120535
}
],
"columMeta": {
"#account_id": "Account ID",
"#distinct_id": "Distinct ID",
"user_level": "User Level",
"register_time": "Registration Time",
"diamond_num": "Current Diamonds",
"first_recharge_time": "First Top-up Time",
"latest_login_time": "Last Login Time",
"channel": "Channel"
}
},
"return_code": 0,
"return_message": "success"
}
Response parameters
| $$Parameter name | Example value | Parameter type | Description |
|---|---|---|---|
| return_code | 0 | Integer | Return code |
| return_message | success | String | Return message |
| data | - | Object | Returned result |
| data.datalist | - | List<Map> | User information |
| data.columMeta | - | Map | Mapping of field meanings |
Error response example
{
"return_code": -1008,
"return_message": "Parameter (token) is empty"
}
| Parameter name | Example value | Parameter type | Description |
|---|---|---|---|
| return_code | -1008 | Integer | Return code |
| return_message | Parameter (token) is empty | String | Return message |
4. Composition Analysis user list download
Endpoint URL
/open/streaming-download/user-prop-user-list?token=xxx
Request method
POST
Content-Type
application/json
Request query parameters
| Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| token | xxx | String | Yes | Query key |
| projectId | 0 | Integer | Yes | Project ID |
Request body parameters
{
"eventView": {
"endTime": "2022-03-08 16:14:02",
"groupBy": [],
"recentDay": "",
"startTime": "2022-03-08 16:14:02",
"userCrowds": [{
"crowdName": "Group 1",
"filts": [],
"relation": "and"
}, {
"crowdName": "Group 2",
"filts": [],
"relation": "and"
}]
},
"events": [{
"analysis": "TRIG_USER_NUM",
"analysisDesc": "User Number",
"eventNameDisplay": "",
"filts": [{
"columnDesc": "Account ID",
"columnName": "#account_id",
"comparator": "notNull",
"filterType": "SIMPLE",
"ftv": [],
"specifiedClusterDate": "2022-03-08",
"tableType": "user",
"timeUnit": ""
}],
"quota": "",
"relation": "and",
"tableType": "user"
}],
"projectId": 319,
"sliceGroupVal": ["Group 2"],
"eventIndex": 0,
"selectedColumns": ["#account_id", "#distinct_id", "accountid"]
}
Request parameters
| $$Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| projectId | 0 | Integer | Yes | Project ID |
| events | - | List | Yes | Same as the parameters of the Composition Analysis query API |
| eventView | - | Object | Yes | Same as the parameters of the Composition Analysis query API |
| sliceGroupVal | ["31","app store"] | List | No | Group to drill down into |
| eventIndex | 0 | Integer | Yes | Index of the user group in group comparison, starting from 0 |
| selectedColumns | ["#account_id"] | array | Yes | Columns to download |
Response
Same as the Composition Analysis user list download in AE
5. User event list query
Endpoint URL
/open/user-event-list?token=xxx
Request method
POST
Content-Type
application/json
Request query parameters
| Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| token | xxx | String | Yes | Query key |
Request body parameters
{
"eventNames": [
"payment",
"level_up",
"activity_attend",
"draw_card",
"register",
"logout",
"login",
"gold_get",
"gold_consume"
],
"pagerHeader": {
"pageNum": 1,
"pageSize": 2
},
"projectId": 377,
"startDateTime": ["2021-11-04 00:00:00"],
"dateFormat": "week",
"firstDayOfWeek": 1,
"userId": 795687603434164226,
"timeoutSeconds": 10,
"useCache": true,
"zoneOffset": 8
}
Request parameters
| $$Parameter name | Example value | Parameter type | Required | Description |
|---|---|---|---|---|
| eventNames | ["payment"] | List | Yes | List of included events |
| pagerHeader | - | Object | Yes | Common pagination request header |
| pagerHeader.pageNum | 1 | Long | No | Start page |
| pagerHeader.pageSize | 2 | Long | No | Items per page |
| projectId | 377 | Integer | Yes | Project ID |
| startDateTime | ["2021-11-04 00:00:00"] | List | No | List of start times, yyyy-MM-dd HH:mm:ss |
| dateFormat | week | String | Yes | Time dimension unit
|
| firstDayOfWeek | 1 | Integer | No | First day of the week |
| userId | 795687603434164226 | Long | Yes | User ID of the analysis target |
| timeoutSeconds | 10 | Integer | No | Request timeout. The query task is canceled when it times out |
| useCache | true | Boolean | Yes | true means the cache is used |
| zoneOffset | 10 | Integer | No | Time zone |
Success response example
{
"data": {
"columnDescMeta": {
"network": "Network Type",
"ip": "IP",
"browser": "Browser",
"browser_version": "Browser Version",
"manufacturer": "Manufacturer",
"#lib": "SDK Type",
"channel": "Source Channel",
"platform": "Platform",
"serverid": "Server ID",
"device_type": "Device Type",
"#lib_version": "SDK Version",
"os_version": "OS Version",
"app_version": "App Version",
"os": "OS",
"lib": "Runtime Library",
"level": "User Level",
"model": "Device Model",
"screen_height": "Screen Height",
"carrier_name": "Carrier",
"vip_level": "VIP Level",
"brand": "Brand",
"currency_type": "Currency",
"pay_amount": "Revenue",
"diamond_get_amount": "Diamonds Obtained",
"payment_name": "Bundle Name",
"is_first_pay": "First Payment",
"#country_code": "Country/Region Code",
"#ip": "Client IP",
"#city": "City",
"#province": "Province",
"#country": "Country/Region",
"screen_width": "Screen Width",
"device_id": "Device ID",
"#zone_offset": "Time Zone Offset"
},
"eventNameDescMeta": {
"anyEvent": "Any Event",
"activity_attend": "Attend Activity",
"draw_card": "Gacha",
"gold_consume": "Gold Consumption",
"gold_get": "Get Gold",
"level_up": "Level Up",
"login": "Login",
"logout": "User Logout",
"payment": "Payment Event",
"register": "Register"
},
"resultGenerateTime": "2022-01-27 15:46:08",
"userEventSeqList": [
{
"event_name": "login",
"properties": {
"#event_time": "2021-11-04 15:59:39.179",
"network": "WIFI",
"ip": "27.17.30.245",
"browser": "Safari",
"browser_version": "Safari 11.0.3",
"manufacturer": "Apple",
"#lib": "easydata",
"channel": "Baidu",
"platform": "WeGame Platform",
"serverid": "10",
"device_type": "desktop",
"#lib_version": "1.0",
"os_version": "iOS 11.4",
"app_version": "V1.0",
"os": "iOS",
"lib": "JS",
"level": "93",
"model": "iPhone X",
"screen_height": "681",
"carrier_name": "China Unicom",
"vip_level": "1",
"brand": "Apple",
"#country_code": "",
"#ip": "localhost",
"#city": "Unknown",
"#province": "Unknown",
"#country": "Unknown",
"screen_width": "360",
"device_id": "47BjM",
"#zone_offset": "-5"
},
"time": "2021-11-04 15:59:39.179"
},
{
"event_name": "payment",
"properties": {
"#event_time": "2021-11-04 15:59:46.179",
"network": "WIFI",
"ip": "27.17.30.245",
"browser": "Safari",
"browser_version": "Safari 11.0.3",
"manufacturer": "Apple",
"#lib": "easydata",
"channel": "Baidu",
"platform": "WeGame Platform",
"serverid": "10",
"device_type": "desktop",
"#lib_version": "1.0",
"os_version": "iOS 11.4",
"app_version": "V1.0",
"os": "iOS",
"lib": "JS",
"level": "93",
"model": "iPhone X",
"screen_height": "681",
"carrier_name": "China Unicom",
"vip_level": "1",
"brand": "Apple",
"currency_type": "Points",
"pay_amount": "536",
"diamond_get_amount": "7485",
"payment_name": "Earth Lord Bundle",
"is_first_pay": false,
"#country_code": "",
"#ip": "localhost",
"#city": "Unknown",
"#province": "Unknown",
"#country": "Unknown",
"screen_width": "360",
"device_id": "47BjM",
"#zone_offset": "-5"
},
"time": "2021-11-04 15:59:46.179"
}
]
},
"return_code": 0,
"return_message": "success"
}
Response parameters
| $$Parameter name | Example value | Parameter type | Description |
|---|---|---|---|
| return_code | 0 | Integer | Return code |
| return_message | success | String | Return message |
| data | - | Object | Returned result |
| data.columnDescMeta | - | Map | Property name mapping |
| data.eventNameDescMeta | - | Map | Event name |
| data.resultGenerateTime | 2022-01-27 15:46:08 | String | Result generation time |
| data.userEventSeqList | - | List | User sequence list |
| data.userEventSeqList.event_name | login | String | Event name |
| data.userEventSeqList.properties | - | Map | Event property details |
| data.userEventSeqList.time | 2021-11-04 15:59:46.179 | String | Time |
Error response example
{
"return_code": -1008,
"return_message": "Parameter (token) is empty"
}
| Parameter name | Example value | Parameter type | Description |
|---|---|---|---|
| return_code | -1008 | Integer | Return code |
| return_message | Parameter (token) is empty | String | Return message |
Composition Analysis common enums
Composition Analysis aggregation type enum values
| Value | Description | Requires property |
|---|---|---|
| TRIG_USER_NUM | Uniques | No |
| SUM | Sum | Yes |
| AVG | Average | Yes |
| MAX | Maximum | Yes |
| MIN | Minimum | Yes |
| DISTINCT | Deduplication | Yes |
| TRUE | True totals | Yes |
| FALSE | False totals | Yes |
| IS_NOT_EMPTY | Not null totals | Yes |
| IS_EMPTY | Null totals | Yes |
| ARRAY_DISTINCT | Deduplication of array | Yes |
| ARRAY_SET_DISTINCT | Deduplication of set | Yes |
| ARRAY_ITEM_DISTINCT | Deduplication of element | Yes |
| MEDIAN | Median | Yes |
| PERCENTILE | Percentile | Yes |

