Esquema de la tabla de productos de Google Merchant Center

Información general

Cuando los datos de informes de Google Merchant Center se transfieren a BigQuery, el formato de los datos de productos y de problemas de productos se corresponde principalmente con el formato de los campos pertinentes de los recursos Products y Productstatuses de la Content API.

Los datos se escriben en una tabla llamada Products_MERCHANT_ID si utiliza un ID de comerciante individual o Products_AGGREGATOR_ID si utiliza una cuenta de administrador de varios clientes.

Esquema

La tabla Products_ tiene el siguiente esquema:

Columna Tipo de datos de BigQuery Descripción Datos de ejemplo
product_data_timestamp TIMESTAMP Marca de tiempo de los datos del producto. 2023-09-14 11:49:50 UTC
product_id STRING ID REST del producto en la API Content, con el siguiente formato: channel:content_language:feed_label:offer_id. Esta es la clave principal. online:en:AU:666840730
merchant_id INTEGER ID de cuenta de comerciante. 1234
aggregator_id INTEGER ID de cuenta de agregador de las cuentas multicliente. 12345
offer_id STRING ID del producto proporcionado por el comerciante. tddy123uk
title STRING Título del artículo. TN2351 negro USB
description STRING Descripción del artículo. El USB negro TN2351 ha redefinido cómo puede influir XJS en las experiencias de LLCD.
link STRING URL de la página de destino del producto proporcionada por el comerciante. https://www.example.com/tn2351-black-usb/6538811?skuId=1234
mobile_link STRING URL de la versión optimizada para móviles de la página de destino proporcionada por el comerciante. https://www.example.com/tn2351-black-usb/6538811?skuId=1234
image_link STRING El comerciante ha proporcionado la URL de la imagen principal del producto. https://www.example.com/tn2351-black-usb/6538811?skuId=1234
additional_image_links STRING, REPEATED El comerciante ha proporcionado URLs adicionales de imágenes del artículo.
content_language STRING Código de idioma ISO 639-1 de dos letras del elemento. es
target_country STRING Obsoleto (siempre se asigna el valor NULL) como parte de un cambio para permitir que los productos se orienten a varios países. En su lugar, utilice los siguientes campos para consultar el estado de cada país de destino: destinations.approved_countries, destinations.pending_countries y destinations.disapproved_countries. Ahora los problemas pueden afectar a unos países de destino concretos y a otros no, tal como se indica en el campo issues.applicable_countries. null
feed_label STRING El comerciante ha proporcionado la etiqueta del feed del artículo o - si no la ha proporcionado. US
channel STRING El canal del elemento, ya sea online o local. local y online
expiration_date TIMESTAMP Fecha y hora proporcionadas por el comerciante en las que debe caducar el artículo, tal como se especificó al insertarlo. Se define como nulo si no se proporciona. 2023-10-14 00:00:00 UTC
google_expiration_date TIMESTAMP Fecha y hora en las que caduca el artículo en Google Shopping. Nunca se establece en null. 2023-10-14 00:00:00 UTC
adult BOOLEAN Se debe definir como true si el artículo está dirigido a adultos. true, false
age_group STRING Edad objetivo del artículo proporcionada por el comerciante. NULL si no se proporciona. newborn [recién_nacido], infant [3-12_meses], toddler [1-3_años], kids [niños] o adult [adultos]
availability STRING Estado de disponibilidad del artículo proporcionado por el comerciante. en stock, agotado
availability_date TIMESTAMP Fecha y hora que proporciona el comerciante en que un producto reservado pasa a estar disponible para su envío. NULL si no se proporciona. 2023-10-14 00:00:00 UTC
brand STRING Marca del artículo proporcionada por el comerciante. NULL si no se proporciona. Nombre de la marca
google_brand_id STRING ID de marca de Google del artículo. 12759524623914508053
color STRING El comerciante ha proporcionado el color del artículo. NULL si no se proporciona. Plateado, Gris, Multicolor
condition STRING El comerciante ha indicado el estado del artículo. nuevos, usados o reacondicionados
custom_labels RECORD El comerciante ha proporcionado etiquetas personalizadas para agrupar artículos de forma personalizada en anuncios de shopping. NULL si no se proporciona.
custom_labels.label_0 STRING Etiqueta personalizada 0. mi etiqueta personalizada
custom_labels.label_1 STRING Etiqueta personalizada 1. mi etiqueta personalizada
custom_labels.label_2 STRING Etiqueta personalizada 2. mi etiqueta personalizada
custom_labels.label_3 STRING Etiqueta personalizada 3. mi etiqueta personalizada
custom_labels.label_4 STRING Etiqueta personalizada 4. mi etiqueta personalizada
gender STRING El sexo objetivo del producto proporcionado por el comerciante. NULL si no se proporciona. unisex, hombre, mujer
gtin STRING El número global de artículo comercial (GTIN) del producto proporcionado por el comerciante. NULL si no se proporciona. 3234567890126
item_group_id STRING Identificador compartido proporcionado por el comerciante para todas las variantes del mismo producto. NULL si no se proporciona. AB12345
material STRING Material proporcionado por el comerciante del que está hecho el artículo. NULL si no se proporciona. Cuero
mpn STRING El comerciante ha proporcionado el número de pieza del fabricante (MPN) del artículo. Se asigna el valor NULL si no se proporciona. GO12345OOGLE
pattern STRING Patrón proporcionado por el comerciante. NULL si no se proporciona. Rayas
price RECORD Precio del artículo proporcionado por el comerciante.
price.value NUMERIC Precio del artículo. 19,99 €
price.currency STRING Es la moneda del precio. USD
sale_price RECORD Precio de oferta del artículo proporcionado por el comerciante.
sale_price.value NUMERIC Precio de oferta del artículo. NULL si no se proporciona. 19,99 €
sale_price.currency STRING Es la moneda del precio de venta. NULL si no se proporciona. USD
sale_price_effective_start_date TIMESTAMP Fecha y hora de inicio de la oferta del artículo. 2023-10-14 00:00:00 UTC
sale_price_effective_end_date TIMESTAMP Fecha y hora de finalización de la oferta del artículo. 2023-10-14 00:00:00 UTC
google_product_category INTEGER El ID de la categoría de producto de Google del artículo. NULL si no se proporciona. 2271
google_product_category_ids INTEGER, REPEATED Ruta completa de las categorías de producto de Google del artículo, almacenada como un conjunto de IDs. NULL si no se proporciona.
google_product_category_path STRING Una versión legible por humanos de la ruta completa. Está vacío si no se proporciona. Ropa y accesorios > Prendas de vestir > Vestidos
product_type STRING Categoría del artículo proporcionada por el comerciante. Hogar > Mujer > Vestidos > Vestidos largos
additional_product_types STRING, REPEATED Categorías adicionales del artículo.
promotion_ids STRING, REPEATED Lista de IDs de promoción asociados al producto.
destinations RECORD, REPEATED Los destinos previstos del producto.
destinations.name STRING El nombre del destino. Solo se admite Shopping. Esto se corresponde con los valores "Anuncios de shopping" y "Anuncios de inventario local" de Métodos de marketing en Merchant Center. Compras
destinations.status* STRING Obsoleto (siempre se asigna el valor NULL) como parte de un cambio para permitir que los productos se orienten a varios países. En su lugar, utilice los siguientes campos para consultar el estado de cada país de destino: destinations.approved_countries, destinations.pending_countries y destinations.disapproved_countries. Ahora los problemas pueden afectar a unos países de destino concretos y a otros no, tal como se indica en el campo issues.applicable_countries. NULL
destinations.approved_countries STRING, REPEATED Lista de códigos de territorio CLDR en los que se ha aprobado la oferta. CH y US
destinations.pending_countries STRING, REPEATED Lista de códigos de territorio CLDR en los que la oferta está pendiente. CH y US
destinations.disapproved_countries STRING, REPEATED Lista de códigos de territorio CLDR en los que se ha rechazado la oferta. CH y US
issues RECORD, REPEATED Lista de problemas a nivel de artículo asociados al producto.
issues.code STRING El código de error del problema. image_too_generic
issues.servability STRING Cómo afecta este problema al servicio de la oferta. Rechazada, sin cambios
issues.resolution STRING Si el problema puede resolverlo el comerciante. merchant_action, pending_processing
issues.attribute_name STRING El nombre del atributo, si el problema se debe a un solo atributo. De lo contrario, será NULL. enlace de imagen
issues.destination STRING El destino al que se aplica el problema. Siempre debe tener el valor Shopping. Compras
issues.short_description STRING Breve descripción del problema en inglés. Imagen genérica
issues.detailed_description STRING Descripción detallada del problema en inglés. Usa una imagen que muestre el producto
issues.documentation STRING URL de una página web para ayudarte a resolver este problema. https://support.google.com/merchants/answer/6098288
issues.applicable_countries STRING, REPEATED Lista de códigos de territorio CLDR en los que se aplica el problema. CH

Ejemplos de consultas

Estadísticas de productos y problemas relacionados con ellos

La siguiente consulta de ejemplo de SQL proporciona el número de productos, los productos con problemas y los problemas por día.

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

Productos rechazados para anuncios de shopping

La siguiente consulta SQL de ejemplo proporciona el número de productos que no se han aprobado para mostrarse en anuncios de shopping, separados por país. El rechazo puede deberse a que el destino esté excluido o a un problema con el producto.

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

Productos con problemas rechazados

La siguiente consulta de ejemplo de SQL obtiene el número de productos con problemas rechazados, separados por país.

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
.