Transferencias de Google Merchant Center

El Servicio de transferencia de datos de BigQuery para Google Merchant Center te permite programar y administrar trabajos de carga recurrentes para los datos de informes de Google Merchant Center de manera automática.

Limitaciones

Las transferencias de Merchant Center están sujetas a las siguientes limitaciones:

  • Después de crear una transferencia para tu ID de Merchant Center, debes esperar hasta 90 minutos antes de que los datos de tu cuenta de Merchant estén listos para la transferencia.
  • No puedes configurar una duración máxima de reabastecimiento. Por el momento, los reabastecimientos históricos no son compatibles. Puedes configurar un reabastecimiento solo por hoy.
  • Los datos de productos y de problemas de productos en BigQuery no representan la vista en tiempo real de tu cuenta de Merchant. Los datos se transfieren en modo por lotes y se pueden demorar hasta 15 horas. Para ver la actualización de tus datos en BigQuery, consulta la marca de tiempo “Actualización de datos” (“Data freshness”) en la pestaña Detalles (Details) de la tabla Productos (Products). Marca de tiempo de actualización de datos para las tablas de productos

Informes compatibles

Por el momento, en el Servicio de transferencia de datos de BigQuery para Google Merchant Center se admiten los siguientes datos:

  • Productos y problemas de productos
    Esto incluye los datos de productos que se porcionan a Merchant Center mediante feeds o a través de la Content API for Shopping. También se incluyen los problemas de nivel de artículo que Google detecta para tus productos. Estos datos se pueden ver en Google Merchant Center o mediante una consulta a la Content API for Shopping.

Para obtener información sobre cómo se cargan los datos del informe de Merchant Center en BigQuery, consulta el esquema de la tabla de Google Merchant Center.

Por el momento, el Servicio de transferencia de datos de BigQuery para Google Merchant Center admite las siguientes opciones de informes:

Opción de informe Asistencia
Programa

Diaria, en el momento en que se crea por primera vez la transferencia (predeterminado).

Puedes configurar la hora del día.

Asistencia para cuenta de varios clientes (MCA)

Se recomienda a los clientes existentes con varios ID de Merchant que configuren una cuenta de varios clientes principal. La configuración de un MCA te permite crear una única transferencia para todos tus ID de Merchant.

Usar las MCA de Google Merchant Center tiene varios beneficios en comparación con los ID de Merchant individuales:

  • Ya no es necesario que administres varias transferencias para transferir datos de informes de varios ID de comerciante.
  • Las consultas que implican varios ID de Merchant son mucho más fáciles de escribir porque todos los datos de ID de Merchant se almacenan en la misma tabla.
  • Usar las MCA alivia los posibles problemas de cuota de trabajo de carga de BigQuery porque todos los datos del ID de Merchant se cargan en el mismo trabajo.

Una posible desventaja de usar las MCA es la probabilidad de que los costos posteriores de consulta sean más altos. Debido a que todos tus datos se almacenan en la misma tabla, las consultas que recuperan datos para un ID de Merchant individual deben analizar toda la tabla.

Si usas una MCA, el ID de la MCA aparece en aggregator_id y las cuentas secundarias individuales se muestran en merchant_id. En el caso de las cuentas que no usan una MCA, aggregator_id se establece en null.

Antes de comenzar

Antes de crear una transferencia de Google Merchant Center:

  • Verifica si completaste todas las acciones necesarias para habilitar el Servicio de transferencia de datos de BigQuery.
  • Crea un conjunto de datos de BigQuery para almacenar los datos de Google Merchant Center.
  • Si deseas crear transferencias mediante la IU web clásica de BigQuery, permite las ventanas emergentes de bigquery.cloud.google.com para que puedas ver la ventana de permisos. Debes habilitar el permiso del Servicio de transferencia de datos de BigQuery para que Google Merchant Center administre tus fichas de productos y cuentas en Google Shopping.
  • Si quieres configurar las notificaciones de ejecución de transferencias para Pub/Sub, debes tener los permisos pubsub.topics.setIamPolicy. Los permisos de Pub/Sub no son necesarios si solo configuras las notificaciones por correo electrónico. Para obtener más información, consulta la sección sobre notificaciones de ejecución del Servicio de transferencia de datos de BigQuery.

Permisos necesarios

