Google 판매자 센터 전송

Google 판매자 센터용 BigQuery Data Transfer Service를 사용하여 Google 판매자 센터 보고 데이터의 반복 로드 작업을 자동으로 예약하고 관리할 수 있습니다.

지원되는 보고서

Google 판매자 센터용 BigQuery Data Transfer Service는 현재 다음과 같은 데이터를 지원합니다.

제품 및 제품 문제

  • 여기에는 피드 또는 Content API for Shopping을 통해 판매자 센터에 제공되는 제품 데이터가 포함됩니다. 또한 Google이 제품에서 감지한 항목 수준의 문제도 포함됩니다. 이 데이터는 Google 판매자 센터에서 보거나 Content API for Shopping을 쿼리하여 확인할 수 있습니다.

  • 이 데이터가 BigQuery에 로드되는 방법에 대한 정보는 Google 판매자 센터 제품 테이블 스키마를 참조하세요.

가격 벤치마크

  • 여기에는 제품 수준 가격 벤치마크 데이터가 포함되며 Google 판매자 센터를 통해 제공되는 가격 경쟁력 보고서와 동일한 정의를 기반으로 합니다.

  • 이 데이터가 BigQuery에 로드되는 방법에 대한 정보는 Google 판매자 센터 가격 벤치마크 테이블 스키마를 참조하세요.

베스트셀러

  • 여기에는 쇼핑 광고 및 무료 목록에서 가장 인기 있는 제품과 브랜드에 대한 데이터와 인벤토리에 재고가 있는지 여부가 포함됩니다.

  • Google 판매자 센터를 통해 제공되는 베스트셀러 보고서를 기반으로 합니다.

  • 베스트셀러 보고서는 다음 표로 구성됩니다.

    1. BestSellers_TopProducts_는 국가별 상위 제품 및 Google 상품 카테고리 순위를 나열한 목록입니다. 이 테이블은 쇼핑 광고 및 무료 목록의 모든 판매자 데이터를 나타냅니다.
    2. BestSellers_TopProducts_Inventory_는 인기 제품과 인벤토리 간의 매핑 테이블입니다.
    3. BestSellers_TopBrands_는 국가 및 Google 제품 카테고리별로 계산된 상위 브랜드의 순위 목록입니다. 이는 쇼핑 광고와 무료 목록에 있는 모든 판매자의 데이터를 나타냅니다.
  • 베스트셀러 데이터가 BigQuery에 로드되는 방식에 대한 자세한 내용은 Google 판매자 센터 최고 제품, 제품 인벤토리, 인기 브랜드 테이블 스키마를 참조하세요.

현재 Google 판매자 센터용 BigQuery Data Transfer Service는 다음과 같은 보고 옵션을 지원합니다.

보고 옵션 지원
일정

일별, 주별, 월별 또는 커스텀으로 설정할 수 있습니다. 기본적으로 전송이 생성될 때 일별로 설정됩니다. 전송 사이의 최소 간격은 6시간입니다.

제한사항

모든 판매자 센터 전송에는 다음 제한이 적용됩니다.

  • 판매자 ID에 대한 전송을 생성한 후 판매자 계정 데이터를 준비하고 전송하기 전에 최대 90분 기다려야 할 수 있습니다.
  • 최대 백필 기간은 설정할 수 없습니다. 이전 데이터 백필은 현재 지원되지 않습니다. 현재 데이터에 대한 백필만 설정할 수 있습니다.

제품 및 제품 문제

  • BigQuery의 제품 및 제품 문제 데이터는 판매자 계정의 실시간 보기를 나타내지 않습니다. 데이터 타임라인을 보려면 스키마의 product_data_timestamp 필드를 참조하세요.

가격 벤치마크

  • 가격 벤치마크 데이터는 가격 벤치마크의 실시간 뷰를 나타내지 않습니다. 데이터 타임라인을 보려면 가격 벤치마크 스키마의 price_benchmark_timestamp 필드를 참조하세요.
  • 모든 제품에 가격 벤치마크가 있는 것은 아닙니다.

