本页面介绍如何为特定用户和用户事件请求推荐。
上传商品并记录用户事件后,您可以根据特定用户的已记录用户事件及其当前活动,为该用户请求商品推荐。
准备工作
您必须先按照准备工作中的步骤创建 Google Cloud 项目并设置身份验证,然后才能访问 Retail API。
此外,您需要具备经过训练和调节的推荐(模型)以及一个或多个有效的展示位置,才能通过 Recommendations AI 请求预测。
推荐预览
在更新网站代码以请求推荐之前,您可以使用预测预览来确认模型是否按预期工作。
要预览模型返回的推荐,请执行以下操作:
转到 Google Cloud Console 中的 Recommendations AI 模型页面。
转到 Recommendations AI 模型页面点击模型名称以打开其详情页面。
点击要预览的展示位置。
(可选)输入用户 ID 以预览该用户的结果。
点击预测预览查看预测结果。
获取推荐
如需了解预测费用详情,请参阅价格。
curl
如需获取推荐,请向 predict
REST 方法发出 POST
请求,并提供相应的请求正文:
您使用的服务帐号需要具有“Retail Viewer”角色或更高权限的角色。
将 PLACEMENT_ID 替换为要在其中使用预测的展示位置。 [了解详情][展示位置]。
如果您使用 BigQuery 导入 Google Analytics 360 用户事件,请将
visitorId
设置为 Google Analytics(分析)客户端 ID。请参阅 Google Analytics(分析)文档,了解如何获取客户端 ID。如果您要运行 A/B 实验,请将
experimentIds
设置为此实验组的 ID。了解详情。为发起推荐请求的用户操作提供用户事件对象。
请注意,系统不会记录此用户事件;它仅用于为相关推荐请求提供背景信息。而您应该像在 Retail API 中记录其他用户事件一样来记录此用户事件。
(可选)提供过滤条件来缩小可能返回的商品范围。了解详情。
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/placements/PLACEMENT_ID:predict
您应该会看到如下所示的结果:
{ "results": [{"id": "sample-id-1"}, {"id": "sample-id-2"}], "attribution_token": "sample-atr-token" }
您必须将 attribution_token
值与您提供作为此预测结果的任何网址相关联,然后为这些网址返回该值和用户事件。了解详情。
价格重排序
启用这项功能后,推荐概率相近的推荐产品会按价格进行排序,价格最高的商品列在第一位。相关性仍会用于订购商品,因此启用价格重排序与按价格排序不同。
可以在服务配置级层或根据预测请求设置价格重排序。
如果您在 Cloud Console 中创建模型时选择价格重排序设置,则该设置将应用于该配置提供的所有建议,您无需执行进一步操作。
如果您需要控制特定建议的价格重排序,可以使用 PredictRequest.params
字段通过 Retail API 进行控制。这将替换或会以其他方式应用于此建议的任何模型级层重排序设置。
建议多样性
多样性会影响单个预测请求返回的结果是否来自产品目录的不同类别。
可以在服务配置级层或根据预测请求设置多样性。
如果您在 Cloud Console 中创建模型时选择多样化设置,则该设置将应用于该模型提供的所有建议,您无需执行进一步操作。
如果您需要控制特定建议的多样性,可以使用 PredictRequest.params
字段通过 Retail API 进行控制。这将替换或会以其他方式应用于此建议的任何模型级层多样化设置。如需查看可接受的值,请参阅 PredictRequest.params
的 API 文档。
使用建议过滤条件
您可以使用 predict
方法中的 filter
字段过滤 Recommendations AI 返回的推荐。
filter
字段接受两种过滤规范:
标记表达式
如果您在上传商品时添加了
tag
值,则可以指定仅匹配过滤所用的所有标记的商品返回为推荐。了解详情。标记表达式可以包含布尔运算符
OR
或NOT
,并且必须用一个或多个空格将其与标记值分隔开来。标记值也可以在前面加上短划线 (-
),它相当于NOT
运算符。使用布尔运算符的标记表达式必须用英文括号括起来。filterOutOfStockItems
filterOutOfStockItems
标志可滤除stockState
为OUT_OF_STOCK
的所有产品。
您可以结合使用这两种类型的过滤条件;系统仅返回满足所有指定过滤条件表达式的项。
以下是一些示例过滤字符串:
"filter": "tag=\"spring-sale\""
"filter": "filterOutOfStockItems"
"filter": "tag=\"spring-sale\" tag=\"exclusive\" filterOutOfStockItems"
以下示例仅返回具有“spring-sale”和/或“exclusive”标记并且不具有“items-to-exclude”标记的有货商品。
"filter": "tag=(\"spring-sale" OR \"exclusive\") tag=(-\"items-to-exclude\") filterOutOfStockItems"