이 문서는 Recommendations AI, Retail Search, 새로운 Retail 콘솔에 대한 문서입니다.

카탈로그 및 카탈로그 정보

이 페이지에서는 카탈로그 정보를 만들고 카탈로그 데이터를 채우기 위한 권장사항을 제공합니다.

개요

Retail로 가져온 카탈로그 데이터는 결과 모델의 품질에 직접적인 영향을 주므로 Retail API가 제공하는 결과의 품질에도 영향이 있습니다. 일반적으로 더 정확하고 구체적인 카탈로그 정보를 제공하면 모델의 품질이 높아집니다.

카탈로그는 최신 상태를 유지해야 합니다. 필요에 따라 카탈로그 변경사항을 자주 업로드할 수 있습니다. 이상적으로는 높은 변경률로 매일 변경될 수도 있습니다. 기존 제품 항목을 업로드(패치)할 수 있습니다. 변경된 필드만 업데이트됩니다. 카탈로그 정보는 업로드 시 요금이 부과되지 않습니다. 자세한 내용은 카탈로그를 최신 상태로 유지를 참조하세요.

카탈로그 분기

Retail Search를 사용하는 경우 카탈로그 분기를 사용하여 오프라인에 업로드한 새 데이터를 사이트에 게시하기 전에 테스트할 수 있습니다.

Retail API를 사용하면 0, 1, 2로 식별된 3개의 분기를 사용할 수 있습니다. 라이브 사이트에서 카탈로그 데이터의 default_branch를 가리킵니다. Google Cloud Console에서 setDefaultBranch 또는 데이터 탭을 사용하여 현재 라이브 default_branch(분기가 기본적으로 0으로 설정됨)의 분기를 확인합니다. 그런 후 default_branch가 연결되는 분기에서 제공된 카탈로그 데이터가 사이트에 사용됩니다.

예를 들어 default_branch가 현재 분기 ID 0으로 설정되어 있으므로 사이트에서 해당 분기에 업로드한 카탈로그 데이터를 사용하고 있다고 가정해 보겠습니다. 분기 1에 새 카탈로그 데이터를 업로드하고 미리 볼 수 있습니다. 카탈로그가 올바르게 업로드되었음을 확인한 후 라이브 default_branch를 분기 1로 전환할 수 있습니다.

분기 전환 후 카탈로그 캐시가 업데이트되는 데 최대 30분이 걸릴 수 있습니다.

Recommendations AI를 사용하는 경우 분기 전환 중에는 업데이트 지연으로 인해 기본 분기만 사용하는 것이 좋습니다. 분기 간의 데이터 차이가 크면 업데이트 지연이 예측 결과에 부정적인 영향을 줄 수 있습니다.

제품

카탈로그는 제품 객체의 모음입니다.

필수 제품 정보

다음 필드는 필수입니다. 카탈로그에서 제품 항목을 만들 때 이 필드에 값을 제공해야 합니다. 또한 내부 제품 데이터베이스에서 사용되는 값과 일치해야 하며, 이 값은 제품 학습에 포함되어 있기 때문에 표시된 제품을 정확하게 반영해야 합니다.

일부 경우에는 다른 필드도 필요합니다. Product 참조 페이지에서 모든 제품 필드의 전체 목록을 참조하세요.

제공하는 모든 제품 정보를 사용하여 추천 및 검색결과의 품질을 개선할 수 있습니다. 가능한 한 많은 필드를 제공해야 합니다.

필드 참고
name 제품의 전체 리소스 이름입니다. import를 제외한 모든 `제품` 메서드의 필수 항목입니다. 가져오는 동안 이름은 자동으로 생성되며 수동으로 제공할 필요가 없습니다.
id 제품 데이터베이스에서 사용하는 제품 ID입니다. ID 필드는 전체 카탈로그에서 고유해야 합니다. 사용자 이벤트를 기록할 때 동일한 값이 사용되며 predictsearch 메서드에서도 반환됩니다.
title 제품 데이터베이스의 제품 제목입니다. UTF-8로 인코딩된 문자열입니다. 영문 기준 최대 1,250자까지 입력할 수 있습니다.

제품 속성

Product에서 브랜드, 색상, 크기와 같은 사전 정의된 시스템 속성에 값을 제공하는 것이 좋습니다. Product.attributes로 정의하는 커스텀 속성을 포함할 수도 있습니다.