베스트셀러

  • 모든 국가가 순위 데이터를 포함하는 것은 아닙니다. 보고서에 포함된 국가: US, DE, FR, UK, NL, JP, AU, CA, SE, IT, ES, CH, DK, CZ, BE, RU
  • 인기 판매자 데이터는 브랜드 순위의 실시간 보기를 나타내지 않습니다. 데이터 타임라인을 보려면 BestSellers_TopProducts_BestSellers_TopBrands_ 스키마의 rank_timestamp 필드를 참조하세요.
  • 쇼핑 광고 및 무료 목록에서 가장 인기있는 상품만 BestSellers_TopProducts_ 테이블에 포함됩니다.
  • 쇼핑 광고 및 무료 목록에서 가장 인기있는 브랜드만 BestSellers_TopBrands_ 테이블에 포함됩니다. BestSellers_TopBrands_ 테이블의 브랜드에 매핑되지 않는 google_brand_id가 있는 Products_ 테이블에 행이 있을 수 있습니다.
  • google_brand_id 필드의 브랜드 ID는 시간 경과에 따라 변화하는 기업 및 브랜드의 특성을 반영하기 위해 변경될 수 있습니다. 따라서 장기간에 걸쳐 브랜드 집합을 추적하는 것은 보장되지 않습니다.
  • 여러 카테고리에서 브랜드 순위가 결정되지만 Products_ 테이블의 모든 제품은 리프 카테고리에 속합니다. 비리프 카테고리에서 브랜드와 제품을 조인하려면 베스트셀러 샘플 쿼리에 표시된 대로 google_product_category_ids 필드를 사용합니다.

멀티 클라이언트 계정(MCA) 지원

여러 판매자 ID를 가진 기존 고객은 상위 멀티 클라이언트 계정(MCA)을 구성하는 것이 좋습니다. MCA를 구성하면 모든 판매자 ID의 단일 전송을 만들 수 있습니다.

Google 판매자 센터 MCA를 사용하면 개별 판매자 ID를 사용할 때보다 여러 가지 이점이 있습니다.

  • 여러 판매자 ID의 보고 데이터를 전송할 때 더 이상 여러 전송을 관리할 필요가 없습니다.
  • 여러 판매자 ID가 포함된 쿼리는 모든 판매자 ID 데이터가 동일한 테이블에 저장되므로 훨씬 더 쉽게 작성할 수 있습니다.
  • MCA를 사용하면 모든 판매자 ID 데이터가 동일한 작업으로 로드되므로 잠재적인 BigQuery 로드 작업 할당량 문제가 완화됩니다.

MCA를 사용할 경우의 한 가지 단점은 후속 쿼리 비용이 높아질 수 있다는 점입니다. 모든 데이터가 동일한 테이블에 저장되므로 개별 판매자 ID의 데이터를 검색하는 쿼리가 여전히 전체 테이블을 검색해야 합니다.

MCA를 사용하는 경우 aggregator_id 아래에 MCA ID가 나열되고 merchant_id 아래에 개별 하위 계정이 나열됩니다. MCA를 사용하지 않는 계정의 경우 aggregator_idnull로 설정됩니다.

시작하기 전에

Google 판매자 센터 전송을 만들기 전에 다음을 수행하세요.

  • BigQuery Data Transfer Service 사용 설정에 필요한 모든 작업을 완료했는지 확인합니다.
  • Google 판매자 센터 데이터를 저장할 BigQuery 데이터세트를 생성합니다.
  • 기본 BigQuery 웹 UI를 사용하여 전송을 만들려면 권한 창을 볼 수 있도록 bigquery.cloud.google.com에서 팝업을 허용합니다. Google 판매자 센터용 BigQuery Data Transfer Service가 Google 쇼핑에서 제품 목록 및 계정을 관리할 수 있는 권한을 허용해야 합니다.
  • Pub/Sub의 전송 실행 알림을 설정하려면 pubsub.topics.setIamPolicy 권한이 있어야 합니다. 이메일 알림만 설정한다면 Pub/Sub 권한이 필요하지 않습니다. 자세한 내용은 BigQuery Data Transfer Service 실행 알림을 참조하세요.

필수 권한

