获取推荐内容

本页面介绍如何为特定用户和用户事件请求商品推荐。

上传商品并记录用户事件后,您可以根据特定用户的已记录用户事件及其当前活动,为该用户请求商品推荐。 新商品和用户事件最长可能需要 48 小时才会反映在推荐模型中。

AI Commerce Search 会返回经过排名的商品标识符列表。您需要负责使用图片和文字在您网站上呈现结果。

绝不缓存最终用户的个性化结果,也绝不向其他最终用户返回个性化结果。

准备工作

您必须先按照准备工作中的步骤创建 Google Cloud项目并设置身份验证。

您需要同时满足以下两个条件,然后才能根据建议请求预测:

评估建议

在更新网站代码以请求推荐之前,您可以使用预览预测结果来确认模型和投放配置是否按预期工作。

如需详细了解服务配置,请参阅服务配置简介

您可以从评估页面预览投放配置结果,也可以在控制台中前往投放配置的详细信息页面,然后点击其评估标签页。

如需预览投放配置返回的建议,请执行以下操作:

  1. 前往 Gemini Enterprise for Customer Experience 控制台中的 AI Commerce Search 评估页面。

    前往“评估”页面

  2. 点击建议标签页(如果尚未选择)。

  3. 选择要预览的投放配置。

  4. 可选:输入访问者 ID 以预览针对该用户的建议。

  5. 如果显示关联的商品部分,请点击添加商品,然后输入商品 ID,以获取与该商品关联的推荐。您可以添加多个关联商品。

    只有当所选服务配置的模型类型需要将商品作为建议的输入时,才能添加商品。“为您推荐”模型不需要输入关联的商品。

  6. 点击预测预览查看预测结果。

如需查看您正在预览的投放配置的详细信息页面,请点击选择投放配置字段下方的查看投放配置

获取推荐内容

Recommendations API 对返回的商品数量有限制。不过,您可以采取解决方法来增加返回的商品数量。

最大限度地提高浏览型商品详情的价值

本部分概述了如何通过有效处理类别,确保使用最高数据层级模型并解锁个性化功能,从而充分利用 AI Commerce Search 中的浏览商品详情。

有效的类别处理

  • 使用唯一且描述准确的网页类别名称,确保准确跟踪用户行为和模型学习情况。
  • 将类别从宽泛到具体进行结构化,让用户能够逐步优化浏览体验。
  • 避免使用用户互动度有限的过于小众的类别。

确保是最高层级的模型

前往“数据质量”页面

然后,配置最高层级的模型:

  1. 实现用户事件跟踪,以捕获搜索和浏览的用户互动(点击、购买、添加到购物车)。

  2. 使用 AI Commerce Search 数据质量信息中心监控数据注入和模型就绪情况。

如需详细了解搜索和浏览的数据层级,请参阅数据质量

利用个性化功能提升效果

作为一种从用户行为中学习的排名模型,浏览模型的大部分性能都来自其个性化功能。

  • 在评估模型性能时启用个性化设置。
  • 停用个性化功能会影响性能,并最大限度地减少模型的潜在影响。
  • 在向实时生产流量或 A/B 测试公开浏览结果之前,个性化功能应处于有效状态。

提高结果大小限制

  • AI Commerce Search 结果的上限为 120 个。

  • Recommendations API 支持对最多 2,000 个商品进行重新排名。

  • 虽然延迟时间会增加,但网页大小可以增加到 500 或 1,000。

针对更多推荐结果的解决方法

您可以使用 REST API 通过个性化推荐功能对类别页面进行个性化设置和重新排名。为了规避 120 项结果的限制,请同时多次调用,以获取指定数量的初始网页。然后,将结果拼接在一起,使其看起来像一个大页面。

如需手动限制返回给最终用户的推荐内容集,您可以在 PredictRequest.params 查询中添加过滤条件。使用 API 将所选属性标记为可过滤,然后在预测请求中直接引用这些属性。

由于 PredictRequest 不支持标准分页(如 offsetpageToken),因此您无法请求特定页面来拼接结果。不过,为了规避结果数量限制并使用建议手动限制类别网页的结果,您可以使用过滤功能将目录划分为不同的细分,例如按类别、价格范围或品牌划分。同时针对这些细分发出调用,然后合并结果。

如需了解预测费用详情,请参阅价格

您可以通过两种解决方法来增加推荐结果的数量。

临时解决方法 A:增加页面大小

将预测请求的 pageSize 配置为大于默认值 20 的数字。请参阅 REST API 调用模板

解决方法 B:使用属性和类别分页