Retail Search를 사용하는 경우 속성을 Product.retrievableFields에서 검색 가능한 것으로 표시하면 속성이 검색 응답에 제품과 함께 포함됩니다. 필터링 및 패싯과 같은 다른 Retail Search 기능에 사용할 수 있습니다.

제품 수준

판매자 센터 계정을 연결하여 카탈로그를 가져오는 경우 모든 유형의 제품을 수집할 수 있습니다. BigQuery 또는 Cloud Storage에서 처음으로 카탈로그를 가져오는 경우 다음 제품 수준 중 하나를 지정할 수 있습니다.

  • 기본 항목은 Retail API가 예측 또는 검색결과에서 반환하는 항목입니다. 이는 개별(SKU 수준) 항목 또는 유사한 항목 그룹(SKU 그룹)일 수 있습니다. 기본적으로 제품 수준이 정의되지 않은 경우 Retail API는 기본 제품 수준을 사용하고 모든 유형의 제품을 수집합니다.

  • 변이 항목은 기본 제품의 버전입니다. 개별 (SKU 수준) 항목만 변이 항목이 될 수 있습니다. 예를 들어 기본 제품이 '브이넥 셔츠'라면 변이 항목은 '갈색 브이넥 셔츠, XL 사이즈' 및 '화이트 브이넥 셔츠, S 사이즈'일 수 있습니다. 기본 및 변이 항목을 각각 '상위' 항목과 '하위' 항목이라고도 합니다.

카탈로그 가져오기 중에 Catalog.patch 메서드를 사용하여 제품 수준을 설정합니다. 예를 들면 다음과 같습니다.

curl -X PATCH 
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
--data '{ "productLevelConfig": { "ingestionProductType": "PRODUCT-TYPE", "merchantCenterProductIdField": "PRODUCT-ID-FIELD" } }'
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog"

구현에 가장 적합한 제품 수준을 결정하려면 카탈로그 데이터와 웹사이트 로직을 검토해야 합니다. 사용자 이벤트 데이터를 캡처할 때 어떤 제품 ID를 사용할 수 있는가? 예측 또는 검색결과와 함께 반환하는 데 가장 효과적인 제품 ID는 무엇인가요? 이러한 ID는 어떤 차이가 있고 서로 어떤 관계에 있나요?

판매자 센터에서 가져오는지 여부에 따라 적절한 단계를 사용합니다.

판매자 센터에서 가져올 제품 수준 결정하기

판매자 센터에서 카탈로그 데이터를 가져올 때 Retail API가 ingestionProductType을 사용하여 기본 또는 변이로 업로드할지 여부를 식별하고 merchantCenterProductIdField 필드를 사용하여 판매자 센터 offer_id 또는 item_group_id제품 ID로 지정합니다.

카탈로그 데이터와 웹사이트 로직을 검토하여 다음 질문에 자문해 보세요.

  • 카탈로그에 기본 및 변이 항목이 모두 있는가?
  • 그렇다면 사용자 이벤트 데이터를 캡처할 때 사용할 수 있는 항목 수준은 무엇인가?
  • 결과로 반환해야 하는 항목 유형은 무엇인가?

다음 중 어떤 경우에 해당하는지 파악하세요.

  1. 카탈로그에 하나의 항목 수준만 있습니다. 다음 중 하나에 해당할 수 있습니다.

    • 모든 제품과 이벤트가 SKU 수준에 있으며 SKU 수준의 예측을 원합니다.
    • 모든 제품과 이벤트가 그룹 수준에 있으며 그룹 수준의 예측을 원합니다.

    이 경우 기본 항목만 가져옵니다. 이는 기본 가져오기 설정입니다.

  2. 그룹 수준(기본) 예측을 원하지만 판매자 센터 제품이 SKU 수준입니다. 이 경우 가져오기 결정은 이벤트가 캡처되는 방식에 따라 다릅니다.

    1. 이벤트가 그룹 수준에서 캡처됩니다. 이러한 경우 가져오는 동안 다음 설정을 사용합니다.

      여러 판매자 센터 제품에서 동일한 판매자 센터 item_group_id를 사용하는 경우 Retail은 이러한 제품들 중 하나만을 기본 제품으로 가져오고 item_group_id제품 ID로 사용합니다. 이 경우 item_group_id가 없는 제품은 가져올 수 없습니다. 기록된 이벤트가 기본 (그룹 수준) 제품 ID를 참조해야 합니다.

    2. 이벤트가 SKU 수준에서 캡처됩니다. 이러한 경우 가져오는 동안 다음 설정을 사용합니다.

      Retail은 변이로 제품을 가져오고 판매자 센터 offer_id제품 ID로 사용합니다. 기록된 이벤트가 변이 (SKU 수준) 제품 ID를 참조해야 합니다.