전송을 만드는 사람에게 다음과 같은 필수 권한이 있는지 확인합니다.

  • BigQuery:

    • 전송을 만들 bigquery.transfers.update 권한
    • 대상 데이터세트에 대한 bigquery.datasets.update 권한

    사전 정의된 IAM 역할 bigquery.admin에는 bigquery.transfers.updatebigquery.datasets.update 권한이 포함됩니다. BigQuery Data Transfer Service의 IAM 역할에 대한 자세한 내용은 액세스 제어 참조를 참조하세요.

  • Google 판매자 센터:

    • 전송 구성에 사용되는 Google 판매자 센터 계정에 액세스하세요. Google 판매자 센터 UI에서 사용자 섹션을 클릭하여 액세스 권한을 확인할 수 있습니다.

    • 가격 경쟁력 및 베스트셀러 데이터에 액세스하려면 먼저 시장 분석 프로그램을 사용하도록 설정해야 합니다.

Google 판매자 센터 전송 설정

Google 판매자 센터 보고를 위한 데이터 전송을 설정하려면 다음이 필요합니다.

  • 판매자 ID 또는멀티 클라이언트 계정 ID: Google 판매자 센터 UI의 왼쪽 상단 섹션에 표시되는 판매자 ID입니다.

Google 판매자 센터 보고를 위한 데이터 전송을 만들려면 다음 안내를 따르세요.

Console

  1. Cloud Console에서 BigQuery 웹 UI로 이동합니다.

    Cloud Console로 이동

  2. 전송을 클릭합니다.

  3. 전송 만들기를 클릭합니다.

  4. 전송 만들기 페이지에서 다음을 수행합니다.

    • 소스 유형 섹션에서 소스Google 판매자 센터를 선택합니다.

    • 전송 구성 이름 섹션의 표시 이름에 전송 이름(예: My Transfer)을 입력합니다. 전송 이름은 나중에 수정해야 할 경우에 대비해 전송을 식별할 수 있는 값이면 됩니다.

      전송 이름

    • 일정 옵션 섹션의 일정에서 설정 시간에 시작을 클릭합니다.

      • 반복 빈도에서 전송을 실행할 빈도 옵션을 선택합니다.

        • 매일(기본값)
        • 매주
        • 매월
        • 커스텀
        • 주문형
      • 시작일 및 실행 시간에 전송을 시작할 날짜 및 시간을 입력합니다. 이 값은 현재 UTC 시간에서 90분 이상 경과한 시간이어야 합니다. 지금 시작을 선택하면 이 옵션은 사용 중지됩니다.

        전송 일정

        일정 옵션을 지금 시작으로 설정한 상태로 두면 첫 번째 전송 실행이 즉시 시작되고, 오류 메시지(No data to transfer found for the Merchant account. If you have just created this transfer, you may need to wait for up to 90 minutes before the data of your Merchant account are prepared and available for the transfer.)와 함께 실패합니다. 이 오류가 발생하면 90분 동안 기다린 후 오늘 날짜로 백필을 설정하거나 다음 예약이 실행되는 내일까지 기다리세요.

    • 대상 설정 섹션의 대상 데이터세트에서 데이터를 저장하기 위해 만든 데이터세트를 선택합니다.

      전송 데이터세트

    • 데이터 소스 세부정보 섹션에서 판매자 ID에 판매자 ID 또는 MCA ID를 입력합니다.

      전송할 보고서를 선택하세요. 자세한 내용은 지원되는 보고서를 참조하세요.

      Google 판매자 센터는 데이터를 전송합니다.

    • (선택사항) 알림 옵션 섹션에서 다음을 수행합니다.

      • 전환을 클릭해서 이메일 알림을 사용 설정합니다. 이 옵션을 사용 설정하면 전송 실행이 실패할 때 전송 관리자에게 이메일 알림이 발송됩니다.
      • Pub/Sub 주제 선택에서 주제 이름을 선택하거나 주제 만들기를 클릭합니다. 이 옵션은 전송에 대한 Pub/Sub 실행 알림을 구성합니다.
  5. 저장을 클릭합니다.

