이 문서는 Recommendations AI 전용 문서입니다. 제한된 GA 단계에서 Retail Search 및 통합 Retail 콘솔을 사용해 보려면 Cloud 영업팀에 문의하세요. Retail Search를 사용할 계획이 없으면 추가 알림이 있을 때까지 권장사항 콘솔에 남아 있으세요.

Recommendations AI의 v1beta 버전을 사용하는 경우 Retail API 버전으로 마이그레이션합니다.

추천 받기

이 페이지에서는 특정 사용자 및 사용자 이벤트에 대한 추천을 요청하는 방법을 설명합니다.

제품을 업로드하고 사용자 이벤트를 기록한 후 해당 사용자 및 사용자의 현재 활동에 대해 기록된 사용자 이벤트를 기반으로 특정 사용자에 대한 제품 추천을 요청할 수 있습니다.

시작하기 전에

Retail API에 액세스하려면 먼저 Google Cloud 프로젝트를 만들고 시작하기 전에 단계에 따라 인증을 설정합니다.

또한 Recommendations AI에 예측을 요청하기 전에 학습 및 조정된 추천(모델)과 하나 이상의 활성 게재위치가 필요합니다.

추천 미리보기

추천을 요청하도록 웹사이트 코드를 업데이트하기 전에 예측 미리보기를 사용하여 모델이 예상대로 작동하는지 확인할 수 있습니다.

모델에서 반환하는 추천을 미리 보려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 Recommendations AI 모델 페이지로 이동합니다.
    Recommendations AI 모델 페이지로 이동

  2. 모델 이름을 클릭하여 세부정보 페이지를 엽니다.

  3. 미리 보려는 게재위치를 클릭합니다.

  4. (선택사항)사용자의 결과를 미리 보려면 사용자 ID를 입력합니다.

  5. 예측 미리보기를 클릭하여 예측 결과를 확인합니다.

샘플 이미지가 반환된 예측 미리보기

추천 가져오기

예측 비용 세부정보는 가격 책정을 참조하세요.

curl

추천을 받으려면 predict REST 메서드에 POST 요청을 하고 적절한 요청 본문을 제공합니다.

  • 사용하는 서비스 계정에 'Retail 뷰어' 이상의 역할이 있어야 합니다.

  • PLACEMENT_ID를 예측을 사용할 게재위치로 바꿉니다. [자세히 알아보기][게재위치]

  • BigQuery를 사용하여 Google 애널리틱스 360 사용자 이벤트를 가져온 경우 visitorId를 Google 애널리틱스 클라이언트 ID로 설정합니다. 클라이언트 ID를 가져오는 방법은 Google 애널리틱스 문서를 참조하세요.

  • A/B 실험을 실행 중인 경우 experimentIds를 실험 그룹의 ID로 설정합니다. 자세히 알아보기

  • 추천 요청을 시작한 사용자 작업에 대한 사용자 이벤트 객체를 제공합니다.

    이 사용자 이벤트는 기록되지 않습니다. 이 추천 요청에 대한 컨텍스트를 제공하는 데만 사용됩니다. 또한 Retail AI에 다른 사용자 이벤트를 기록하는 것과 같은 방식으로 사용자 이벤트를 기록해야 합니다.

  • 필요한 경우 잠재적으로 반환되는 제품의 범위를 좁히기 위한 필터를 제공합니다. 자세히 알아보기

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 값을 이 예측의 결과로 제공하는 URL과 연결하고 해당 URL의 사용자 이벤트로 반환해야 합니다. 자세히 알아보기

가격 재순위

가격 재순위를 사용하면 추천 확률이 비슷한 추천 제품이 높은 가격순으로 정렬됩니다. 항목 순서를 지정할 때 관련성도 사용되므로 가격 재순위를 사용 설정하는 것은 가격을 기준으로 정렬하는 것과는 다릅니다.

가격 재순위를 제공 구성 수준이나 예측 요청별로 설정할 수 있습니다.

Cloud Console에서 모델을 생성할 때 가격 재순위 설정을 선택하면 추가 조치를 취하지 않아도 이 구성에서 제공하는 모든 추천에 설정이 적용됩니다.

특정 추천의 가격 재순위를 관리해야 하는 경우 PredictRequest.params 필드를 사용하여 Retail API를 통해 수행할 수 있습니다. 이렇게 하면 이 추천에 적용되는 모델 수준의 재순위 설정이 재정의됩니다.

추천 다양성

다각화는 단일 예측 요청으로 반환되는 결과가 제품 카탈로그의 여러 카테고리에서 가져오는지 여부에 영향을 미칩니다.

다각화를 제공 구성 수준이나 예측 요청별로 설정할 수 있습니다.

Cloud Console에서 모델을 생성할 때 다각화 설정을 선택하면 추가 조치를 취하지 않아도 기본적으로 이 모델에서 제공하는 모든 추천에 설정이 적용됩니다.

특정 추천의 다양성을 관리해야 하는 경우 PredictRequest.params 필드를 사용하여 Retail API를 통해 수행할 수 있습니다. 이렇게 하면 이 추천에 적용되는 모델 수준의 다각화 설정이 재정의됩니다. 허용되는 값은 PredictRequest.params의 API 문서를 참조하세요.

추천 필터 사용

predict 메서드에 filter 필드를 사용하여 Recommendations AI가 반환하는 추천을 필터링할 수 있습니다.

filter 필드에는 두 가지 형식의 필터 사양을 사용할 수 있습니다.

  • 태그 표현식

    제품을 업로드할 때 tag 값을 제품에 추가한 경우, 필터링하는 모든 태그와 일치하는 제품만 추천으로 반환되도록 지정할 수 있습니다. 자세히 알아보기

    태그 표현식에는 부울 연산자 OR 또는 NOT이 포함될 수 있으며, 이는 1개 이상의 공백을 사용하여 태그 값과 구분되어야 합니다. 태그 값 바로 앞에 NOT 연산자와 같은 대시(-)를 추가할 수도 있습니다. 부울 연산자를 사용하는 태그 표현식은 괄호로 묶어야 합니다.

  • filterOutOfStockItems

    filterOutOfStockItems 플래그는 stockStateOUT_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"