Cuando un comprador busca un producto en Google, los resultados de Shopping son una instantánea en vivo del mercado: qué minoristas lo venden, a qué precio, con qué envío, tal como se ve desde donde se encuentra ese comprador. Para un equipo de e-commerce, esa instantánea responde preguntas que normalmente requieren decenas de rastreos independientes: quién nos baja el precio, en qué productos, en qué mercados y por cuánto.
Una API de Google Shopping convierte esa instantánea en datos estructurados que se pueden consultar de forma periódica. Esta guía cubre para qué la usan los equipos, cómo recopilarla para que las cifras sean fiables, y un pequeño fragmento de código que convierte los resultados de búsqueda en una vista de precios. Forma parte de la práctica más amplia de price intelligence, siendo los datos de Shopping una de sus entradas más eficientes.
Por qué los datos de Shopping son diferentes de rastrear minoristas
La forma tradicional de vigilar los precios de la competencia es rastrear las páginas de producto de cada minorista. Eso funciona, pero escala mal: cada minorista necesita su propio recolector, su propio analizador y su propio emparejamiento de productos. Los resultados de Shopping invierten el modelo:
- Una sola consulta cubre a muchos vendedores. Una única búsqueda devuelve ofertas de todos los minoristas que Google lista para ese producto.
- Los productos ya están agrupados. Las ofertas del mismo artículo aparecen juntas, lo que elimina gran parte de la dificultad de emparejar productos entre tiendas.
- Muestra la vista del comprador. Los resultados reflejan el mercado y el idioma de la búsqueda, incluyendo qué vendedores aparecen y en qué orden, que es lo que realmente impulsa los clics.
El inconveniente es la cobertura. Los resultados de Shopping muestran los minoristas que figuran allí, no todos los vendedores del mercado, y muestran el precio listado, que puede diferir del precio tras un cupón o en el checkout. Para un seguimiento de catálogo completo aún se necesitan rastreos de minoristas; para una vista de mercado de tus productos clave, los datos de Shopping suelen ser más rápidos y baratos. Nuestra guía sobre cómo construir un feed de precios competitivos en tiempo real cubre cómo combinar ambos.
Para qué lo usan los equipos
| Pregunta | Qué muestran los datos |
|---|---|
| ¿Tenemos precios competitivos? | Nuestra posición en precio para cada producto, y la diferencia respecto al vendedor más barato |
| ¿Quién nos está bajando el precio? | Qué vendedores aparecen por debajo de nosotros, con qué frecuencia y en qué productos |
| ¿Cuán saturado está este producto? | El número de vendedores y cuánto se dispersan los precios |
| ¿Un competidor está en promoción? | Caídas repentinas de precio en los productos de un vendedor |
| ¿Cómo difieren los mercados? | Los vendedores y precios del mismo producto en cada país |
| ¿Los revendedores incumplen la política de precios? | Vendedores autorizados que listan por debajo del precio mínimo anunciado |
Ese último uso tiene tanto que ver con la protección de marca como con el precio: los fabricantes usan los datos de Shopping para detectar vendedores no autorizados e incumplimientos del precio mínimo sin rastrear a cada revendedor.
Recopilarlo correctamente
Los resultados de Shopping dependen de quién pregunta, así que una recopilación consistente importa más que el volumen.
- Fija la ubicación y el idioma. Los resultados cambian por país y a menudo por ciudad. Usa la misma ubicación y los mismos ajustes de idioma en cada ejecución, o las comparaciones entre ejecuciones mezclarán mercados.
- Usa consultas estables. Busca con los mismos términos de producto cada vez, idealmente el nombre del producto y el número de modelo, para que vuelvan los mismos listados.
- Recopila con una cadencia acorde al mercado. La investigación sobre precios online muestra que la recopilación semanal captura la mayoría de los cambios de precio habituales en grandes minoristas, mientras que las categorías rápidas y las promociones necesitan comprobaciones diarias. Nuestro estudio sobre cuán rápido cambian los precios online cubre la evidencia.
- Conserva los resultados en bruto. Guarda la respuesta completa de cada ejecución con su hora y sus ajustes, para poder revisar un hallazgo más tarde.
- Normaliza los precios antes de compararlos. Las monedas, los formatos decimales y la inclusión de impuestos difieren según el mercado. Nuestra guía sobre normalizar precios, números y fechas entre locales cubre el análisis.
Ejecutar búsquedas de Google a gran escala desde tus propios servidores se topa rápidamente con bloqueos y resultados inconsistentes, por lo que la mayoría de los equipos usa una API construida para ello. La SERP API de Shifter devuelve los resultados de Google Shopping como JSON estructurado, con la ubicación y el idioma que establezcas, de modo que el trabajo empieza en el análisis y no en la recopilación.
De los resultados a una vista de precios
Una vez que el producto, el vendedor y el precio de cada listado se mapean en un registro sencillo, unas pocas líneas de código producen la vista que un equipo de precios realmente necesita. El módulo siguiente construye los parámetros de la petición para una búsqueda y convierte las ofertas de una ejecución en un resumen por producto: el vendedor más barato, el precio mediano, cuán amplia es la dispersión, y en qué posición queda tu tienda.
from collections import defaultdict
from statistics import median
def shopping_params(query, location, country, language="en", api_key="YOUR_API_KEY"):
"""One Google Shopping search, as seen by a shopper in `location`."""
return {"engine": "google_shopping", "api_key": api_key, "q": query,
"location": location, "gl": country, "hl": language}
def market_view(offers, my_seller):
"""offers: [{"product": key, "seller": name, "price": float}] from one search run.
For each product: the cheapest seller, the median price, how wide the spread
is, and where `my_seller` ranks on price.
"""
by_product = defaultdict(list)
for o in offers:
by_product[o["product"]].append(o)
report = {}
for product, rows in by_product.items():
rows.sort(key=lambda o: o["price"])
prices = [o["price"] for o in rows]
mine = next((i for i, o in enumerate(rows) if o["seller"] == my_seller), None)
report[product] = {
"sellers": len(rows),
"cheapest": f"{rows[0]['seller']} {prices[0]:.2f}",
"median": round(median(prices), 2),
"spread_pct": round(100 * (prices[-1] - prices[0]) / prices[0], 1),
"my_rank": None if mine is None else mine + 1,
"gap_to_cheapest_pct": None if mine is None
else round(100 * (rows[mine]["price"] - prices[0]) / prices[0], 1),
}
return report
Ejecutado sobre un puñado de ofertas ilustrativas:
from shopping import market_view
offers = [ # illustrative results from one search run, mapped into the offer shape
{"product": "air fryer 6qt", "seller": "Store A", "price": 89.99},
{"product": "air fryer 6qt", "seller": "Our Store", "price": 99.00},
{"product": "air fryer 6qt", "seller": "Store C", "price": 119.95},
{"product": "blender 1.5l", "seller": "Our Store", "price": 54.00},
{"product": "blender 1.5l", "seller": "Store B", "price": 59.99},
]
for product, view in market_view(offers, my_seller="Our Store").items():
print(product, view)
air fryer 6qt {'sellers': 3, 'cheapest': 'Store A 89.99', 'median': 99.0, 'spread_pct': 33.3, 'my_rank': 2, 'gap_to_cheapest_pct': 10.0}
blender 1.5l {'sellers': 2, 'cheapest': 'Our Store 54.00', 'median': 57.0, 'spread_pct': 11.1, 'my_rank': 1, 'gap_to_cheapest_pct': 0.0}
La freidora de aire es un producto saturado con una dispersión amplia, donde Our Store queda en segundo lugar, un 10% por encima del vendedor más barato. La batidora es un producto tranquilo donde Our Store ya es la más barata. Ejecuta el mismo informe cada día y los cambios, un nuevo vendedor por debajo de ti, una dispersión que de repente se amplía, son las señales sobre las que vale la pena actuar.
Convertir las señales en decisiones
- Fija precios donde seas visible. Los productos donde ocupas el primer o segundo puesto ya ganan en precio; puede haber margen para recuperarlo. Los productos donde ocupas el último puesto son donde un cambio de precio mueve más tráfico.
- Vigila la dispersión, no solo el mínimo. Una dispersión amplia suele significar un mercado con margen para fijar precios; una estrecha significa un producto de tipo commodity donde las pequeñas diferencias importan.
- Separa las promociones del reajuste de precios. Una bajada de un competidor que se revierte en una semana es una promoción; una que se mantiene es un precio nuevo. Nuestra guía sobre seguimiento de promociones de la competencia y ciclos de descuento muestra cómo diferenciarlas.
- Compara mercados antes de expandirte. El número de vendedores y sus precios en un país nuevo muestran cuán saturado está antes de que te listes allí.
Límites a tener en cuenta
- No todos los vendedores figuran en Google Shopping. Los datos muestran el mercado visible, no el mercado entero.
- Los precios listados no siempre son los precios finales. El envío, los impuestos, los cupones y los precios para miembros pueden cambiar lo que paga el comprador.
- Los resultados varían entre búsquedas idénticas. Actúa sobre patrones que se mantienen entre ejecuciones, no sobre el orden de una sola ejecución.
- La personalización es limitada pero real. Usa ajustes neutros y una ubicación fija para que las ejecuciones sean comparables.
Preguntas frecuentes
¿Qué es una API de Google Shopping?
Un servicio que ejecuta búsquedas de Google Shopping por ti y devuelve los resultados como datos estructurados: los productos, los vendedores que los ofrecen y sus precios, tal como se ven desde la ubicación y el idioma que especifiques.
¿Qué pueden hacer los equipos de e-commerce con los datos de Google Shopping?
Seguir los precios de la competencia en muchos vendedores a la vez, ver en qué posición quedan sus propios precios, detectar promociones y nuevos vendedores, comparar mercados antes de expandirse, y comprobar a los revendedores frente a los precios mínimos anunciados.
¿Con qué frecuencia debería recopilar resultados de Google Shopping?
Semanalmente es suficiente para muchas categorías; diariamente para las que cambian rápido, en torno a promociones y en temporada alta. Mantén fijos la ubicación, el idioma y las consultas para que las ejecuciones sean comparables.
¿Google Shopping muestra el precio de todos los vendedores?
No. Muestra a los minoristas que listan allí sus productos, y el precio listado, que puede diferir del precio tras el envío, los cupones o en el checkout. Combínalo con rastreos directos de minoristas donde necesites cobertura completa.
En resumen
Los resultados de Google Shopping son una de las vistas más eficientes del mercado de un producto: muchos vendedores, ya agrupados, tal como los ve un comprador local. Recopílalos con ubicación, idioma y consultas fijos, conserva los resultados en bruto, normaliza los precios, y resume cada ejecución en posición, dispersión y diferencia respecto al vendedor más barato. Observadas a lo largo del tiempo, esas pocas cifras le dicen a un equipo de e-commerce dónde mover los precios y dónde dejarlos como están. Para necesidades de datos de e-commerce más amplias, consulta nuestras soluciones de e-commerce.