기본 UI

  1. 기본 BigQuery 웹 UI로 이동합니다.

    기본 BigQuery 웹 UI로 이동

  2. 전송을 클릭합니다.

  3. 전송 추가를 클릭합니다.

  4. 새 전송 페이지에서 다음을 수행합니다.

    • 소스에서 Google 판매자 센터를 선택합니다.
    • 표시 이름에 전송 이름(예: My Transfer)을 입력합니다. 전송 이름은 나중에 수정해야 할 경우에 전송을 쉽게 식별할 수 있는 값이면 됩니다.
    • 일정에서 수정을 클릭하고 Starting (UTC)(시작(UTC)) 시간을 현재 시간에서 90분 이상 지난 시간으로 변경합니다.

      전송 일정

      기본 예약 설정을 그대로 두면 첫 번째 전송 실행이 즉시 시작되고 오류 메시지(No data to transfer found for the Merchant account. If you have just created this transfer, you may need to wait for up to 90 minutes before the data of your Merchant account are prepared and available for the transfer.)와 함께 실패합니다. 이 오류가 발생하면 90분 동안 기다린 후 오늘 날짜로 백필을 설정하거나 다음 예약이 실행되는 내일까지 기다리세요.

    • 대상 데이터세트에서 Google 판매자 센터 데이터를 저장하기 위해 만든 데이터세트를 선택합니다.

    • 판매자 ID에 판매자 ID 또는 MCA 계정 ID를 입력합니다.

      Google 판매자 센터 전송

    • 전송할 보고서를 선택하세요. 자세한 내용은 지원되는 보고서를 참조하세요.

      Google 판매자 센터는 데이터를 전송합니다.

    • (선택사항) 고급 섹션을 펼쳐서 전송 실행 알림을 구성합니다.

      • Pub/Sub 주제주제 이름(예: projects/myproject/topics/mytopic)을 입력합니다.
      • 전송 실행 실패 시 이메일 알림을 허용하려면 이메일 알림 전송을 선택합니다.
      • 전송 설정 시 사용 중지됨을 선택하지 않습니다. 기존 전송을 사용 중지하려면 전송 작업을 참조하세요.

        Pub/Sub 주제

  5. 추가를 클릭합니다.

  6. 메시지가 표시되면 허용을 클릭하여 BigQuery Data Transfer Service에 Google 쇼핑의 제품 목록 및 판매자 계정을 관리하고, BigQuery에서 데이터에 액세스하고 관리할 수 있는 권한을 부여합니다. 권한 창을 보려면 bigquery.cloud.google.com에서 팝업을 허용해야 합니다.

    판매자 센터의 전송 권한 대화상자

bq

bq mk 명령어를 입력하고 전송 생성 플래그 --transfer_config를 지정합니다. 다음 플래그도 필요합니다.

  • --data_source
  • --target_dataset
  • --display_name
  • --params

또한 --project_id 플래그를 입력하여 특정 프로젝트를 지정할 수도 있습니다. --project_id를 지정하지 않으면 기본 프로젝트가 사용됩니다.

bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source

각 항목의 의미는 다음과 같습니다.

  • project_id는 프로젝트 ID입니다.
  • dataset는 전송 구성의 대상 데이터 세트입니다.
  • name은 전송 구성의 표시 이름입니다. 전송 이름은 나중에 수정해야 할 경우에 대비해 전송을 식별할 수 있는 값이면 됩니다.
  • parameters에는 JSON 형식으로 생성된 전송 구성의 매개변수가 있습니다. 예를 들면 --params='{"param":"param_value"}'입니다.
    • Google 판매자 센터 전송의 경우 merchant_id 매개변수를 제공해야 합니다.
    • export_products 매개변수는 제품 및 제품 문제 데이터를 전송할지 여부를 지정합니다. 이 매개변수는 export_products 매개변수를 지정하지 않은 경우에도 기본적으로 포함됩니다. 이 매개변수를 명시적으로 포함하고 "true"로 설정하는 것이 좋습니다.
    • export_price_benchmarks 매개변수는 가격 벤치마킹 데이터를 전송할지 여부를 지정합니다.
    • export_best_sellers 매개변수는 베스트셀러 데이터를 전송할지 여부를 지정합니다.
  • data_source는 데이터 소스(merchant_center)입니다.

예를 들어 다음 명령어는 판매자 ID 1234 및 대상 데이터세트 mydataset를 사용하여 My Transfer라는 Google 판매자 센터 전송을 만듭니다. 기본 프로젝트에 전송이 생성됩니다.

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"merchant_id":"1234","export_products":"true","export_price_benchmarks":"true","export_best_sellers":"true"}' \
--data_source=merchant_center

명령어를 처음 실행할 때 다음과 같은 메시지를 받게 됩니다.

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

메시지 안내를 따라 명령줄에 인증 코드를 붙여넣습니다.

이 전송을 만들고 최대 90분 동안 기다려야만 판매자 계정이 준비되고 전송 가능한 상태가 됩니다. 이 오류가 발생하면 90분 동안 기다린 후 오늘 날짜로 백필을 설정하거나 다음 예약이 실행되는 내일까지 기다리세요.

