# 유저 속성 분석 API
유저 속성 분석 API는 유저의 특성을 분석하는 기능을 제공합니다.
호출 방법에 대해서는 Open API의 호출 방법 설명을 참조하십시오.
사용 시나리오에 대한 이해를 돕기 위해 사용자 가이드의 구성 부분을 읽을 수 있습니다.
# 1. 유저 속성 분석 쿼리
인터페이스 URL
/open/user-prop-analyze?token=xxx
요청 방법
POST
콘텐츠 유형
application/json
요청 쿼리 파라미터
Parameter name  |  Sample value  |  Parameter type  |  Is required  |  Parameter description  | 
|---|---|---|---|---|
token  |  xxx  |  String  |  Yes  |  token  | 
요청 본문 파라미터
{
  "eventView": {
    "userCrowds": [
      {
        "crowdName": "female",
        "filts": [
          {
            "columnDesc": "gender",
            "columnName": "gender",
            "comparator": "equal",
            "filterType": "SIMPLE",
            "ftv": [
              "女"],
            "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": "account 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
}
요청 파라미터 설명
$$Parameter name  |  Sample value  |  Parameter type  |  Is required  |  Parameter description  | 
|---|---|---|---|---|
| eventView | - | Object | Yes | Metrics common attribute part | 
| eventView.userCrowds | - | Object | No | Crowd | 
| eventView.userCrowds.crowdName | Female | String | Yes | Crowd 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 | Reference: filtering expression of model query API | 
| eventView.userCrowds.filts.filterType | SIMPLE | String | No | Filter mode, SIMPLE: simple, COMPOUND: composite | 
| eventView.userCrowds.filts.ftv | ["Female"] | List | No | Property comparative with bound literial | 
| eventView.userCrowds.filts.specifiedClusterDate | 2022-01-27 | String | No | Historical tag version of specified date | 
| eventView.userCrowds.filts.tableType | user | String | Yes | Table type enumeration | 
| eventView.userCrowds.filts.timeUnit | String | No | Filter time unit | |
| eventView.userCrowds.relation | and | String | Yes | Logical relationship, and: logical and, or: logical or | 
| events | - | List | Yes | Event metric list | 
| events.analysis | SUM | String | Yes | Analysis aspect for user feature aggregation for Aggregate type enumeration for user feature analysis | 
| events.analysisDesc | Sum | String | No | Analysis aspect description | 
| events.eventNameDisplay | Total balance | String | No | Self-defined metric 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 | Reference: filtering expression of model query API | 
| events.filts.filterType | SIMPLE | String | No | Filter mode, SIMPLE: simple, COMPOUND: composite | 
| events.filts.ftv | ["1"] | List | No | Property comparative with bound literial | 
| events.filts.specifiedClusterDate | 2022-01-27 | String | No | Historical tag version of specified date | 
| events.filts.tableType | user | String | Yes | Table type enumeration | 
| events.filts.timeUnit | String | No | Filter time unit | |
| events.quota | accountbalance | String | No | Metric property (combined with analysis, indicating the property involved and the analysis perspective) | 
| events.relation | and | String | No | Logical relationship, and: logical and, or: logical or | 
| events.tableType | user | String | Yes | Table type enumeration | 
| projectId | 377 | Integer | Yes | Project enumeric identity | 
| limit | 10 | Integer | No | Maximum number of groups per analysis object, optional parameters, default is 1000, maximum is 10000 | 
| timeoutSeconds | 10 | Integer | No | Request timed out parameter, timeout cancels query task | 
| useCache | true | Boolean | No | Use cache, optional parameter, default is true | 
성공적인 응답 예시
{
  "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"
}
응답 파라미터 설명
$$Parameter name  |  Sample value  |  Parameter type  |  Parameter description  | 
|---|---|---|---|
| return_code | 0 | Integer | Return code | 
| return_message | success | String | Return message | 
| data | - | Object | Return result | 
| data.data_list | - | List | Data List | 
| data.data_list.group_cols | ["Female"] | List | Group or crowd list | 
| data.data_list.values | 1140523491 | Integer | Number of users | 
| data.group_cols_sorted | ["Female"] | List | Full group or crowd order list | 
| data.group_num | 0 | Integer | Number of groupings | 
| data.result_generate_time | 2022-01-27 15:01:51 | String | Results generation time | 
| data.unit | String | Numerical attribute unit | 
오류 응답 예시
{
    "return_code": -1008,
    "return_message": "The parameter (token) is empty"
}
Parameter name  |  Sample value  |  Parameter type  |  Parameter description  | 
|---|---|---|---|
return_code  |  -1008  |  Integer  |  Return code  | 
return_message  |  The parameter (token) is empty  |  String  |  Return message  | 
# 2. 유저 특성 분석 풀 데이터 다운로드
인터페이스 URL
/open/streaming-download/user-prop-analyze?token=xxx
요청 방법
POST
콘텐츠 유형
application/json
요청 쿼리 파라미터
Parameter name  |  Sample value  |  Parameter type  |  Mandatory or not  |  Parameter description  | 
|---|---|---|---|---|
token  |  xxx  |  String  |  Yes  |  Query key  | 
요청 본문 파라미터
{
        
    "eventView": {
        "userCrowds": [
          {
            "crowdName": "female",
            "filts": [
              {
                "columnDesc": "gender",
                "columnName": "gender",
                "comparator": "equal",
                "filterType": "SIMPLE",
                "ftv": [
                  "女"],
                "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": "account 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": 390
}
요청 파라미터 설명
$$ Parameter name  |  Sample value  |  Parameter type  |  Mandatory or not  |  Parameter description  | 
|---|---|---|---|---|
eventView  |  -  |  Object  |  Yes  |  Same parameters as User feature Analysis Query interface  | 
events  |  -  |  List  |  Yes  |  Same parameters as User feature Analysis Query interface  | 
projectId  |  377  |  Integer  |  Yes  |  Project numeric identity  | 
응답
유저 속성 분석 전체 데이터 다운로드와 동일 (TE 시스템의 유저 속성 분석 전체 데이터 다운로드와 동일)
# 3. 유저 속성 분석 유저 목록
인터페이스 URL
/open/user-prop-user-list?token=xxx
요청 방법
POST
콘텐츠 유형
application/json
요청 쿼리 파라미터
Parameter name  |  Sample value  |  Parameter type  |  Is required  |  Parameter description  | 
|---|---|---|---|---|
token  |  xxx  |  String  |  Yes  |  token  | 
projectId  |  0  |  Integer  |  Yes  |  Project ID  | 
요청 본문 파라미터
{
  "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
}
요청 파라미터 설명
$$Parameter name  |  Sample value  |  Parameter type  |  Is required  |  Parameter description  | 
|---|---|---|---|---|
projectId  |  0  |  Integer  |  Yes  |  Project numeric identity  | 
events  |  -  |  List  |  Yes  |  Same parameters as User feature Analysis Query interface  | 
eventView  |  -  |  Object  |  Yes  |  Same parameters as User feature Analysis Query interface  | 
sliceGroupVal  |  ["31","app store"]  |  List  |  No  |  Go to detail by which group  | 
timeoutSeconds  |  10  |  Integer  |  No  |  Request timed out parameter, timeout cancels query task  | 
성공적인 응답 예시
{
  "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": "visitor ID",
      "user_level": "user level",
      "register_time": "register time",
      "diamond_num": "diamond number",
      "first_recharge_time": "first recharge time",
      "latest_login_time": "lastest login time",
      "channel": "channel"
    }
  },
  "return_code": 0,
  "return_message": "success"
}
응답 파라미터 설명
$$Parameter name  |  Sample value  |  Parameter type  |  Parameter description  | 
|---|---|---|---|
return_code  |  0  |  Integer  |  Return code  | 
return_message  |  success  |  String  |  Return message  | 
data  |  -  |  Object  |  Return result  | 
data.datalist  |  -  |  List  |  User Information  | 
data.columMeta  |  -  |  Map  |  Field meaning mapping  | 
오류 응답 예시
{
    "return_code": -1008,
    "return_message": "The parameter (token) is empty"
}
Parameter name  |  Sample value  |  Parameter type  |  Parameter description  | 
|---|---|---|---|
return_code  |  -1008  |  Integer  |  Return code  | 
return_message  |  The parameter (token) is empty  |  String  |  Return message  | 
# 4. 유저 속성 분석 사용자 목록 다운로드
인터페이스 URL
/open/user-prop-user-list?token=xxx
요청 방법
POST
콘텐츠 유형
application/json
요청 쿼리 파라미터
Parameter name  |  Sample value  |  Parameter type  |  Mandatory or not  |  Parameter description  | 
|---|---|---|---|---|
token  |  xxx  |  String  |  Yes  |  Query key  | 
요청 본문 파라미터
{
        
    "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"
      ],
    "projectId": 319,
    "eventIndex": 0,
    "selectedColumns": ["#account_id", "#distinct_id", "accountid"]
}
요청 파라미터 설명
$$parameter name  |  Sample value  |  Parameter type  |  Mandatory or not  |  Parameter description  | 
|---|---|---|---|---|
projectId  |  0  |  Integer  |  Yes  |  Project enumeric identity  | 
events  |  -  |  List  |  Yes  |  Same parameters as User feature Analysis Query interface  | 
eventView  |  -  |  Object  |  Yes  |  Same parameters as User feature Analysis Query interface  | 
sliceGroupVal  |  ["31","app store"]  |  List  |  No  |  Go to detail by which group  | 
eventIndex  |  0  |  Integer  |  Yes  |  Index of crowd, starting from 0  | 
selectedColumns  |  ["#account_id"]  |  array  |  Yes  |  The columns to be downloaded  | 
응답
TE 시스템의 유저 페르소나 분석 사용자 목록 다운로드와 동일합니다.
# 5. 유저 이벤트 목록 조회
인터페이스 URL
/open/user-event-list?token=xxx
요청 방법
POST
콘텐츠 유형
application/json
요청 쿼리 파라미터
Parameter name  |  Sample value  |  Parameter type  |  Is required  |  Parameter description  | 
|---|---|---|---|---|
token  |  xxx  |  String  |  Yes  |  token  | 
요청 본문 파라미터
{
  "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
}
요청 파라미터 설명
$$Parameter name  |  Sample value  |  Parameter type  |  Is required  |  Parameter description  | 
|---|---|---|---|---|
eventNames  |  ["payment"]  |  List  |  Yes  |  List of events included  | 
pagerHeader  |  -  |  Object  |  Yes  |  Generic paging request header  | 
pagerHeader.pageNum  |  1  |  Long  |  No  |  Start page  | 
pagerHeader.pageSize  |  2  |  Long  |  No  |  Number per page  | 
projectId  |  377  |  Integer  |  Yes  |  Project ID  | 
startDateTime  |  ["2021-11-04 00:00:00"]  |  List  |  No  |  Start time list yyyy-MM-dd HH: mm: ss  | 
dateFormat  |  week  |  String  |  Yes  |  Unit of the time period taken for analysis 
  | 
firstDayOfWeek  |  1  |  Integer  |  No  |  First day of the week  | 
userId  |  795687603434164226  |  Long  |  Yes  |  User ID of the analysis target  | 
timeoutSeconds  |  10  |  Integer  |  No  |  Request timed out parameter, timeout cancels query task  | 
useCache  |  true  |  Boolean  |  No  |  Use cache, optional parameter, default is true  | 
성공적인 응답 예시
{
  "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": "operation version",
      "app_version": "app version",
      "os": "operation system",
      "lib": "library",
      "level": "user level",
      "model": "model",
      "screen_height": "screen height",
      "carrier_name": "carrier name",
      "vip_level": "VIP level",
      "brand": "brand",
      "currency_type": "currency type",
      "pay_amount": "pay amount",
      "diamond_get_amount": "diamond amount",
      "payment_name": "payment name",
      "is_first_pay": "first payment or not",
      "#country_code": "country code",
      "#ip": "service IP",
      "#city": "city",
      "#province": "province",
      "#country": "country",
      "screen_width": "screen width",
      "device_id": "device ID",
      "#zone_offset": "zone offset"
    },
    "eventNameDescMeta": {
      "anyEvent": "any event",
      "activity_attend": "attend activity",
      "draw_card": "draw cards",
      "gold_consume": "gold consume",
      "gold_get": "get gold",
      "level_up": "level up",
      "login": "login",
      "logout": "logout",
      "payment": "payment",
      "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 telecom",
          "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 telecom",
          "vip_level": "1",
          "brand": "apple",
          "currency_type": "coupon",
          "pay_amount": "536",
          "diamond_get_amount": "7485",
          "payment_name": "honor package",
          "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"
}
응답 파라미터 설명
$$Parameter name  |  Sample value  |  Parameter type  |  Parameter description | 
|---|---|---|---|
return_code  |  0  |  Integer  |  Return code  | 
return_message  |  success  |  String  |  Return message  | 
data  |  -  |  Object  |  Return result  | 
data.columnDescMeta  |  -  |  Map  |  Attribute name mapping  | 
data.eventNameDescMeta  |  -  |  Map  |  Event name  | 
data.resultGenerateTime  |  2022-01-27 15:46:08  |  String  |  Results 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  | 
오류 응답 예시
{
    "return_code": -1008,
    "return_message": "The parameter (token) is empty"
}
Parameter name  |  Sample value  |  Parameter type  |  Parameter description  | 
|---|---|---|---|
return_code  |  -1008  |  Integer  |  Return code  | 
return_message  |  The parameter (token) is empty  |  String  |  Return information  | 
# 유저 속성 분석을 위한 일반적인 목록
# 유저 속성 분석을 위한 집계 유형 목록
Value  |  Description  |  Whether properties are required  | 
|---|---|---|
TRIG_USER_NUM  |  Number of users triggered  |  No  | 
SUM  |  Sum of values  |  Yes  | 
AVG  |  Numerical average  |  Yes  | 
MAX  |  Maximum value  |  Yes  | 
MIN  |  Numerical minimum  |  Yes  | 
DISTINCT  |  Deduplicate number  |  Yes  | 
TRUE  |  True number  |  Yes  | 
FALSE  |  False number  |  Yes  | 
IS_NOT_EMPTY  |  Not an empty number  |  Yes  | 
IS_EMPTY  |  Null number  |  Yes  | 
ARRAY_DISTINCT  |  List overall deduplicate number  |  Yes  | 
ARRAY_SET_DISTINCT  |  Element collection deduplicate number  |  Yes  | 
ARRAY_ITEM_DISTINCT  |  List element deduplicate number  |  Yes  | 
MEDIAN  |  Median  |  Yes  | 
PERCENTILE  |  Percepentiles  |  Yes  | 
