全部产品

获取推荐结果

更新时间:2020-09-22 10:02:05

参数说明

参数 类型 描述 是否必填 备注
userId string 需要推荐的目标用户 和imei至少一个不为空 如果不在user表中,则无个性化效果
imei string 安卓:MD5(imei),IOS:MD5(idfa) 1、非注册用户必填
2、按照指定要求,mac地址,设备号等无效,会无法使用内部用户画像信息,仅保留曝光过滤功能
3、32位MD5值
returnCount Integer 单次请求返回的推荐结果数量 建议取值20
ip string ip
sceneId string 物品投放的场景ID 默认场景ID为1,如果在上传的场景数据中有对应的ID,需要一致
items string 基准相关物品 仅限用于相关推荐场景,格式:itemId:itemType,itemId:itemType

通过服务端SDK获取推荐结果的常见错误

返回结果为空:
1、请求参数填错:
测试场景填入:scene_id,此项必须保证上报过来的数据中有此场景id;
测试用户填入:user_id,如果填入的user_id未存在user表中,则视为新用户;
推荐物品数:要小于场景可推荐的item数量。
注意:通过服务端SDK获取推荐结果中推荐物品数最大值=50。
如果是相关推荐,还需要填入item_id:item_type为请求参数,详情如下相关推荐请求参数.
相关推荐请求参数2、由于满足条件的可推荐的物料数过少,默认开启了曝光过滤功能后当前用户已经把当前场景的item全部刷空了(全部曝光过了)。

示例代码

  1. package com.aliyun.airec;
  2. import com.aliyuncs.DefaultAcsClient;
  3. import com.aliyuncs.airec.model.v20181012.RecommendRequest;
  4. import com.aliyuncs.airec.model.v20181012.RecommendResponse;
  5. import com.aliyuncs.http.FormatType;
  6. import com.aliyuncs.profile.DefaultProfile;
  7. import com.aliyuncs.profile.IClientProfile;
  8. public class Recommend {
  9. private static final String accessKeyId = "your access key";
  10. private static final String accessKeySecret = "your access key secret";
  11. public static void main(String args[]) {
  12. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  13. DefaultProfile.addEndpoint("cn-hangzhou", "Airec", "airec.cn-hangzhou.aliyuncs.com");
  14. DefaultAcsClient client = new DefaultAcsClient(profile);
  15. RecommendRequest request = new RecommendRequest();
  16. request.setInstanceId("airec-xxx");
  17. request.setUserId("0");
  18. request.setReturnCount(100);
  19. //如果是相关推荐场景可选使用
  20. //request.setItems("88:article,33:image");
  21. request.setAcceptFormat(FormatType.JSON);
  22. try {
  23. RecommendResponse response = client.getAcsResponse(request);
  24. for (RecommendResponse.ResultItem item : response.getResult()) {
  25. System.out.println(item.getItemId());
  26. System.out.println(item.getItemType());
  27. System.out.println(item.getTraceId());
  28. System.out.println(item.getTraceInfo());
  29. System.out.println(item.getMatchInfo());
  30. System.out.println(item.getWeight());
  31. System.out.println(item.getPosition());
  32. }
  33. } catch (Exception e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. }