API

projects.locations.transferConfigs.create 메서드를 사용하고 TransferConfig 리소스의 인스턴스를 지정합니다.

Google 판매자 센터 전송 설정 문제해결

전송을 설정하는 데 문제가 발생하면 BigQuery Data Transfer Service 전송 설정 문제해결에서 Google 판매자 센터 전송 문제를 참조하세요.

데이터 쿼리

BigQuery로 전송되는 데이터는 수집 시간으로 파티션을 나눈 테이블에 기록됩니다. 자세한 내용은 파티션을 나눈 테이블 소개를 참조하세요.

Google 판매자 센터 테이블을 쿼리할 때는 _PARTITIONTIME 또는 _PARTITIONDATE 의사 열을 쿼리에 사용해야 합니다. 자세한 내용은 파티션을 나눈 테이블 쿼리를 참조하세요.

Products_ 테이블에는 중첩 및 반복 필드가 포함됩니다. 중첩 및 반복 데이터 처리에 대한 자세한 내용은 표준 SQL 문서의 반복 필드 처리의 차이점을 참조하세요.

Google 판매자 센터 샘플 쿼리

다음과 같은 Google 판매자 센터 샘플 쿼리를 사용하여 전송된 데이터를 분석할 수 있습니다. 또한 Google 데이터 스튜디오와 같은 시각화 도구에서 쿼리를 사용할 수 있습니다.

다음 각 쿼리에서 dataset를 해당 데이터 세트 이름으로 바꿉니다. merchant_id를 판매자 ID로 바꿉니다. MCA를 사용 중인 경우에는 merchant_id를 MCA ID로 바꿉니다.

제품 및 제품 문제 샘플 쿼리

제품 및 제품 문제 통계

다음 샘플 쿼리는 제품 수, 문제가 있는 제품, 일별 문제를 제공합니다.

콘솔

SELECT
  _PARTITIONDATE AS date,
  COUNT(*) AS num_products,
  COUNTIF(ARRAY_LENGTH(issues) > 0) AS num_products_with_issues,
  SUM(ARRAY_LENGTH(issues)) AS num_issues
FROM
  dataset.Products_merchant_id
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD'
GROUP BY
  date
ORDER BY
  date DESC

bq

bq query --use_legacy_sql=false '
SELECT
  _PARTITIONDATE AS date,
  COUNT(*) AS num_products,
  COUNTIF(ARRAY_LENGTH(issues) > 0) AS num_products_with_issues,
  SUM(ARRAY_LENGTH(issues)) AS num_issues
FROM
  dataset.Products_merchant_id
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD'
GROUP BY
  date
ORDER BY
  date DESC'

쇼핑 광고에 승인되지 않은 제품

다음 샘플 쿼리는 쇼핑 광고에 표시하도록 승인되지 않은 제품 수를 제공합니다. 제외되었거나 문제가 있는 제품이라서 승인되지 않았을 수 있습니다.

콘솔

SELECT
  _PARTITIONDATE AS date,
  COUNT(*) AS num_products
FROM
  dataset.Products_merchant_id,
  UNNEST(destinations) AS destination
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD' AND
  destination.status = 'disapproved'
GROUP BY
  date
ORDER BY
  date DESC

bq

bq query --use_legacy_sql=false '
SELECT
  _PARTITIONDATE AS date,
  COUNT(*) AS num_products
FROM
  dataset.Products_merchant_id,
  UNNEST(destinations) AS destination
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD' AND
  destination.status = 'disapproved'
GROUP BY
  date
ORDER BY
  date DESC'

승인되지 않은 문제가 있는 제품

다음 샘플 쿼리는 승인되지 않은 문제가 있는 제품 수를 검색합니다.

콘솔

SELECT
  _PARTITIONDATE AS date,
  COUNT(DISTINCT CONCAT(CAST(merchant_id AS STRING), ':', product_id))
      AS num_distinct_products
FROM
  dataset.Products_merchant_id,
  UNNEST(issues) AS issue
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD' AND
  issue.servability = 'disapproved'
GROUP BY
  date
ORDER BY
  date DESC

bq