판매자 센터를 사용하지 않고 가져올 제품 수준 결정하기

모든 제품에 primaryProductId 값이 있어야 합니다. 그렇지 않으면 아무런 제품도 가져올 수 없습니다. 일부 항목에만 primaryProductId가 설정되어 있고 다른 항목에는 설정되지 않은 카탈로그 데이터는 가져올 수 없습니다.

  1. 카탈로그에 항목 수준이 하나만 있다면 다음 중 하나에 해당할 수 있습니다.

    • 모든 제품과 이벤트가 SKU 수준에 있으며 SKU 수준의 결과를 원합니다.
    • 모든 제품과 이벤트가 그룹 수준에 있으며 그룹 수준의 결과를 원합니다.

    이 경우 기본 항목만 가져옵니다. 기본 권장 가져오기 설정입니다.

  2. 이벤트 및 제품이 SKU 수준인 경우 그룹 수준의 결과를 가져올 수 있습니다. 가져오는 동안 ingestionProductTypevariant로 설정합니다.

그룹 수준의 이벤트 및 제품만 있는 경우 SKU 수준의 예측과 검색이 지원되지 않습니다.

향후 판매자 센터에서 카탈로그 데이터를 가져올 계획이라면 판매자 센터 가져오기에 설명된 대로 데이터를 검토하여 올바른 옵션을 선택했는지 확인하세요. 카탈로그를 삭제하고 다시 업로드해야만 이 구성을 변경할 수 있습니다(제품 수준 구성 변경 참조).

카탈로그 데이터 품질 측정항목

Retail은 카탈로그 데이터의 검색 품질을 모니터링할 수 있도록 제품 데이터를 일련의 품질 규칙으로 평가합니다. Retail 데이터 페이지에서 각 품질 규칙을 충족하는 제품의 비율을 확인할 수 있습니다.

다음 표에는 Retail에서 제품 데이터를 평가하는 데 사용하는 품질 측정항목이 나와 있습니다.

카탈로그 품질 측정항목 품질 규칙 참고
URI가 있고 액세스할 수 있음 제품에 유효한 Product.uri가 있습니다. URI는 액세스할 수 있어야 하고 도메인과 일치해야 합니다. Cloud Retail Search는 이 URI를 통해 크롤링되는 웹 신호를 사용하여 검색 품질을 개선합니다.
시간 적합성 충족 Product.availableTime은 현재 시간 이전이고 Product.expireTime은 현재 시간 이후입니다. 시간 적합성을 충족하는 제품만 검색할 수 있습니다.
검색 가능한 속성 있음 제품에 attribute 하나 이상이 검색 가능하도록 설정되어 있습니다. 검색 가능으로 표시된 커스텀 속성은 텍스트 쿼리로 검색될 수 있습니다.
설명 있음 제품에 비어 있지 않은 Product.description이 있습니다. 포괄적인 설명은 검색 품질을 향상시키는 데 도움이 됩니다.
제목은 단어 최소 두 개 이상으로 구성됩니다. Product.title은 단어 최소 두 개 이상으로 구성됩니다. 포괄적인 제목을 사용하면 검색 품질을 향상시키는 데 도움이 됩니다.
이미지가 있는 변이 있음 variant 제품에는 Product.image가 하나 이상 있습니다. 모든 제품이 primary 수준인 경우 이 측정항목을 무시할 수도 있습니다. 이 측정항목은 정보 제공 용도며 검색 품질에 영향을 주지 않습니다.
가격 정보가 있는 변이 있음 variant 제품에 Product.priceInfo가 설정되어 있습니다. 모든 제품이 primary 수준인 경우 이 측정항목을 무시할 수도 있습니다. 이 측정항목은 정보 제공 용도며 검색 품질에 영향을 주지 않습니다.

Retail 스키마

BigQuery에서 카탈로그를 가져올 때는 아래의 Retail 스키마를 사용하여 올바른 형식으로 BigQuery 테이블을 만들어 카탈로그 데이터와 함께 로드합니다. 그런 다음 카탈로그를 가져옵니다.