下发回传接口用于记录已推荐结果,在以后的推荐返回中对已推荐结果去重。
以电商行业举例,推荐接口返回推荐商品 id 列表 [1,2,3,4,5],客户服务端判断商品 3 刚刚售罄,根据运营规则需要在第二位强制插入商品 10,最终将商品 id 列表 [1,10,2,4,5] 下发给客户端,那么客户侧需要同时将商品 id 列表 [1,10,2,4,5,3] 通过本接口上报。
注意
这里需要将被过滤的商品 3 以及强插商品 10 都返回,同时给不同的 item 附带相应的 extra 字段。 同一次下发的推荐结果必须一次性上报。
HTTPS POST
《URL相关名词解释》
/predict/api/${application_id}/callback
公共请求头部分详见《公共请求头说明》
接口额外请求头:
参数 | 说明 | 示例 | 是否必传 |
---|---|---|---|
Enable-Spm-Route | 用于告知推荐服务是否开启 SPM 路由。开启了之后推荐服务会根据请求携带的 SPM 将请求路由到绑定的栏位处理逻辑中。开启 SPM 路由的时候需要确保请求中的 SPM 是有效的 SPM,且已经绑定了栏位。否则服务端会返回错误。 | true | 否 |
参数
参数 | 类型 | 是否必传 | 描述 |
---|---|---|---|
uid | string | 是 | 用户id。 |
scene | string | 是 | callback对应的推荐场景,非特殊情况下均为default。 |
items | object list | 是 | 需要回调的物品列表。 |
predictRequestId | string | 否 | 强烈建议传输。当前callback请求对应的predict请求的Request-Id。例如:调用推荐接口时候的Request-Id为hr3sd12ui23478sd,那么对应的下发回传请求的此参数需填写为hr3sd12ui23478sd。如果此参数未填写,字节侧会尝试使用header里的Request-Id来匹配寻找对应的predict请求。 |
context | object | 是 | 上下文信息 |
注意
一个推荐请求应该仅对应一个callback请求。如果同一个predictRequestId出现两次callback请求,容易引起预期外的结果。
示例
{ "uid":"uid1", "scene":"default", "items":[ { "id":"item_id1", "pos":"position1", "extra":"{\"reason\":\"exposure\"}" }, { "id":"item_id2", "pos":"position2", "extra":"{\"reason\":\"filter\"}" } ], "predictRequestId":"ds12ad61hnwo", "context":{ "spm":"A$##$B$##$C", "feature":{ "stringFeature":{ "key":"value" }, "intFeature":{ "key":2 }, "floatFeature":{ "key":3.5 }, "doubleFeature":{ "key":3.51231 }, "stringArrayFeature":{ "key":{ "values":[ "values1", "values2" ] } }, "intArrayFeature":{ "key":{ "values":[ 1, 2 ] } }, "floatArrayFeature":{ "key":{ "values":[ 1.1, 2.2 ] } }, "doubleArrayFeature":{ "key":{ "values":[ 1.11111, 2.22222 ] } } }, "extra":{ "key1":"value1", "key2":"value2" } } }
参数
参数 | 类型 | 描述 |
---|---|---|
code | int32 | 不等同于http status,用于排查业务错误。成功情况下,在json结构的返回体中不包含该字段。 |
message | string | 状态信息,默认"OK",遇到错误会返回错误信息。 |
success | bool | success字段存在,且等于true的时候,请求才是成功的。含义比code更简单直接一些。 |
示例
{ "message": "OK", "success": true }