bq query --use_legacy_sql=false '
SELECT
  _PARTITIONDATE AS date,
  COUNT(DISTINCT CONCAT(CAST(merchant_id AS STRING), ':', product_id))
      AS num_distinct_products
FROM
  dataset.Products_merchant_id,
  UNNEST(issues) AS issue
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD' AND
  issue.servability = 'disapproved'
GROUP BY
  date
ORDER BY
  date DESC'

가격 벤치마크 샘플 쿼리

제품 가격을 벤치마크와 비교

다음 쿼리는 ProductsPrice Benchmarks 데이터를 결합하여 제품 목록 및 관련 벤치마크를 반환합니다.

콘솔

WITH products AS
(
  SELECT
    _PARTITIONDATE AS date,
    *
  FROM
    dataset.Products_merchant_id
  WHERE
   _PARTITIONDATE >= 'YYYY-MM-DD'
),
benchmarks AS
(
  SELECT
    _PARTITIONDATE AS date,
    *
  FROM
    dataset.Products_PriceBenchmarks_merchant_id
  WHERE
    _PARTITIONDATE >= 'YYYY-MM-DD'
)
SELECT
  products.date,
  products.product_id,
  products.merchant_id,
  products.aggregator_id,
  products.price,
  products.sale_price,
  benchmarks.price_benchmark_value,
  benchmarks.price_benchmark_currency,
  benchmarks.country_of_sale
FROM
  products
INNER JOIN
  benchmarks
ON products.product_id = benchmarks.product_id AND
   products.merchant_id = benchmarks.merchant_id AND
   products.date = benchmarks.date

bq

bq query --use_legacy_sql=false '
WITH products AS
(
  SELECT
    _PARTITIONDATE AS date,
    *
  FROM
    `dataset.Products_merchant_id`
  WHERE
   _PARTITIONDATE >= 'YYYY-MM-DD'
),
benchmarks AS
(
  SELECT
    _PARTITIONDATE AS date,
    *
  FROM
    `dataset.Products_PriceBenchmarks_merchant_id`
  WHERE
   _PARTITIONDATE >= 'YYYY-MM-DD'
)
SELECT
  products.date,
  products.product_id,
  products.merchant_id,
  products.aggregator_id,
  products.price,
  products.sale_price,
  benchmarks.price_benchmark_value,
  benchmarks.price_benchmark_currency,
  benchmarks.country_of_sale
FROM
  products
INNER JOIN
  benchmarks
ON products.product_id = benchmarks.product_id AND
   products.merchant_id = benchmarks.merchant_id AND
   products.date = benchmarks.date'

베스트셀러 샘플 쿼리

지정된 카테고리 및 국가의 최고 제품

다음 쿼리는 미국의 스마트폰 카테고리에 대한 최상위 제품을 반환합니다.

콘솔

SELECT
  rank,
  previous_rank,
  (SELECT name FROM top_products.product_title WHERE locale = 'en-US') AS product_title,
  brand,
  price_range
FROM
  dataset.BestSellers_TopProducts_merchant_id AS top_products
WHERE
  _PARTITIONDATE = 'YYYY-MM-DD' AND
  ranking_category = 267 /*Smartphones*/ AND
  ranking_country = 'US'
ORDER BY
  rank

bq

bq query --use_legacy_sql=false '
SELECT
  rank,
  previous_rank,
  (SELECT name FROM top_products.product_title WHERE locale = 'en-US') AS product_title,
  brand,
  price_range
FROM
  dataset.BestSellers_TopProducts_merchant_id AS top_products
WHERE
  _PARTITIONDATE = 'YYYY-MM-DD' AND
  ranking_category = 267 /*Smartphones*/ AND
  ranking_country = 'US'
ORDER BY
  rank'

내 인벤토리의 인기 제품

다음 쿼리는 BestSellers_TopProducts_Inventory_BestSellers_TopProducts_ 데이터를 결합하여 현재 인벤토리에 있는 최고 제품 목록을 반환합니다.

콘솔

WITH latest_top_products AS
(
  SELECT
    *
  FROM
    dataset.BestSellers_TopProducts_merchant_id
  WHERE
    _PARTITIONDATE = 'YYYY-MM-DD'
),
latest_top_products_inventory AS
(
  SELECT
    *
  FROM
    dataset.BestSellers_TopProducts_Inventory_merchant_id
  WHERE
    _PARTITIONDATE = 'YYYY-MM-DD'
)
SELECT
  top_products.rank,
  inventory.product_id,
  (SELECT ANY_VALUE(name) FROM top_products.product_title) AS product_title,
  top_products.brand,
  top_products.gtins