针对类别页面的结果数量限制的解决方法包含三个步骤:

  1. 配置属性。使用 CatalogService API 将属性(例如类别或价格)标记为可过滤,以便在推荐过滤条件中使用这些属性。在按属性(例如类别)过滤建议之前,您必须在目录配置中为相应属性启用 recommendationsFilteringOption
  2. 生成建议使用预测请求中的可过滤属性创建 PredictRequest,以请求特定商品子集。
  3. 提取和拼接过滤后的建议。如需模拟更大的结果集或类别页面,请通过在过滤条件中使用不同的类别值来调用第 2 步中的示例预测调用,从而发出并行请求。

在 REST 调用中启用过滤选项

curl

如需获取推荐,请向 predict REST 方法发出 POST 请求,并提供相应的请求正文:

  • 您使用的服务账号需要具有“Retail Viewer”角色或更高权限的角色。

  • SERVING_CONFIG_ID 替换为要在其中使用预测的投放配置。了解详情

  • 如果您使用 BigQuery 导入 Google Analytics 360 用户事件,请将 visitorId 设置为 Google Analytics 客户端 ID。请参阅 Google Analytics 文档,了解如何获取客户端 ID。

  • 如果您要运行 A/B 实验,请将 experimentIds 设置为此实验组的 ID。了解详情

  • 为发起推荐请求的用户操作提供用户事件对象。

    请注意,系统不会记录此用户事件;它仅用于为相关推荐请求提供背景信息。而您应该像记录其他用户事件一样来记录此用户事件。

  • (可选)提供过滤条件来缩小可能返回的商品范围。了解详情

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
              "filter": "FILTER_STRING",
              "validateOnly": false,
              "userEvent": {
                  "eventType": "detail-page-view",
                  "visitorId": "VISITOR_ID",
                  "userInfo": {
                      "userId": "USER_ID",
                      "ipAddress": "IP_ADDRESS",
                      "userAgent": "USER_AGENT"
                  },
                  "experimentIds": "EXPERIMENT_GROUP",
                  "productDetails": [{
                      "product": {
                        "id": "PRODUCT_ID"
                     }
                  }]
              }
            }' \
https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/servingConfigs/SERVING_CONFIG_ID:predict

您应该会看到如下所示的结果:

{
  "results": [{"id": "sample-id-1"}, {"id": "sample-id-2"}],
  "attribution_token": "sample-atr-token"
}

Java

public static PredictResponse predictWithNextPageToken(UserEvent userEvent, int pageSize,
    String nextPageToken)
    throws IOException, InterruptedException {
  PredictionServiceClient predictionClient = getPredictionServiceClient();

  PredictRequest request = PredictRequest.newBuilder()
      .setPlacement(HOME_PAGE_PLACEMENT_NAME)
      .setUserEvent(userEvent)
      .setPageSize(pageSize)
      .setPageToken(nextPageToken)
      .setValidateOnly(true)
      .build();

  PredictResponse response = predictionClient.predict(request);

  predictionClient.shutdownNow();
  predictionClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

价格重排序

启用这项功能后,推荐概率相近的推荐产品会按价格进行排序,价格最高的商品列在第一位。相关性仍会用于订购商品,因此启用价格重排序与按价格排序不同。

可以在服务配置级层或根据预测请求设置价格重排序。

如果您在 Gemini Enterprise for Customer Experience 控制台的 AI Commerce Search 中创建服务配置时选择价格重排序设置,则该设置将应用于该配置提供的所有建议,您无需执行进一步操作。

如果您需要控制特定建议的价格重排序,可以使用 PredictRequest.params 字段进行控制。这将替换或会以其他方式应用于此建议的任何配置级层重排序设置。

建议多样性

推荐多样性会影响单个预测请求返回的结果是否来自产品目录的不同类别。

可以在服务配置级层或根据预测请求设置推荐多样性。

如果您在 Gemini Enterprise for Customer Experience 控制台的 AI Commerce Search 中创建服务配置时选择推荐多样化设置,则该设置将默认应用于该配置提供的所有预测,您无需执行进一步操作。

如果您需要控制特定建议的多样性,可以使用 PredictRequest.params 字段进行控制。这将替换或会以其他方式应用于此建议的任何配置级层多样化设置。查看可接受的值。

使用建议过滤条件

您可以使用 predict 方法中的 filter 字段过滤推荐服务返回的推荐。如需了解相关信息,请参阅过滤建议

使用页面级优化模型进行预测调用

使用页面级优化功能提供建议需要额外的预测调用步骤。

使用包含页面级优化模型的服务配置进行初始预测调用。预测响应会返回一个已排序的投放配置 ID 列表,其中包含每个面板要使用的模型。

然后,使用页面级优化模型为每个面板推荐的投放配置 ID,为每个面板发出预测调用。预测响应包含模型名称(例如“为您推荐”)以及要在相应面板中显示的推荐商品列表。

使用页面级优化模型的服务配置不支持价格重排序、建议多样性和建议过滤条件。