Google Merchant Center 转移作业

借助适用于 Google Merchant Center 的 BigQuery Data Transfer Service,您可以自动安排和管理 Google Merchant Center 报告数据的周期性加载作业。

支持的报告

适用于 Google Merchant Center 的 BigQuery Data Transfer Service 支持以下数据:

商品和商品问题

商品和商品问题报告包括通过 Feed 或使用 Content API for Shopping 向 Merchant Center 提供的商品数据。此报告还包括 Google 检测到的商品项级别问题。您可以在 Google Merchant Center 中或通过查询 Content API for Shopping 来查看商品和商品问题数据。如需了解如何将此数据加载到 BigQuery,请参阅 Google Merchant Center 商品表架构

地区商品目录

地区商品目录报告包括有关商品的地区性库存状况和价格替换的更多商品数据。如需了解如何将此数据加载到 BigQuery 中,请参阅 Google Merchant Center 地区商品目录表架构

本地商品目录

本地商品目录包括有关商品的本地商品目录的更多商品数据。此报告包含有关本地价格、库存状况、数量、自提和店内商品位置的数据。如需了解如何将此数据加载到 BigQuery 中,请参阅 Google Merchant Center 本地商品目录表架构

性能

效果报告可提供对广告和非付费商品详情中的效果数据的精细细分。如需了解如何将此数据加载到 BigQuery 中,请参阅 Google Merchant Center 效果表架构

畅销商品

畅销商品报告提供的数据与 Google Merchant Center 界面中的数据相同,并支持回填至多 2 年前的国家/地区或类别的数据。其中包括关于购物广告和非付费商品详情中最受欢迎的商品和品牌的数据,以及您的商品目录中是否有这些商品和品牌。此报告基于 Google Merchant Center 提供的畅销商品报告。如需了解如何将此数据加载到 BigQuery 中,请参阅 Google Merchant Center 畅销商品表架构

价格竞争力

价格竞争力报告(以前称为价格基准报告)包括商品级别属性和价格基准数据,它基于通过 Google Merchant Center 提供的价格竞争力报告中的定义。如需了解如何将此数据加载到 BigQuery 中,请参阅 Google Merchant Center 价格竞争力表架构

价格分析

使用价格分析报告查看商品的建议售价,以及更新商品价格后的效果预测。使用价格分析报告可以帮助您更有效地为商品定价。如需详细了解如何使用此报告中的数据,请参阅使用价格分析报告改善商品定价。如需了解如何将此数据加载到 BigQuery 中,请参阅 Google Merchant Center 价格分析表架构

产品定位

请在设置转移作业时启用产品定位报告,以便在将 Google 购物中的数据加载到 BigQuery 时公开广告定位信息。如需了解如何将数据加载到 BigQuery 中,请参阅 Google Merchant Center 产品定位表架构

报告选项

适用于 Google Merchant Center 的 BigQuery Data Transfer Service 支持以下报告选项:

报告选项 支持
时间表

可配置为每天、每周、每月或自定义。默认情况下,创建转移作业时,此项设置为每天。转移作业之间的最短间隔为 6 小时。

从 Google Merchant Center 转移作业注入数据

当您将数据从 Google Merchant Center 转移到 BigQuery 时,数据会加载到按日期分区的 BigQuery 表中。数据加载到的表分区对应于数据源中的日期。如果您在同一日期安排多次转移,BigQuery Data Transfer Service 会使用最新数据覆盖该特定日期的分区。同一天的多个转移作业或正在运行的回填不会导致重复数据,其他日期的分区不受影响。

限制

某些报告可能有自己的限制条件,例如对于历史数据回填支持不同的时间长度。以下部分介绍每个报告的限制。

历史数据回填支持

各个报告对历史数据回填的支持不一定相同。下面列出了各个报告对历史数据回填的支持级别。

  • 商品和商品问题 - 14 天
  • 本地商品目录 - 14 天
  • 地区商品目录 - 14 天
  • 表现 - 2 年
  • 畅销商品 - 2 年
  • 价格竞争力 - 不支持回填
  • 价格分析 - 不支持回填

商品和商品问题

  • BigQuery 中的商品和商品问题数据不代表您的商家账号的实时视图。如需查看数据的时间轴,请参阅架构中的 product_data_timestamp 字段。

价格基准

  • 价格基准数据并不代表价格基准的实时视图。如需查看数据的时间轴,请参阅价格基准架构中的 price_benchmark_timestamp 字段。
  • 并非所有商品都有价格基准。