Asegúrate de que la persona que crea la transferencia tenga los siguientes permisos requeridos:

  • BigQuery:

    • Los permisos bigquery.transfers.update para crear la transferencia
    • Los permisos bigquery.datasets.update en el conjunto de datos de destino

    La función de Cloud IAM bigquery.admin predefinida incluye los permisos bigquery.transfers.update y bigquery.datasets.update. Para obtener más información sobre las funciones de Cloud IAM en el Servicio de transferencia de datos de BigQuery, consulta la página Referencia de control de acceso.

  • Google Merchant Center: accede a la cuenta de Google Merchant Center que se usa en la configuración de la transferencia. Para verificar el acceso, haz clic en la sección Usuarios de la IU de Google Merchant Center.

Configura una transferencia de Google Merchant Center

La configuración de una transferencia de datos para los informes de Google Merchant Center requiere un:

  • ID de Merchant o ID de cuenta de varios clientes: Es el ID de Merchant que aparece en la sección superior izquierda de la IU de Google Merchant Center.

Si quieres crear una transferencia de datos para los informes de Google Merchant Center, haz lo siguiente:

Console

  1. Ve a la IU web de BigQuery en Cloud Console.

    Ir a Cloud Console

  2. Haz clic en Transferencias.

  3. Haz clic en Crear transferencia.

  4. En la página Crear transferencia, sigue estos pasos:

    • En la sección Tipo de fuente, en Fuente, elige Google Merchant Center.

    • En la sección Nombre de la configuración de transferencia (Transfer config name), en Nombre visible (Display name), ingresa el nombre de la transferencia, como My Transfer. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.

      Nombre de la transferencia

    • En la sección Opciones de programa (Schedule options), en Programa (Schedule), haz clic en Comenzar a una hora determinada (Start at set time).

      • En Repeticiones (Repeats), selecciona una opción para la frecuencia con la que se ejecutará la transferencia.

        • Diaria (predeterminada)
        • Semanal
        • Mensual
        • Personalizada
        • A pedido
      • En Fecha de inicio y hora de ejecución (Start date and run time), ingresa la fecha y hora para iniciar la transferencia. Este valor debe estar al menos a 90 minutos de la hora UTC actual. Si seleccionaste Comenzar ahora (Start now), esta opción está inhabilitada.

        Programa de la transferencia

        Si dejas las opciones de programación establecida como Comenzar ahora (Start now), la primera ejecución de transferencia comenzará de inmediato, fallará y mostrará el siguiente mensaje de error: 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. Si esto ocurre, espera 90 minutos y luego configura un reabastecimiento para hoy o espera hasta la próxima ejecución programada (mañana).

    • En la sección Configuración de destino (Destination settings), en Conjunto de datos de destino (Destination dataset), selecciona el conjunto de datos que creaste para almacenar tus datos.

      Conjunto de datos de la transferencia

    • En la sección Detalles de la fuente de datos (Data source details), en ID de Merchant (Merchant ID), ingresa tu ID de comerciante o tu ID de MCA.

      Detalles de la fuente de Google Merchant Center

    • De forma opcional, en la sección Opciones de notificación, haz lo siguiente:

      • Haz clic en el botón de activación para habilitar las notificaciones por correo electrónico. Si habilitas esta opción, el administrador de transferencias recibirá una notificación por correo electrónico cuando falle la ejecución de una transferencia.
      • En Seleccionar un tema de Cloud Pub/Sub, elige el nombre del tema o haz clic en Crear un tema. Con esta opción, se configuran las notificaciones de ejecución de Pub/Sub para tu transferencia.
  5. Haz clic en Guardar.

IU clásica

  1. Ve a la IU web clásica de BigQuery.

    Ir a la IU web clásica de BigQuery

  2. Haz clic en Transferencias.

  3. Haz clic en Agregar transferencia.

  4. En la página Transferencia nueva (New Transfer), sigue estos pasos:

    • En Fuente (Source), elige Google Merchant Center.
    • En Nombre visible, ingresa un nombre para la transferencia, como My Transfer. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.
    • En Programa (Schedule), haz clic en Editar y cambia el horario de Inicio (UTC) (Starting [UTC]) a, al menos, 90 minutos a partir de la hora actual.

      Programa de la transferencia

      Si abandonas la configuración de programa predeterminada, la primera ejecución de transferencia se iniciará de inmediato, fallará y mostrará el siguiente mensaje de error: 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. Si esto ocurre, espera 90 minutos y, luego, configura un reabastecimiento para hoy o espera hasta la próxima ejecución programada (mañana).

    • En Conjunto de datos de destino (Destination dataset), elige el conjunto de datos que creaste para almacenar los datos de Google Merchant Center.

    • En ID de Merchant (Merchant ID), ingresa tu ID de comerciante o tu ID de cuenta de MCA.

      Transferencia de Google Merchant Center

    • De forma opcional, expande la sección Avanzado (Advanced) y configura las notificaciones de ejecución para tu transferencia.

      • En Tema de Cloud Pub/Sub (Cloud Pub/Sub topic), ingresa el nombre de tu tema, por ejemplo, projects/myproject/topics/mytopic.
      • Marca Enviar notificaciones por correo electrónico (Send email notifications) para activar las notificaciones por correo de las ejecuciones de transferencia con errores.
      • No debes marcar Inhabilitado (Disabled) cuando configuras una transferencia. Consulta la sección sobre cómo trabajar con transferencias para inhabilitar las transferencias existentes.

        Tema de Pub/Sub

  5. Haz clic en Agregar.

  6. Cuando se te solicite, haz clic en Permitir (Allow) a fin de otorgarle al Servicio de transferencia de datos de BigQuery permiso para administrar tus fichas de producto y cuentas de Merchant de Google Shopping, y acceder y administrar los datos en BigQuery. Para ver la ventana de permisos, debes permitir las ventanas emergentes de bigquery.cloud.google.com.

    Diálogo de permisos de transferencia para Merchant Center