FROM
  latest_top_products AS top_products
INNER JOIN
  latest_top_products_inventory AS inventory
USING (rank_id)

bq

bq query --use_legacy_sql=false '
WITH latest_top_products AS
(
  SELECT
    *
  FROM
    dataset.BestSellers_TopProducts_merchant_id
  WHERE
    _PARTITIONDATE = 'YYYY-MM-DD'
),
latest_top_products_inventory AS
(
  SELECT
    *
  FROM
    dataset.BestSellers_TopProducts_Inventory_merchant_id
  WHERE
    _PARTITIONDATE = 'YYYY-MM-DD'
)
SELECT
  top_products.rank,
  inventory.product_id,
  (SELECT ANY_VALUE(name) FROM top_products.product_title) AS product_title,
  top_products.brand,
  top_products.gtins
FROM
  latest_top_products AS top_products
INNER JOIN
  latest_top_products_inventory AS inventory
USING (rank_id)'

지정된 카테고리 및 국가의 최고 브랜드

다음 쿼리는 미국에서 스마트폰 카테고리의 최고 브랜드를 반환합니다.

콘솔

SELECT
  rank,
  previous_rank,
  brand
FROM
  dataset.BestSellers_TopBrands_merchant_id
WHERE
  _PARTITIONDATE = 'YYYY-MM-DD' AND
  ranking_category = 267 /*Smartphones*/ AND
  ranking_country = 'US'
ORDER BY
  rank

bq

  bq query --use_legacy_sql=false '
    SELECT
      rank,
      previous_rank,
      brand
    FROM
      dataset.BestSellers_TopBrands_merchant_id
    WHERE
      _PARTITIONDATE = 'YYYY-MM-DD' AND
      ranking_category = 267 /*Smartphones*/ AND
      ranking_country = 'US'
    ORDER BY
      rank'

인벤토리의 최고 브랜드 제품

다음 쿼리는 인벤토리에 있는 최고 브랜드의 제품 목록을 카테고리 및 국가별로 나열하여 반환합니다.

콘솔

  WITH latest_top_brands AS
  (
    SELECT
      *
    FROM
      dataset.BestSellers_TopBrands_merchant_id
    WHERE
      _PARTITIONDATE = 'YYYY-MM-DD'
  ),
  latest_products AS
  (
    SELECT
      product.*,
      product_category_id
    FROM
      dataset.Products_merchant_id AS product,
      UNNEST(product.google_product_category_ids) AS product_category_id
    WHERE
      _PARTITIONDATE = 'YYYY-MM-DD'
  )
  SELECT
    top_brands.brand,
    (SELECT name FROM top_brands.ranking_category_path
    WHERE locale = 'en-US') AS ranking_category,
    top_brands.ranking_country,
    top_brands.rank,
    products.product_id,
    products.title
  FROM
    latest_top_brands AS top_brands
  INNER JOIN
    latest_products AS products
  ON top_brands.google_brand_id = products.google_brand_id AND
     top_brands.ranking_category = product_category_id AND
     top_brands.ranking_country = products.target_country

CLI

bq query --use_legacy_sql=false '
    WITH latest_top_brands AS
  (
    SELECT
      *
    FROM
      dataset.BestSellers_TopBrands_merchant_id
    WHERE
      _PARTITIONDATE = 'YYYY-MM-DD'
  ),
  latest_products AS
  (
    SELECT
      product.*,
      product_category_id
    FROM
      dataset.Products_merchant_id AS product,
      UNNEST(product.google_product_category_ids) AS product_category_id
    WHERE
      _PARTITIONDATE = 'YYYY-MM-DD'
  )
  SELECT
    top_brands.brand,
    (SELECT name FROM top_brands.ranking_category_path
    WHERE locale = 'en-US') AS ranking_category,
    top_brands.ranking_country,
    top_brands.rank,
    products.product_id,
    products.title
  FROM
    latest_top_brands AS top_brands
  INNER JOIN
    latest_products AS products
  ON top_brands.google_brand_id = products.google_brand_id AND
     top_brands.ranking_category = product_category_id AND
     top_brands.ranking_country = products.target_country'