畅销商品

  • 并非所有国家/地区都包含排名数据。报告中包含的国家/地区(使用 ISO 3166-1 alpha-2):AT、AU、BE、BR、CA、CH、CZ、DE、DK、ES、FI、FR、GB、HU IE、IN、IT、JP、MX、NL、NO、NZ、PL、PT、RO、RU、SE、SK、TR、UA、US。
  • 畅销商品数据不代表品牌排名的实时视图。如需查看数据的时间轴,请参阅 BestSellers_TopProducts_BestSellers_TopBrands_ 架构中的 rank_timestamp 字段。
  • Products_ 表中可能会有含未映射到 BestSellers_TopBrands_ 表中的任何品牌的 google_brand_id 的行。
  • google_brand_id 字段中的品牌 ID 可能会随时间发生变化,以反映商家和品牌的变化性质。因此,无法保证长时间跟踪一组品牌。
  • 虽然品牌按多种不同类别进行排名,但 Products_ 表中的所有商品均采用叶类别。要加入非叶类别的品牌和商品,请使用 google_product_category_ids 字段(如畅销商品示例查询所示)。

多客户账号 (MCA) 支持

建议具有多个商家 ID 的现有客户配置父级多客户账号 (MCA)。 通过配置 MCA,您可以创建单个转移作业来覆盖您所有的商家 ID。

与使用单个商家 ID 相比,使用 Google Merchant Center MCA 具有多项优势:

  • 您无需再管理多个转移作业,即可为多个商家 ID 转移报告数据。
  • 由于所有商家 ID 的数据都存储在同一个表中,编写涉及多个商家 ID 的查询变得容易得多。
  • 使用 MCA 可以缓解潜在的 BigQuery 加载作业配额问题,因为您的所有商家 ID 数据都将加载到同一作业中。

使用 MCA 的一项可能的缺点是后续查询费用有可能较高。由于您的所有数据都存储在同一个表中,检索单个商家 ID 数据的查询仍然必须扫描整个表。

如果使用的是 MCA,则 MCA ID 将在 aggregator_id 下列出,各子账号将在 merchant_id 下列出。对于不使用 MCA 的账号,aggregator_id 将设置为 null

并非所有报告都支持 MCA。以下报告支持 MCA:

  • 商品和商品问题
  • 本地商品目录
  • 地区商品目录
  • 产品业绩
  • 价格竞争力
  • 价格分析
  • 产品定位

查询数据

当数据转移到 BigQuery 时,这些数据会写入注入时间分区表。如需了解详情,请参阅分区表简介

查询 Google Merchant Center 表时,必须在查询中使用 _PARTITIONTIME_PARTITIONDATE 伪列。 如需了解详情,请参阅查询分区表

Products_ 表包含嵌套和重复的字段。如需了解如何处理嵌套和重复的数据,请参阅 GoogleSQL 文档中的重复字段处理的差异

Google Merchant Center 示例查询

您可以使用以下 Google Merchant Center 示例查询来分析转移的数据。您还可以在 Looker 数据洞察等可视化工具中使用查询。

在以下每个查询中,将 dataset 替换为您的数据集名称。将 merchant_id 替换为您的商家 ID。如果您使用的是 MCA,请将 merchant_id 替换为您的 MCA ID。

商品和商品问题示例查询

商品和商品问题统计信息

以下示例 SQL 查询按天提供商品数、问题商品数和问题数。

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

未获批准在购物广告中展示的商品

以下示例 SQL 查询提供了未获批准在购物广告中展示的商品数量(按国家/地区分隔)。未获批准的原因可能是目标页面被排除或商品存在问题。

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

存在未获批准问题的商品

以下示例 SQL 查询会检索存在未获批准问题的商品数量(按国家/地区分隔)。

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

价格基准示例查询

将商品价格与基准进行对比

以下 SQL 查询会联接 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

畅销商品示例查询

给定类别和国家/地区的热门商品

以下 SQL 查询返回美国“智能手机”类别的热门商品。

SELECT
  rank,
  previous_rank,
  relative_demand.bucket,
  (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

您的商品目录中的热门商品

以下 SQL 查询会联接 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)

给定类别和国家/地区的热门品牌

以下 SQL 查询返回美国“智能手机”类别的热门品牌。

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

商品目录中热门品牌的商品

以下 SQL 查询返回商品目录中热门品牌的商品列表(按类别和国家/地区列出)。

  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,
      UNNEST(destinations) AS destination,
      UNNEST(destination.approved_countries) AS approved_country
    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.approved_country