CLI

Ingresa el comando bq mk y suministra la marca de creación de transferencias --transfer_config. También se requieren las siguientes marcas:

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

También puedes proporcionar la marca --project_id para especificar un proyecto en particular. Si no se especifica --project_id, se usa el proyecto predeterminado.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • project_id es el ID del proyecto.
  • dataset es el conjunto de datos de destino para la configuración de la transferencia.
  • name es el nombre visible de la configuración de transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si necesitas modificarla más tarde.
  • parameters contiene los parámetros para la configuración de transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}'. Para Google Merchant Center, debes proporcionar el parámetro merchant_id.
  • data_source es la fuente de datos: merchant_center.

Por ejemplo, con el siguiente comando se crea una transferencia de Google Merchant Center llamada My Transfer con el ID de Merchant 1234 y el conjunto de datos de destino mydataset. La transferencia se crea en tu proyecto predeterminado.

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

La primera vez que ejecutes el comando, recibirás un mensaje similar al siguiente:

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

Sigue las instrucciones del mensaje y pega el código de autenticación en la línea de comandos.

Si acabas de crear esta transferencia, es posible que debas esperar hasta 90 minutos antes de que los datos de tu cuenta de Merchant estén listos para la transferencia. Si esto ocurre, espera 90 minutos y luego configura un reabastecimiento para hoy o espera hasta la próxima ejecución programada (mañana).

API

Usa el método projects.locations.transferConfigs.create y proporciona una instancia del recurso TransferConfig.

Soluciona problemas relacionados con la configuración de la transferencia de Google Merchant Center

Si tienes problemas con la configuración de la transferencia, consulta la sección sobre problemas de transferencia de Google Merchant Center en la página sobre cómo solucionar problemas relacionados con la transferencia del Servicio de transferencia de datos de BigQuery.

Consulta tus datos

Cuando tus datos se transfieren a BigQuery, se escriben en tablas particionadas por tiempo de transferencia. Para obtener más información, consulta Introducción a las tablas particionadas.

Cuando consultes tu tabla de Google Merchant Center, debes usar la seudocolumna _PARTITIONTIME o _PARTITIONDATE en tu consulta. Para obtener más información, lee la sección Consulta tablas particionadas.

La tabla Products_ contiene campos anidados y repetidos. Para obtener información sobre cómo controlar datos anidados y repetidos, consulta Diferencias en el manejo de campos repetidos en la documentación de SQL estándar.

Consultas de muestra de Google Merchant Center

Puedes usar las siguientes consultas de muestra de Google Merchant Center para analizar los datos transferidos. También puedes usar las consultas en una herramienta de visualización, como Google Data Studio.

En cada una de las siguientes consultas, reemplaza dataset con tu nombre de conjunto de datos. Reemplaza merchant_id con tu ID de Merchant. Si usas una MCA, reemplaza merchant_id con el ID de tu MCA.

Estadísticas de los productos y sus problemas

La siguiente consulta de muestra proporciona la cantidad de productos, productos con problemas y problemas por día.

Console

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

CLI

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'

Productos rechazados para anuncios de Shopping

La siguiente consulta de muestra proporciona la cantidad de productos que no están aprobados para mostrarse en los anuncios de Shopping. El rechazo puede ser el resultado de una exclusión o de un problema con el producto.

Console

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

CLI

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'

Productos con problemas rechazados

La siguiente consulta de muestra recupera la cantidad de productos con problemas rechazados.

Console

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

CLI

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'