En esta página, se describe cómo importar la información de tu catálogo y mantenerla actualizada.
Los procedimientos de importación de esta página se aplican tanto a las recomendaciones como a la búsqueda. Después de importar datos, ambos servicios pueden usarlos, por lo que no es necesario importarlos dos veces si usas ambos servicios.
Puedes importar tus datos de productos desde BigQuery o especificar los datos intercalados en la solicitud. Cada uno de estos procedimientos son importaciones únicas, con la excepción de vincular Merchant Center. Programa importaciones de catálogos normales (lo ideal sería a diario) para verificar que tu catálogo esté actualizado.
Consulta Cómo mantener tu catálogo actualizado.
También puedes importar artículos individuales. Para obtener más información, consulta Cómo subir un producto.
Antes de comenzar
Antes de comenzar a importar tu catálogo, debes hacer lo siguiente:
- Configurar tu proyecto
- Crea una cuenta de servicio.
- Agrega la cuenta de servicio a tu entorno local.
Consulta Requisitos previos para la configuración para obtener más información.
Consideraciones sobre la importación de catálogos
En esta sección, se describen los métodos que se pueden usar para importar por lotes tus datos de catálogos, cuándo puedes usar cada método y algunas de sus limitaciones.
| BigQuery | Descripción | Importa datos de una tabla de BigQuery cargada con anterioridad que usa el esquema de Vertex AI Search para comercio. Se puede realizar con la consola de Google Cloud o curl. |
|---|---|---|
| Cuándo usarla |
Si tienes catálogos de productos con muchos atributos. La importación de BigQuery usa el esquema de Vertex AI Search para comercio, que tiene más atributos de producto que otras opciones de importación, incluidos los atributos personalizados de clave-valor.
Si tienes grandes volúmenes de datos La importación de BigQuery no tiene un límite de datos. Si ya usas BigQuery. |
|
| Limitaciones | Requiere el paso adicional de crear una tabla de BigQuery que se asigne al esquema de Vertex AI Search para el comercio. | |
| Cloud Storage | Descripción |
Importar datos en formato JSON desde archivos cargados en un bucket de Cloud Storage Cada archivo debe ser de 2 GB o menos, y se pueden importar hasta 100 archivos a la vez. La importación se puede realizar con la Google Cloud consola
o curl. Usa el formato de datos JSON Product, que permite atributos personalizados.
|
| Cuándo usarla | Si necesitas cargar una gran cantidad de datos en un solo paso. | |
| Limitaciones | No es ideal para los catálogos con actualizaciones frecuentes de inventario y precios, ya que los cambios no se reflejan de inmediato. | |
| Importación intercalada | Descripción |
Importación mediante una llamada al método Product.import. Usa el objeto ProductInlineSource, que tiene menos atributos del catálogo de productos que el esquema de Vertex AI Search for Commerce, pero admite atributos personalizados.
|
| Cuándo usarla | Si tienes datos de catálogo no relacionales o planos o una frecuencia alta de actualizaciones de cantidad o precio. | |
| Limitaciones | No se pueden importar más de 100 elementos de catálogo a la vez. Sin embargo, se pueden realizar muchos pasos de carga; no hay límite de elementos. |
Instructivos
En esta sección, se exploran diferentes métodos de importación de catálogos con instructivos en video y de shell.
Video instructivo
Mira este video para aprender a importar un catálogo con la API de Retail.
Instructivo para importar un catálogo desde BigQuery
En este instructivo, se muestra cómo usar una tabla de BigQuery para importar grandes cantidades de datos de catálogo sin límites.
Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:
Instructivo para importar catálogos desde Cloud Storage
En este instructivo, se muestra cómo importar una gran cantidad de elementos a un catálogo.
Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:
Instructivo intercalado de importación de datos de catálogo
En este instructivo, se muestra cómo importar productos a un catálogo intercalado.
Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:
Prácticas recomendadas para la importación de catálogos
Se necesitan datos de alta calidad para generar resultados de alta calidad. Si a tus datos les faltan campos o tienen valores de marcador de posición en lugar de valores reales, la calidad de tus predicciones y resultados de la búsqueda se ven afectados.
Cuando importes datos de catálogos, asegúrate de implementar las siguientes prácticas recomendadas:
Asegúrate de distinguir con cuidado los productos principales de las variantes. Antes de subir datos, consulta Niveles de producto.
Cambiar la configuración a nivel del producto después de invertir un esfuerzo significativo en importar datos Los elementos principales (no las variantes) se muestran como resultados de la búsqueda o recomendaciones.
Ejemplo: Si el grupo de SKUs principal es Camisa con cuello en V,el modelo de recomendación devolverá una camisa con cuello en V y, tal vez, camisas con cuello redondo y cuello escotado. Sin embargo, si no se usan variantes y cada SKU es principal, cada combinación de color o tamaño de la camisa con cuello en V se muestra como un artículo distinto en el panel de recomendaciones: Camisa marrón con cuello en V, talle XL, camisa marrón con cuello en V, talle L hasta camisa blanca con cuello en V, talle M, camisa blanca con cuello en V, talle S.
Las colecciones se pueden reconocer juntas siempre que se incluyan los IDs de variante junto con los IDs de productos principales en
collectionMemberIds[]. Esto hace que se capture una colección de productos, de la cual un usuario puede haber comprado uno o más productos del conjunto, en el evento del usuario, lo que acredita todo el conjunto a la compra. Esto facilita mostrarle al mismo usuario otros productos de una colección determinada en una consulta relacionada futura.Ejemplo: Un usuario compró una funda de edredón, por lo que se muestran productos coincidentes en una colección de sábanas, como fundas de almohada.
Respeta los límites de importación de artículos del producto.
Para realizar una importación masiva desde Cloud Storage, el tamaño de cada archivo debe ser de 2 GB o menos. Puedes incluir hasta 100 archivos a la vez en una sola solicitud de importación masiva.
Para la importación intercalada, importa no más de 5,000 artículos a la vez.
Asegúrate de que la información del catálogo requerida esté incluida y sea correcta. No uses valores de marcador de posición.
Incluye la mayor cantidad posible de información opcional del catálogo.
Asegúrate de que todos tus eventos usen una sola moneda, en especial si planeas usar la consola deGoogle Cloud para obtener métricas de ingresos. La API de Vertex AI Search for Commerce no admite el uso de varias monedas por catálogo.
Mantén tu catálogo actualizado, idealmente todos los días. La programación de importaciones periódicas de catálogo evita que la calidad del modelo disminuya con el tiempo. Puedes programar importaciones automáticas y recurrentes cuando importas tu catálogo con la consola de Search for Commerce. También puedes usar Google Cloud Scheduler para automatizar las importaciones.
No registres eventos de usuario para los elementos de producto que aún no se importaron.
Después de importar la información del catálogo, revisa la información sobre el registro y los informes de errores para tu proyecto. Si encuentras más de unos pocos errores, revísalos y corrige los problemas de procesos que los generaron.
La canalización de transferencia de datos de Vertex AI Search para el comercio abarca tanto los datos del catálogo de productos como los datos de eventos de usuarios. Este flujo de datos proporciona la base para un entrenamiento de modelos sólido y una evaluación continua a través de mecanismos de retroalimentación. La transferencia de datos precisa y completa no es solo un requisito previo, sino un proceso continuo esencial para mantener la adaptabilidad de los modelos subyacentes. Esto, a su vez, influye directamente en la calidad y la relevancia de los resultados de la búsqueda, lo que ofrece un retorno de la inversión significativo.
Ten en cuenta estas prácticas recomendadas para la transferencia de datos cuando diseñes tu solución de búsqueda de comercio.
¿Importación masiva, transmisión en tiempo real o ambas?
Vertex AI Search para el comercio ofrece dos métodos principales para la transferencia del catálogo:
Importación masiva
Transmisión en tiempo real
Este enfoque dual se adapta a las diversas necesidades de arquitectura de los diferentes back-ends de los clientes. No es necesario elegir exclusivamente un método; se puede emplear un modo de transferencia híbrido, que utilice tanto la importación masiva como las actualizaciones de transmisión según los requisitos específicos.
Las importaciones masivas son ideales cuando se realizan adiciones, eliminaciones o actualizaciones a gran escala de miles de productos a la vez. En cambio, la transmisión en tiempo real es excelente cuando se necesitan actualizaciones continuas para un volumen relativamente menor de productos. La elección entre estos métodos depende de la naturaleza de tu catálogo de productos, la frecuencia de las actualizaciones y la arquitectura general de tus sistemas de backend.
La función de importación masiva admite tres fuentes de datos distintas:
- BigQuery: BigQuery facilita la modificación rápida de los datos del catálogo, permite especificar fechas de partición durante la importación y permite una transformación eficiente de los datos a través de consultas en SQL.
- Google Cloud Storage: Cloud Storage requiere el cumplimiento de formatos específicos, como JSON, y restricciones de archivos. Los usuarios son responsables de administrar las estructuras de bucket, la división de archivos en fragmentos y otros aspectos del proceso de importación. Además, editar el catálogo directamente en Cloud Storage puede ser engorroso y, si bien puede ser rentable, carece de la flexibilidad de otros métodos.
- Datos intercalados: Para los catálogos extensos, las importaciones intercaladas pueden no ser la opción más escalable debido a las limitaciones de tamaño. Reserva su uso para actualizaciones menores o pruebas experimentales.
Para situaciones que implican un gran volumen de actualizaciones del catálogo de productos (miles de cambios, adiciones o eliminaciones de productos) en un período corto y a intervalos regulares, un enfoque combinado de importaciones masivas y transmisión en tiempo real puede ser muy eficaz. Organiza las actualizaciones en BigQuery o Cloud Storage y realiza importaciones masivas incrementales en intervalos regulares, como cada una o dos horas. Este método administra de manera eficiente las actualizaciones a gran escala y, al mismo tiempo, minimiza las interrupciones.
Para las actualizaciones más pequeñas y menos frecuentes, o bien las que requieren reflejarse de inmediato en el catálogo, usa la API de transmisión en tiempo real. En el enfoque híbrido, la transmisión en tiempo real puede llenar los vacíos entre las importaciones masivas, lo que garantiza que tu catálogo se mantenga actualizado. Esta estrategia logra un equilibrio entre realizar llamadas individuales a la API de REST (para aplicar parches a los productos) y realizar cambios masivos, lo que optimiza la eficiencia y la capacidad de respuesta en la administración de tu catálogo de Vertex AI Search for Commerce.
Estrategias de ramificación para la administración del catálogo
Mantén un catálogo unificado dentro de una sola rama en lugar de tener catálogos dispares en varias ramas. Esta práctica optimiza las actualizaciones del catálogo y reduce el riesgo de inconsistencias durante el cambio de ramas.
Las siguientes estrategias de ramificación comunes son eficaces para la administración del catálogo.
Actualizaciones de una sola rama
Designa una rama activa como predeterminada y actualízala de forma continua a medida que se produzcan cambios en el catálogo. Para las actualizaciones masivas, usa la función de importación durante los períodos de poco tráfico para minimizar las interrupciones. Utiliza las APIs de transmisión para realizar actualizaciones incrementales más pequeñas o agrúpalas en fragmentos más grandes para las importaciones periódicas.
Cambio de rama
Existen algunas opciones para administrar diferentes ramas:
Usa ramas para la etapa de pruebas y la verificación:
- Algunos ingenieros de sitios de comercio electrónico optan por un enfoque de cambio de rama, en el que el catálogo se actualiza dentro de una rama no activa y, luego, se convierte en la rama predeterminada (activa) cuando está listo para la producción. Esto permite preparar el catálogo del día siguiente con anticipación. Las actualizaciones se pueden realizar con la importación masiva o la transmisión a la rama no en vivo, lo que garantiza una transición sin problemas durante los momentos de poco tráfico.
- La elección entre estas estrategias depende de tus requisitos específicos, la frecuencia de actualización y la configuración de la infraestructura. Sin embargo, independientemente de la estrategia elegida, mantener un catálogo unificado dentro de una sola rama es fundamental para lograr un rendimiento óptimo y resultados de búsqueda coherentes en Vertex AI Search para comercio.
Usa ramas para las copias de seguridad:
- Una sola rama activa se enfoca en la transferencia y el procesamiento continuos de las actualizaciones de productos para mantener el índice de Vertex AI Search para el comercio actualizado casi en tiempo real.
- Otra rama se enfoca en crear una instantánea diaria de los datos transformados en la Búsqueda de Retail, que actúa como un mecanismo de resguardo sólido en caso de daños en los datos o problemas con la rama 0.
- Una tercera rama se enfoca en crear una instantánea semanal de la fecha transformada. De esta manera, el cliente puede tener una copia de seguridad de un día y otra de una semana en diferentes ramas.
Borra definitivamente ramas del catálogo
Si importas datos de catálogos nuevos a una rama existente, es importante que la rama del catálogo esté vacía para garantizar la integridad de los datos importados a la rama. Cuando la rama está vacía, puedes importar datos de catálogos nuevos y vincular la rama a una cuenta de comercio.
Si publicas predicciones en vivo o tráfico de búsqueda, y planeas purgar tu rama predeterminada, considera especificar primero otra rama como predeterminada antes de purgarla. Dado que la rama predeterminada publicará resultados vacíos después de que se borre definitivamente, borrar definitivamente una rama predeterminada activa puede causar una interrupción.
Para borrar datos de una rama del catálogo, completa los siguientes pasos:
Ve a la página Datos> en la consola de Search for commerce.
Ir a la página DatosSelecciona una rama de catálogo en el campo Nombre de la rama.
En el menú de tres puntos que se encuentra junto al campo Nombre de la rama, elige Purgar rama.
Se mostrará un mensaje de advertencia que indica que está a punto de borrar todos los datos de la rama, así como los atributos creados para ella.
Ingresa la rama y haz clic en Confirmar para borrar definitivamente los datos del catálogo de la rama.
Se inicia una operación de larga duración para purgar los datos de la rama del catálogo. Cuando se complete la operación de eliminación, el estado de la eliminación se mostrará en la lista del catálogo de productos en la ventana Estado de la actividad.
Actualizaciones de inventario en Vertex AI Search for Commerce
En esta sección, se describe cómo optimizar el rendimiento de Vertex AI Search para el comercio realizando actualizaciones periódicas del inventario.
Transmisión en tiempo real
- Para los datos dinámicos, como la información del inventario (precio, disponibilidad) y los detalles a nivel de la tienda, incluido el estado de cumplimiento y los precios específicos de la tienda, la transmisión en tiempo real es la única opción dentro de Vertex AI Search para el comercio.
- Esta distinción surge debido a la naturaleza de alta frecuencia de las fluctuaciones del inventario en comparación con los datos del catálogo de productos relativamente estáticos. La disponibilidad de los productos puede cambiar varias veces al día, mientras que las descripciones o los atributos permanecen relativamente constantes.
- La frecuencia de las actualizaciones a nivel de la tienda se amplifica aún más con la cantidad de ubicaciones minoristas.
Actualizaciones asíncronas
- Para adaptarse a este rápido ritmo de cambio, Vertex AI Search for Commerce emplea actualizaciones de inventario asíncronas con APIs que devuelven un ID de trabajo.
- El proceso de actualización no se considera completo hasta que se sondea y confirma el estado del trabajo, lo que puede generar una pequeña demora que varía de segundos a minutos.
Actualizaciones de pedidos fuera de servicio
- Una característica destacada de este sistema es la capacidad de actualizar la información del inventario antes de que se ingiera el producto correspondiente en el catálogo. Esto aborda la situación común en la que las canalizaciones de datos de inventario y productos operan de forma independiente dentro de los comercios minoristas, lo que a veces hace que la información del inventario esté disponible antes de que se actualice el catálogo de productos. Cuando actualices el inventario, usa la opción
allowMissingpara controlar las actualizaciones desordenadas del inventario en comparación con el producto. - Al permitir que las actualizaciones del inventario precedan a la transferencia del catálogo, Vertex AI Search for Commerce se adapta a estas discrepancias en la canalización, lo que garantiza que los datos de inventario precisos estén disponibles incluso para los productos recién incorporados.
- Sin embargo, la información del inventario de un producto se conserva durante 24 horas y se borra si no se ingiere un producto coincidente dentro de ese período. Este mecanismo garantiza la coherencia de los datos y evita que la información de inventario desactualizada persista en el sistema.
Verificaciones previas del catálogo de productos para pruebas A/B sólidas en Vertex AI Search for Commerce
En esta sección, se explica cómo ejecutar verificaciones previas en los datos del catálogo de productos.
Garantizar la paridad de las actualizaciones del catálogo
- Para preparar una prueba A/B en Vertex AI Search para comercio, es fundamental mantener una paridad estricta entre el catálogo heredado (de control) y el catálogo de Vertex AI Search para comercio (de prueba). Cualquier desequilibrio entre ambos puede afectar negativamente la prueba A/B, lo que generará observaciones sesgadas y resultados potencialmente no válidos. Por ejemplo, las incoherencias en la disponibilidad, los precios o incluso las discrepancias menores en los atributos de los productos pueden introducir sesgos no deseados en los datos de prueba.
- Para mitigar este riesgo, es fundamental diseñar un proceso de actualización paralelo para los catálogos de control y de prueba, y evitar las actualizaciones secuenciales siempre que sea posible. El objetivo es maximizar el tiempo durante el cual ambos catálogos están sincronizados. Por otro lado, las actualizaciones en serie pueden generar demoras en un carril o en otro. Estos retrasos pueden generar discrepancias temporales en el catálogo, en las que un producto puede estar en stock en un catálogo, pero no en el otro. O bien, un producto recién agregado aparece en un catálogo antes que en el otro. Estas disparidades pueden influir significativamente en el comportamiento, los clics y las compras de los usuarios, lo que, en última instancia, genera una comparación injusta y resultados inexactos de la prueba A/B.
- Al priorizar las actualizaciones paralelas y esforzarse por lograr una paridad coherente del catálogo, los minoristas pueden garantizar un campo de pruebas equitativo para las pruebas A/B en Vertex AI Search for Commerce. Este enfoque permite realizar un análisis imparcial y justo de los resultados de la prueba, lo que genera estadísticas más confiables y una toma de decisiones fundamentada.
Logra la paridad de los datos del catálogo
- La profundidad y la precisión de la comprensión de productos de un modelo de búsqueda de comercio electrónico dependen de la riqueza y la calidad de la información subyacente del catálogo de productos. Cuanto más completos sean los datos de productos en el catálogo, mejor preparado estará el modelo para comprender y clasificar los productos de manera eficaz.
- Por lo tanto, en preparación para las pruebas A/B, es fundamental asegurarse de que los datos de productos subidos tanto al catálogo heredado (control) como al catálogo de Vertex AI Search para comercio electrónico (prueba) sean idénticos. Cualquier discrepancia en la información del producto entre estos dos entornos puede sesgar significativamente los resultados de la prueba A/B.
- Por ejemplo, si el motor de búsqueda heredado se beneficia de un catálogo más completo o extenso en comparación con Vertex AI Search for Commerce, esto crea una ventaja injusta. La falta de información en el catálogo de Vertex AI Search for Commerce podría ser fundamental para la comprensión y clasificación de los productos, lo que podría generar resultados de búsqueda inexactos y comparaciones de rendimiento engañosas. Detectar estas disparidades puede ser difícil con herramientas externas y, a menudo, requiere una inspección manual meticulosa de ambos catálogos.
- Si se aseguran de que ambos catálogos contengan los mismos datos de productos con el mismo nivel de detalle, los minoristas pueden crear condiciones equitativas para las pruebas A/B en Vertex AI Search para comercio. Este enfoque fomenta una comparación justa y sin sesgos de los dos motores de búsqueda, lo que facilita una evaluación precisa de su rendimiento y capacidades respectivos.
Planifica para la recuperación ante desastres
Un plan de recuperación ante desastres bien preparado garantiza que tus capacidades de búsqueda de comercio sigan operativas y responsivas, lo que minimiza el impacto en la experiencia del cliente y la generación de ingresos. Este plan debe permitir la restauración rápida del catálogo para abordar la posible falla de las canalizaciones de transferencia de eventos de usuario y catálogos, independientemente de la causa subyacente.
Usar BigQuery para la transferencia de datos ofrece una ventaja distintiva en la recuperación ante desastres. Si los datos actuales del catálogo o de eventos de usuario en Vertex AI Search para comercio no son significativamente diferentes de la instantánea más reciente almacenada en BigQuery, llamar a la API de importación puede iniciar una restauración rápida. Este enfoque minimiza el tiempo de inactividad y garantiza que la función de búsqueda siga operativa.
Por el contrario, si BigQuery no está integrado en tu canalización de datos, deben existir mecanismos alternativos para volver a cargar el catálogo rápidamente desde un estado correcto conocido. Estos mecanismos pueden incluir sistemas de copias de seguridad, replicación de datos o cualquier otra estrategia de conmutación por error.
Si incorporas estas consideraciones de recuperación ante desastres en tu arquitectura de Vertex AI Search para el comercio, puedes reforzar la solidez del sistema y mantener la continuidad empresarial incluso ante interrupciones inesperadas.
Planifica la alta disponibilidad
Cuando subes tu catálogo de productos a Vertex AI Search, es importante tener en cuenta cómo los diferentes servicios manejan la regionalidad para diseñar una canalización de transferencia de datos resiliente. Google Cloud
Para crear una canalización de transferencia capaz de recuperación ante desastres con Dataflow, implementa tus trabajos en varias regiones con uno de los siguientes diseños:
- Activo/activo: Las instancias de Dataflow en varias regiones procesan datos de forma activa y simultánea.
- Activa/pasiva: Una instancia de Dataflow en una región está activa, mientras que las instancias en otras regiones permanecen en espera.
A continuación, se explica cómo implementar estos diseños con Pub/Sub y Dataflow:
- Servicios globales: Algunos servicios, como Pub/Sub, operan a nivel global. Google Cloud administra su disponibilidad según sus Acuerdos de Nivel de Servicio (ANS) específicos.
- Servicios regionales: Otros servicios, como Dataflow, que puedes usar para transformar y transferir datos a Vertex AI Search, son regionales. Eres responsable de configurar estos componentes para la alta disponibilidad y la recuperación ante desastres.
Por ejemplo, cuando se aprovecha BigQuery para conservar datos, se puede configurar como multirregional para que Google Cloudmaneje automáticamente la redundancia y la disponibilidad de los datos. Del mismo modo, cuando se usa Cloud Storage, se puede configurar para que sea multirregional.
Diseño activo/activo
El diseño activo/activo usa atributos de mensajes y filtros de suscripción de Pub/Sub para garantizar que cada mensaje se procese exactamente una vez con un trabajo de Dataflow activo en una región específica.
Agrega atributos de mensaje: Cuando publiques mensajes en el tema de Pub/Sub, como actualizaciones de productos, incluye un atributo que indique la región objetivo. Por ejemplo:
region:us-central1region:us-east1
Configura filtros de suscripción: Para cada canalización regional de Dataflow, configura su suscripción a Pub/Sub para extraer solo los mensajes que coincidan con su región usando filtros de mensajes. Por ejemplo, la suscripción para el trabajo de Dataflow
us-central1tendría un filtro comoattributes.region = "us-central1".Conmutación por error: Si una región deja de estar disponible, actualiza tu sistema de publicación ascendente para etiquetar todos los mensajes nuevos con un atributo para una región en buen estado. Esto redirecciona el procesamiento de mensajes a la instancia de Dataflow en la región de conmutación por error.
Se pueden configurar varios componentes que se usan en la arquitectura para que sean multirregionales de forma predeterminada. Por ejemplo, cuando se aprovecha BigQuery para conservar datos, se puede configurar para que sea multirregional, de modo que Cloud Storage controle automáticamente la redundancia y la disponibilidad de los datos. Del mismo modo, cuando se usa Cloud Storage, se puede configurar para que sea multirregional.
Diseño activo/pasivo
Este diseño implica tener solo una canalización regional de Dataflow que extraiga mensajes de Pub/Sub de forma activa en cualquier momento.
Adjunta una suscripción: Asegúrate de que solo esté adjunta la suscripción a Pub/Sub del trabajo de Dataflow de la región activa y de que esté recuperando mensajes. Se deben crear suscripciones para los trabajos de Dataflow en regiones pasivas, pero deben permanecer separadas.
Conmutación por error: Si la región activa experimenta una falla, de forma manual o programática, haz lo siguiente:
- Desvincula la suscripción de Pub/Sub asociada al trabajo de Dataflow de la región con errores.
- Adjunta la suscripción de Pub/Sub asociada a un trabajo de Dataflow en una de las regiones pasivas (en espera).
Esto transfiere la carga de procesamiento de mensajes a la región recién activada.
Resiliencia y análisis forense
Usar BigQuery en el diseño para la transferencia de datos puede generar capacidad de recuperación y crear capacidad para la depuración y el análisis forense. Los productos y el inventario que se transfieren directamente con las APIs de patch y addLocalInventory implican que, cuando los datos se envían a Vertex AI Search for Commerce, no queda ningún rastro de la actualización del producto y el inventario. Es posible que el usuario quiera saber por qué un producto no aparece como espera. Tener un área de etapa de pruebas creada con BigQuery y un historial completo de datos facilita este tipo de investigación y depuración.
Arquitectura de referencia
En esta arquitectura, la transferencia de datos suele tener etapas de datos sin procesar, seleccionados y de consumo, todas compiladas en BigQuery. El sistema movería los datos entre las etapas con Dataflow y organizaría todo esto de forma automática con flujos de trabajo en la nube:
- El sistema tomaría los datos sin procesar tal como son y les agregaría una marca de tiempo para mantener el historial. Estos datos no se modifican, por lo que los clientes los consideran una fuente confiable.
- Luego, el sistema transformaría los datos en una etapa seleccionada y volvería a etiquetarlos con marcas de tiempo. De esta manera, los clientes sabrían cuándo se transformó y si falló algo.
- Por último, el sistema crearía vistas en la etapa de consumo sobre los datos seleccionados con la hora con la que el sistema etiquetó los datos anteriormente. De esta manera, el cliente sabrá exactamente qué datos transformados se deben transferir finalmente a Vertex AI Search para el comercio.
Las ramas 0, 1 y 2 sirven como copias de seguridad activas, de un día y de una semana, respectivamente. Los datos que se transfieren directamente a la rama 0 se agregan y se indexan en la rama 1 a diario y en la rama 2 semanalmente. De esta manera, se puede revertir cualquier corrupción de datos, lo que mejora la continuidad empresarial y la resiliencia del sistema.
Además, se pueden realizar análisis y depuraciones, ya que todo el historial y el linaje de los datos se mantienen en los conjuntos de datos globales de BigQuery.
Planifica casos extremos con la transferencia del catálogo
Una vez que se establecen los mecanismos principales para la transferencia del catálogo en Vertex AI Search para comercio, un enfoque proactivo implica evaluar su resistencia ante varios casos extremos. Si bien algunos de estos casos tal vez no sean relevantes de inmediato para los requisitos específicos de tu empresa, tenerlos en cuenta en el diseño de tu backend puede proporcionar una valiosa protección para el futuro.
Este paso preparatorio implica revisar la capacidad de tu canalización de datos para controlar situaciones inesperadas o casos extremos, lo que garantiza su solidez y adaptabilidad a las demandas cambiantes. Si anticipas los posibles desafíos y los abordas de forma proactiva, puedes mitigar las interrupciones futuras y mantener el flujo continuo de datos de productos en tu sistema de búsqueda minorista.
Para lograrlo, la lógica de Dataflow debe compilarse de manera que haga lo siguiente:
Valida cada elemento de los datos sin procesar para que coincida con un esquema adecuado. El contrato de los datos sin procesar debe determinarse por adelantado, y cada elemento de datos siempre debe compararse con el contrato. En caso de falla de validación, el elemento de datos sin procesar debe tener una marca de tiempo y persistirse en las tablas sin procesar con errores de BigQuery con errores reales destinados a la investigación forense.
Estos son algunos ejemplos de fallas:
- De repente, aparece en el elemento de datos sin procesar un atributo determinado que no forma parte del contrato.
- Falta un atributo obligatorio determinado en el elemento de datos sin procesar.
Valida cada elemento de los datos sin procesar para transformarlos en el formato de Vertex AI Search for Commerce. Vertex AI Search for Commerce requiere algunos campos obligatorios para la transferencia de productos. Ahora se debe volver a verificar cada elemento de los datos sin procesar para determinar si se puede transformar correctamente en el formato del esquema de Vertex AI Search for Commerce. En caso de falla en la transformación, el elemento de datos sin procesar debe tener una marca de tiempo y persistir en las tablas seleccionadas con errores de BigQuery con mensajes de error reales que puedan ayudar con el análisis forense.
Estos son algunos ejemplos de fallas:
- Un atributo determinado, como el precio, no se puede formatear como un número porque el elemento de datos sin procesar lo tiene como alfanumérico.
- Falta por completo el nombre del producto.
En este ejemplo, se muestra un esquema de tabla de BigQuery de muestra para conservar todos los errores con fines de depuración:
Visualiza el esquema de la tabla de muestra de BigQuery
[ { "mode": "REQUIRED", "name": "ingestedTimestamp", "type": "TIMESTAMP" }, { "mode": "REQUIRED", "name": "payloadString", "type": "STRING" }, { "mode": "REQUIRED", "name": "payloadBytes", "type": "BYTES" }, { "fields": [ { "mode": "NULLABLE", "name": "key", "type": "STRING" }, { "mode": "NULLABLE", "name": "value", "type": "STRING" } ], "mode": "REPEATED", "name": "attributes", "type": "RECORD" }, { "mode": "NULLABLE", "name": "errorMessage", "type": "STRING" }, { "mode": "NULLABLE", "name": "stacktrace", "type": "STRING" } ]
Pruebas de esfuerzo y escalabilidad
Prepárate para eventos de gran volumen y crecimiento con pruebas de estrés y escalabilidad.
Eventos con mucho tráfico
Los eventos con mucho tráfico, como las festividades, representan un desafío importante para las canalizaciones de transferencia de datos. El aumento repentino en las actualizaciones del inventario, incluidos los niveles de existencias y los precios, y los posibles cambios en los atributos de los productos exigen una infraestructura sólida. Es importante evaluar si tu sistema de transferencia puede controlar este aumento de carga. Las pruebas de carga simuladas, que replican los patrones de tráfico máximo, identifican los cuellos de botella y garantizan un funcionamiento sin problemas durante estos períodos críticos.
Ofertas relámpago
Las ofertas flash presentan un desafío único debido a su corta duración y a las rápidas fluctuaciones del inventario. Garantizar la sincronización del inventario en tiempo real es fundamental para evitar discrepancias entre los resultados de la búsqueda y la disponibilidad real. Si no lo hace, puede generar experiencias negativas para los clientes, como que los productos populares aparezcan como disponibles cuando en realidad están agotados, o viceversa. Además, los cambios de precio durante las ofertas flash pueden afectar significativamente la clasificación de los productos, lo que destaca la necesidad de realizar actualizaciones de precios precisas y oportunas en el índice de búsqueda.
Expansión del catálogo
El crecimiento de la empresa o la expansión de la línea de productos pueden generar un aumento drástico, como de 5 o 10 veces, en la cantidad de productos de tu catálogo. Tu arquitectura de transferencia debe ser escalable para adaptarse a este crecimiento sin problemas. Esto puede requerir volver a analizar toda la canalización de ETL (extracción, transformación y carga), en especial si se introducen nuevas fuentes de datos o formatos de información del producto.
Si abordas de forma proactiva estas situaciones potenciales, puedes asegurarte de que tu canalización de transferencia de datos de Vertex AI Search for Commerce siga siendo sólida, escalable y con capacidad de respuesta, incluso ante picos repentinos de tráfico, ventas flash o un crecimiento significativo del catálogo. Este enfoque proactivo protege la exactitud y la confiabilidad de los resultados de la búsqueda, lo que contribuye a una experiencia del usuario positiva y al éxito comercial.
Se debe evaluar el rendimiento de la canalización de transferencia de datos y se debe formar un valor de referencia para las siguientes métricas:
- ¿Cuánto tiempo se tarda en publicar y procesar todo el catálogo y los datos de inventario? Esto puede ser necesario de forma ad hoc durante el BFCM, cuando los precios pueden cambiar significativamente para todo el catálogo.
- ¿Cuánto tiempo tardará en reflejarse una sola actualización de producto?
- ¿Cuál es la tasa más alta de actualizaciones de productos y de inventario que puede procesar el sistema?
Cuellos de botella
- Evaluar y determinar si las canalizaciones pueden aumentar o disminuir su escala correctamente
- Determina si el límite máximo para la cantidad de instancias es demasiado alto o demasiado bajo.
- Para determinar si Vertex AI Search for Commerce está limitando la frecuencia del sistema, verifica si hay un código HTTP 429.
- Confirma si es necesario aumentar ciertas cuotas de la API para reducir los límites de frecuencia.
Estructura de datos del producto para la transferencia del catálogo
En esta sección, se describe cómo preparar tus datos de productos para la transferencia del catálogo.
Productos principales
Los productos principales sirven como contenedores para agrupar productos variantes y como entradas en la cuadrícula de búsqueda. Solo los atributos comunes compartidos entre las variantes deben especificarse para los productos principales. Estos incluyen los siguientes:
- ID del producto principal
- ID del producto (idéntico al ID del producto principal)
- Título
- Descripción
Consulta Acerca de los atributos de producto para obtener más información.
Variante de productos
Los productos variantes heredan atributos comunes del producto principal, pero también pueden especificar valores únicos.
Los atributos obligatorios incluyen los siguientes:
- Todos los atributos especificados para los productos principales (título, descripción) El precio, el título y la descripción pueden ser diferentes del producto principal.
- Atributos de variantes específicos (color, tamaño y otras variaciones relevantes del producto)
Consulta Acerca de los atributos de producto para obtener más información.
Recuperación de atributos
El proceso de recuperación considera todos los atributos que se pueden buscar tanto para los productos principales como para los productos con variantes.
Puntuación de relevancia
La puntuación de relevancia se basa únicamente en los campos de título y descripción. Para garantizar una diferenciación adecuada, modifica ligeramente los títulos de las variantes con respecto a los títulos de los productos principales (por ejemplo, Nombre del producto + Color).
Coincidencia de variantes en los resultados de la búsqueda
La correlación de variantes (por ejemplo, vestido azul) filtra los resultados según atributos de variantes predefinidos, como el color y el tamaño. Los resultados de la búsqueda muestran hasta cinco variantes coincidentes para cada producto principal.
Sincroniza Merchant Center con Vertex AI Search for Commerce
Merchant Center es una herramienta que puedes usar a fin de que tus datos de tiendas y productos estén disponibles para los anuncios de Shopping y otros servicios de Google.
Para realizar una sincronización continua entre Merchant Center y Vertex AI Search para comercio, puedes vincular tu cuenta de Merchant Center a Vertex AI Search para comercio.
Cuando configures una sincronización de Merchant Center para Vertex AI Search for Commerce, debes tener asignado el rol de IAM de administrador en Merchant Center. Si bien un rol de acceso estándar te permitirá leer los feeds de Merchant Center, cuando intentes sincronizar Merchant Center con Vertex AI Search for Commerce, recibirás un mensaje de error. Por lo tanto, antes de que puedas sincronizar correctamente tu cuenta de Merchant Center con Vertex AI Search for Commerce, actualiza tu rol.
Vincula tu cuenta de Merchant Center
Mientras Vertex AI Search para el comercio está vinculado a la cuenta de Merchant Center, los cambios en tus datos de productos en la cuenta de Merchant Center se actualizan automáticamente en cuestión de minutos en Vertex AI Search para el comercio. Si deseas evitar que los cambios de Merchant Center se sincronicen con Vertex AI Search para comercio, puedes desvincular tu cuenta de Merchant Center.
La desvinculación de tu cuenta de Merchant Center no borra los productos en Vertex AI Search para comercio. Para borrar productos importados, consulta Borra información del producto.
Para sincronizar tu cuenta de Merchant Center, completa los siguientes pasos.
Sincroniza tu cuenta de Merchant Center
Consola de Cloud
-
Ve a la página Datos> en la consola de Search for commerce.
Ir a la página Datos - Haz clic en Importar para abrir el panel Importar datos.
- Elige Catálogo de productos.
- Selecciona Sincronización de Merchant Center como tu fuente de datos.
- Selecciona tu cuenta de Merchant Center. Si no ves tu cuenta, revisa Acceso del usuario.
- Opcional: Selecciona Filtro de feeds de Merchant Center para importar solo las ofertas de los feeds seleccionados.
Si no se especifica, se importarán las ofertas de todos los feeds (incluidos los futuros). - Opcional: Para importar solo las ofertas segmentadas para ciertos países o idiomas, expande Mostrar opciones avanzadas y selecciona los países de venta y los idiomas de Merchant Center por los que deseas filtrar.
- Selecciona la rama a la que subirás tu catálogo.
- Haga clic en Import.
curl
Verifica que la cuenta de servicio de tu entorno local tenga acceso a la cuenta de Merchant Center y a Vertex AI Search para comercio. Si deseas verificar qué cuentas tienen acceso a tu cuenta de Merchant Center, consulta Acceso de los usuarios a Merchant Center.
Usa el método
MerchantCenterAccountLink.createpara establecer el vínculo.curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "merchantCenterAccountId": MERCHANT_CENTER_ID, "branchId": "BRANCH_ID", "feedFilters": [ {"dataSourceId": DATA_SOURCE_ID_1} {"dataSourceId": DATA_SOURCE_ID_2} ], "languageCode": "LANGUAGE_CODE", "feedLabel": "FEED_LABEL", }' \ "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID/locations/global/catalogs/default_catalog/merchantCenterAccountLinks"
- MERCHANT_CENTER_ID: Es el ID de la cuenta de Merchant Center.
- BRANCH_ID: El ID de la rama con la que se establecerá el vínculo. Acepta los valores "0", "1" o "2".
- LANGUAGE_CODE: (OPCIONAL) Código de dos letras del idioma de los productos que deseas importar. Como se ve en Merchant Center en la columna
Languagedel producto. Si no se configura, se importarán todos los idiomas. - FEED_LABEL: (OPCIONAL) Es la etiqueta del feed de los productos que deseas importar. Puedes ver la etiqueta del feed en Merchant Center en la columna Etiqueta del feed del producto. Si no se configura, se importarán todas las etiquetas de feed.
- FEED_FILTERS: (OPCIONAL) Es una lista de feeds principales desde los que se importarán los productos. Si no seleccionas feeds, se compartirán todos los feeds de la cuenta de Merchant Center. Los IDs se pueden encontrar en el recurso de feeds de datos de Content API o visitando Merchant Center, seleccionando un feed y obteniendo el ID del feed del parámetro afmDataSourceId en la URL del sitio. Por ejemplo,
mc/products/sources/detail?a=MERCHANT_CENTER_ID&afmDataSourceId=DATA_SOURCE_ID.
Para ver tu cuenta de Merchant Center vinculada, ve a la página Datos de la consola de búsqueda para comercio electrónico y haz clic en el botón Merchant Center en la parte superior derecha de la página. Esta acción abrirá el panel Cuentas de Merchant Center vinculadas. También puedes agregar cuentas de Merchant Center adicionales desde este panel.
Consulta Visualiza la información agregada sobre tu catálogo para obtener instrucciones sobre cómo ver los productos que se importaron.
Enumera los vínculos de tu cuenta de Merchant Center
Consola de Cloud
Ve a la página Datos> en la consola de Search for commerce.
Ir a la página DatosHaz clic en el botón Merchant Center en la parte superior derecha de la página para abrir una lista de tus cuentas vinculadas de Merchant Center.
curl
Usa el método MerchantCenterAccountLink.list para enumerar el recurso de vínculos.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://retail.googleapis.com/v2alpha/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/merchantCenterAccountLinks"
Desvincula tu cuenta de Merchant Center
Si desvinculas tu cuenta de Merchant Center, esa cuenta dejará de sincronizar los datos del catálogo con Vertex AI Search para comercio. Este procedimiento no borra ningún producto en Vertex AI Search for Commerce que ya se haya subido.
Consola de Cloud
Ve a la página Datos> en la consola de Search for commerce.
Ir a la página DatosHaz clic en el botón Merchant Center en la parte superior derecha de la página para abrir una lista de tus cuentas vinculadas de Merchant Center.
Haz clic en Desvincular junto a la cuenta de Merchant Center que desvinculas y confirma tu elección en el cuadro de diálogo que aparece.
curl
Usa el método MerchantCenterAccountLink.delete para quitar el recurso MerchantCenterAccountLink.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://retail.googleapis.com/v2alpha/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/BRANCH_ID_MERCHANT_CENTER_ID"
Limitaciones sobre la vinculación a Merchant Center
Una cuenta de Merchant Center se puede vincular a cualquier cantidad de ramas de catálogo, pero una sola rama de catálogo solo se puede vincular a una cuenta de Merchant Center.
Una cuenta de Merchant Center no puede ser una cuenta de varios clientes (MCA). Sin embargo, puedes vincular subcuentas individuales.
Es posible que la primera importación después de vincular tu cuenta de Merchant Center tarde horas en completarse. El tiempo depende de la cantidad de ofertas en la cuenta de Merchant Center.
Las modificaciones de productos que usen métodos de la API se inhabilitan para las ramas vinculadas a una cuenta de Merchant Center. Los cambios en los datos del catálogo de productos en esas ramas se deben realizar con Merchant Center. Esos cambios se sincronizan de forma automática con Vertex AI Search for Commerce.
El tipo de producto de colección no es compatible con las ramas que usan la vinculación de Merchant Center.
Tu cuenta de Merchant Center solo se puede vincular con ramas de catálogo vacías para garantizar la precisión de los datos. Para borrar productos de una rama de catálogo, consulta Borra información del producto.
Importa datos de un catálogo desde BigQuery
Para importar datos del catálogo en el formato correcto desde BigQuery, usa el esquema de Vertex AI Search para comercio para crear una tabla de BigQuery con el formato correcto y cargar la tabla vacía con los datos de tu catálogo. Luego, sube tus datos a Vertex AI Search for Commerce.
Si deseas obtener más ayuda con las tablas de BigQuery, consulta Introducción a las tablas. Para obtener ayuda con las consultas de BigQuery, consulta Descripción general de las consultas de datos de BigQuery.
Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:
Para importar tu catálogo, haz lo siguiente:
Si tu conjunto de datos de BigQuery está en otro proyecto, configura los permisos necesarios para que la Búsqueda con Vertex AI para comercio pueda acceder al conjunto de datos de BigQuery. Obtén más información.
Importa tus datos de catálogo a Vertex AI Search para el comercio.
Consola de Cloud
-
Ve a la página Datos> en la consola de Search for commerce.
Ir a la página Datos - Haz clic en Importar para abrir el panel Importar datos.
- Elige Catálogo de productos.
- Selecciona BigQuery como tu fuente de datos.
- Selecciona la rama a la que subirás tu catálogo.
- Elige Esquema de catálogos de productos de venta minorista. Este es el esquema de productos para Vertex AI Search for Commerce.
- Ingresa la tabla de BigQuery donde se encuentran tus datos.
- Opcional: En Mostrar opciones avanzadas, ingresa la ubicación de un bucket de Cloud Storage en tu proyecto como una ubicación temporal para tus datos.
Si no se especifica, se usa una ubicación predeterminada. Si se especifica, el bucket de Cloud Storage y BigQuery deben estar en la misma región. - Si no tienes habilitada la búsqueda y usas el esquema de Merchant Center, selecciona el nivel del producto.
Debes seleccionar el nivel del producto si es la primera vez que importas tu catálogo o si vuelves a importarlo después de borrarlo definitivamente. Obtén más información sobre los niveles de producto. Cambiar los niveles de producto después de importar cualquier dato requiere un esfuerzo significativo.
Importante: No puedes activar la búsqueda para proyectos con un catálogo de productos que se haya transferido como variantes. - Haz clic en Importar.
curl
Si es la primera vez que subes tu catálogo o si vuelves a importar el catálogo después de borrarlo definitivamente, configura los niveles de producto con el método
Catalog.patch. Para esta operación se requiere la función de Administrador de venta minorista.ingestionProductType: Admite los valoresprimary(predeterminado) yvariant.merchantCenterProductIdField: Admite los valoresofferIdyitemGroupId. Si no usas Merchant Center, no es necesario que configures este campo.
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"
Crea un archivo de datos para los parámetros de entrada de la importación.
Usa el objeto BigQuerySource para apuntar a tu conjunto de datos de BigQuery.
- DATASET_ID: el ID del conjunto de datos de BigQuery.
- TABLE_ID: el ID de la tabla de BigQuery que contiene tus datos.
- PROJECT_ID: Es el ID del proyecto en el que se encuentra la fuente de BigQuery. Si no se especifica, el ID del proyecto se hereda de la solicitud principal.
- STAGING_DIRECTORY: Opcional Un directorio de Cloud Storage que se usa como ubicación provisional de tus datos antes de que se importen a BigQuery. Deja este campo vacío para crear automáticamente un directorio temporal (recomendado).
- ERROR_DIRECTORY: Opcional Un directorio de Cloud Storage para obtener información sobre los errores de la importación. Deja este campo vacío para crear automáticamente un directorio temporal (recomendado).
dataSchema: Para la propiedaddataSchema, usa el valorproduct(predeterminado). Usarás el esquema de Vertex AI Search for Commerce.
Recomendamos que no especifiques directorios de etapa de pruebas o de error para que se pueda crear automáticamente un bucket de Cloud Storage con nuevos directorios de etapa de pruebas y de error. Estos directorios se crean en la misma región que el conjunto de datos de BigQuery y son únicos para cada importación (lo que evita que varios trabajos de importación habiliten la etapa de pruebas de datos en el mismo directorio y, potencialmente, vuelvan a importar los mismos datos). Después de tres días, el bucket y los directorios se borran de forma automática para reducir los costos de almacenamiento.
Un nombre de bucket creado automáticamente incluye el ID del proyecto, la región del bucket y el nombre del esquema de los datos, separados por guiones bajos (por ejemplo,
4321_us_catalog_retail). Los directorios creados de forma automática se denominanstagingoerrors, seguidos por un número (por ejemplo,staging2345oerrors5678).Si especificas directorios, el bucket de Cloud Storage debe estar en la misma región que el conjunto de datos de BigQuery o la importación fallará. Proporciona los directorios de etapa de pruebas y de error en el formato
gs://<bucket>/<folder>/; deberían ser diferentes.{ "inputConfig":{ "bigQuerySource": { "projectId":"PROJECT_ID", "datasetId":"DATASET_ID", "tableId":"TABLE_ID", "dataSchema":"product"} } }
Importa la información de tu catálogo con una solicitud
POSTal método de RESTProducts:importy proporciona el nombre del archivo de datos (aquí se muestra comoinput.json).curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" -d @./input.json \ "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"
Puedes verificar el estado de manera programática mediante la API. Deberías recibir un objeto de respuesta similar al siguiente:
{ "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456", "done": false }
El campo de nombre es el ID del objeto de operación. Para solicitar el estado de este objeto, reemplaza el campo de nombre por el valor que muestra el método
importhasta que el campodonese muestre comotrue:curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456"
Cuando se completa la operación, el objeto que se muestra tiene un valor
donedetruey, además, incluye un objeto de estado similar al siguiente ejemplo:{ "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456", "metadata": { "@type": "type.googleapis.com/google.cloud.retail.v2.ImportMetadata", "createTime": "2020-01-01T03:33:33.000001Z", "updateTime": "2020-01-01T03:34:33.000001Z", "successCount": "2", "failureCount": "1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.retail.v2.ImportProductsResponse", }, "errorsConfig": { "gcsPrefix": "gs://error-bucket/error-directory" } }
Puedes inspeccionar los archivos en el directorio de errores de Cloud Storage para ver si se produjeron errores durante la importación.
-
Ve a la página Datos> en la consola de Search for commerce.
Configura el acceso a tu conjunto de datos de BigQuery
Para configurar el acceso cuando tu conjunto de datos de BigQuery está en un proyecto diferente al de tu servicio de Vertex AI Search for Commerce, completa los siguientes pasos.
Abre la página IAM en la consola de Google Cloud .
Selecciona tu proyecto de Vertex AI Search for Commerce.
Busca la cuenta de servicio con el nombre Cuenta de servicio de venta minorista.
Si no iniciaste una operación de importación, es posible que esta cuenta de servicio no aparezca en la lista. Si no ves esta cuenta de servicio, regresa a la tarea de importación y comienza la importación. Cuando falle debido a errores de permisos, regresa aquí y completa esta tarea.
Copia el identificador para la cuenta de servicio, que se parece a una dirección de correo electrónico (por ejemplo,
service-525@gcp-sa-retail.iam.gserviceaccount.com).Cambia a tu proyecto de BigQuery (en la misma página IAM y administración) y haz clic en person_add Otorgar acceso.
En Principales nuevos, ingresa el identificador de la cuenta de servicio de Vertex AI Search para comercio y selecciona el rol BigQuery > Usuario de BigQuery.
Haz clic en Agregar otra función y seleccione BigQuery > Editor de datos de BigQuery.
Si no deseas proporcionar el rol de editor de datos a todo el proyecto, puedes agregar este rol directamente al conjunto de datos. Obtén más información.
Haz clic en Guardar.
Esquema de productos
Cuando importes un catálogo desde BigQuery, usa el siguiente esquema de productos de Vertex AI Search para comercio electrónico para crear una tabla de BigQuery con el formato correcto y cargarla con los datos de tu catálogo. Luego, importa el catálogo.
Importa datos de catálogo desde Cloud Storage
Para importar datos del catálogo en formato JSON, crea uno o más archivos JSON que contengan los datos del catálogo que deseas importar y súbelos a Cloud Storage. Desde allí, puedes importarla a Vertex AI Search for Commerce.
Para ver un ejemplo del formato de elemento de producto JSON, consulta Formato de datos JSON de elemento de producto.
Para obtener ayuda con la carga de archivos en Cloud Storage, consulta Carga objetos.
Asegúrate de que la cuenta de servicio de Vertex AI Search for Commerce tenga permiso para leer y escribir en el bucket.
La cuenta de servicio de Vertex AI Search para comercio electrónico aparece en la página de IAM de la consola de Google Cloud con el nombre Cuenta de servicio de venta minorista. Usa el identificador de la cuenta de servicio, que se parece a una dirección de correo electrónico (por ejemplo,
service-525@gcp-sa-retail.iam.gserviceaccount.com), cuando agregues la cuenta a los permisos de tu bucket.Importa los datos de tu catálogo.
Consola de Cloud
-
Ve a la página Datos> en la consola de Search for commerce.
Ir a la página Datos - Haz clic en Importar para abrir el panel Importar datos.
- Elige Catálogo de productos como tu fuente de datos.
- Selecciona la rama a la que subirás tu catálogo.
- Elige Esquema de catálogos de productos de venta minorista como el esquema.
- Ingresa la ubicación de Cloud Storage de tus datos.
- Si no tienes habilitada la búsqueda, selecciona los niveles de productos.
Debes seleccionar los niveles de productos si es la primera vez que importas tu catálogo o si vuelves a importar el catálogo después de borrarlo definitivamente. Obtén más información sobre los niveles de producto. Cambiar los niveles de producto después de importar cualquier dato requiere un esfuerzo significativo.
Importante: No puedes activar la búsqueda para proyectos con un catálogo de productos que se haya transferido como variantes. - Haz clic en Importar.
curl
Si es la primera vez que subes tu catálogo o si vuelves a importar el catálogo después de borrarlo definitivamente, configura los niveles de tus productos con el método
Catalog.patch. Más información sobre los niveles de productoingestionProductType: Admite los valoresprimary(predeterminado) yvariant.merchantCenterProductIdField: Admite los valoresofferIdyitemGroupId. Si no usas Merchant Center, no es necesario que configures este campo.
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"
Crea un archivo de datos para los parámetros de entrada de la importación. Usa el objeto
GcsSourcepara que apunte a tu bucket de Cloud Storage.Puedes proporcionar varios archivos o solo uno. En este ejemplo, se usan dos archivos.
- INPUT_FILE: Son los archivos en Cloud Storage que contienen tus datos de catálogo.
- ERROR_DIRECTORY: Un directorio de Cloud Storage para obtener información sobre los errores de la importación
Los campos de archivo de entrada deben tener el formato
gs://<bucket>/<path-to-file>/. El directorio de errores debe tener el formatogs://<bucket>/<folder>/. Si el directorio de errores no existe, se creará. El bucket ya debe existir.{ "inputConfig":{ "gcsSource": { "inputUris": ["INPUT_FILE_1", "INPUT_FILE_2"] } }, "errorsConfig":{"gcsPrefix":"ERROR_DIRECTORY"} }
Importa la información de tu catálogo con una solicitud
POSTal método de RESTProducts:importy proporciona el nombre del archivo de datos (aquí se muestra comoinput.json).curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" -d @./input.json \ "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"
La forma más fácil de verificar el estado de tu operación de importación es usar la Google Cloud consola. Para obtener más información, consulta Consulta el estado de una operación de integración específica.
También puedes verificar el estado de manera programática mediante la API. Deberías recibir un objeto de respuesta similar al siguiente:
{ "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456", "done": false }
El campo de nombre es el ID del objeto de operación. Solicita el estado de este objeto y reemplaza el campo de nombre por el valor que muestra el método de importación hasta que el campo
donese muestre comotrue:curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/[OPERATION_NAME]"
Cuando se completa la operación, el objeto tiene un
donedetruey, además, incluye un objeto de estado similar al siguiente ejemplo:{ "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456", "metadata": { "@type": "type.googleapis.com/google.cloud.retail.v2.ImportMetadata", "createTime": "2020-01-01T03:33:33.000001Z", "updateTime": "2020-01-01T03:34:33.000001Z", "successCount": "2", "failureCount": "1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.retail.v2.ImportProductsResponse" }, "errorsConfig": { "gcsPrefix": "gs://error-bucket/error-directory" } }
Puedes inspeccionar los archivos en el directorio de errores de Cloud Storage para ver qué tipo de errores se produjeron durante la importación.
-
Ve a la página Datos> en la consola de Search for commerce.
Importa datos de catálogos intercalados
curl
Importas la información de tu catálogo de forma intercalada con una solicitud POST al método REST Products:import, con el objeto productInlineSource para especificar los datos de tu catálogo.
Proporciona un producto completo en una sola línea. Cada producto debe estar en su propia línea.
Para ver un ejemplo del formato de elemento de producto JSON, consulta Formato de datos JSON de elemento de producto.
Crea el archivo JSON para tu producto y llámalo
./data.json:{ "inputConfig": { "productInlineSource": { "products": [ { PRODUCT_1 } { PRODUCT_2 } ] } } }Llama al método POST:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @./data.json \ "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"
Java
Formato de datos JSON de elementos de productos
Las entradas Product de tu archivo JSON deberían verse como los siguientes ejemplos.
Proporciona un producto completo en una sola línea. Cada producto debe estar en su propia línea.
Campos obligatorios mínimos:
{
"id": "1234",
"categories": "Apparel & Accessories > Shoes",
"title": "ABC sneakers"
}
{
"id": "5839",
"categories": "casual attire > t-shirts",
"title": "Crew t-shirt"
}
Ver objeto completo
{ "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/1234", "id": "1234", "categories": "Apparel & Accessories > Shoes", "title": "ABC sneakers", "description": "Sneakers for the rest of us", "attributes": { "vendor": {"text": ["vendor123", "vendor456"]} }, "language_code": "en", "tags": [ "black-friday" ], "priceInfo": { "currencyCode": "USD", "price":100, "originalPrice":200, "cost": 50 }, "availableTime": "2020-01-01T03:33:33.000001Z", "availableQuantity": "1", "uri":"http://example.com", "images": [ {"uri": "http://example.com/img1", "height": 320, "width": 320 } ] } { "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/4567", "id": "4567", "categories": "casual attire > t-shirts", "title": "Crew t-shirt", "description": "A casual shirt for a casual day", "attributes": { "vendor": {"text": ["vendor789", "vendor321"]} }, "language_code": "en", "tags": [ "black-friday" ], "priceInfo": { "currencyCode": "USD", "price":50, "originalPrice":60, "cost": 40 }, "availableTime": "2020-02-01T04:44:44.000001Z", "availableQuantity": "2", "uri":"http://example.com", "images": [ {"uri": "http://example.com/img2", "height": 320, "width": 320 } ] }
Datos históricos de catálogos
Vertex AI Search para el comercio admite la importación y administración de datos históricos de catálogos. Los datos históricos de catálogos pueden ser útiles cuando usas eventos históricos de los usuarios para el entrenamiento de modelos. La información del producto anterior se puede usar para enriquecer los datos históricos de los eventos de usuarios y mejorar la exactitud del modelo.
Los productos históricos se almacenan como productos vencidos. No se muestran en las respuestas de la búsqueda, pero son visibles para las llamadas a la API Update, List y Delete.
Importación de datos históricos de catálogos
Cuando el campo expireTime de un producto se establece en una marca de tiempo anterior, este producto se considera como un producto histórico. Configura la disponibilidad del producto como OUT_OF_STOCK para evitar afectar las recomendaciones.
Recomendamos usar los siguientes métodos para importar datos históricos de catálogos:
- Llama al método
Product.Create. - Importación intercalada de productos vencidos
- Importar productos vencidos desde BigQuery
Llama al método Product.Create.
Usa el método Product.Create para crear una entrada Product con el campo expireTime configurado en una marca de tiempo anterior.
Importación intercalada de productos vencidos
Los pasos son idénticos a los de la importación intercalada, excepto que los productos deben tener los campos expireTime configurados en una marca de tiempo anterior.
Proporciona un producto completo en una sola línea. Cada producto debe estar en su propia línea.
Un ejemplo de ./data.json que se usa en la solicitud de importación intercalada:
Consulta este ejemplo que se usa en la solicitud de importación intercalada
{
"inputConfig": {
"productInlineSource": {
"products": [
{
"id": "historical_product_001",
"categories": "Apparel & Accessories > Shoes",
"title": "ABC sneakers",
"expire_time": {
"second": "2021-10-02T15:01:23Z" // a past timestamp
}
},
{
"id": "historical product 002",
"categories": "casual attire > t-shirts",
"title": "Crew t-shirt",
"expire_time": {
"second": "2021-10-02T15:01:24Z" // a past timestamp
}
}
]
}
}
}
Importa productos vencidos de BigQuery o Cloud Storage
Usa los mismos procedimientos que se documentaron para importar datos de catálogos desde BigQuery o importar datos de catálogos desde Cloud Storage. Sin embargo, asegúrate de configurar el campo expireTime como una marca de tiempo anterior.
Mantén tu catálogo actualizado
Para obtener los mejores resultados, tu catálogo debe contener información actualizada. Te recomendamos importar el catálogo a diario para asegurarte de que esté actualizado. Puedes usar Google Cloud Scheduler para programar importaciones o elegir una opción de programación automática cuando importas datos con la consola deGoogle Cloud .
Solo puedes actualizar los elementos de productos nuevos o modificados o puedes importar todo el catálogo. Si importas productos que ya están en tu catálogo, no se vuelven a agregar. Se actualiza cualquier elemento que haya cambiado.
Para actualizar un solo elemento, consulta Cómo actualizar la información del producto.
Actualización por lotes
Puedes usar el método de importación para actualizar por lotes tu catálogo. El procedimiento es el mismo que para la importación inicial; sigue los pasos en Importa datos del catálogo.
Supervisa el estado de la importación
Para supervisar la incorporación y el estado del catálogo, haz lo siguiente:
Consulta la información agregada sobre tu catálogo y obtén una vista previa de los productos subidos en la pestaña Catálogo de la página Datos de la Búsqueda para comercio.
Evalúa si necesitas actualizar los datos del catálogo para mejorar la calidad de los resultados de la búsqueda y desbloquear los niveles de rendimiento de la búsqueda en la página Calidad de los datos.
Para obtener más información sobre cómo verificar la calidad de los datos de búsqueda y ver los niveles de rendimiento de la búsqueda, consulta Cómo desbloquear los niveles de rendimiento de la búsqueda. Para obtener un resumen de las métricas del catálogo disponibles en esta página, consulta Métricas de calidad del catálogo.
Para crear alertas que te informen si algo sale mal con tus cargas de datos, sigue los procedimientos que se indican en Configura alertas de Cloud Monitoring.
Mantener actualizado tu catálogo es importante para obtener resultados de alta calidad. Usa alertas para supervisar las tasas de error de importación y tomar medidas si es necesario.
¿Qué sigue?
- Comienza a grabar eventos de usuario.
- Consulta información agregada sobre tu catálogo.
- Configura alertas de carga de datos.