Entidades de Analytics
Este documento describe las estructuras de datos utilizadas en los eventos de analytics.
Entidad de Producto
La entidad de producto se utiliza en varios eventos relacionados con productos.
{
product_id: String, // ID del producto
sku: String, // SKU del producto
category: String, // Ruta de categoría (separada por '/')
name: String, // Nombre del producto
brand: String, // Marca (generalmente 'GAIA')
variant: String, // Variante/color del producto
price: Number, // Precio del producto
quantity: Number, // Cantidad (generalmente 1 para vistas, variable para carrito)
coupon: String, // Cupón aplicado (si existe)
position: Number, // Posición en los resultados
url: String, // URL del producto
image_url: String, // URL de la imagen del producto
// Extra data GA4
list_name: String, // Nombre de la lista
list_id: String, // ID de la lista
discount: Number, // Descuento aplicado
// Extra data Insider
msrp: Number, // Precio de venta sugerido
categories: Object, // Categorías sin ruta
// Extra data Algolia
object_id: String, // ID del objeto en Algolia
// Extra data GA4 Custom
is_express_delivery: Boolean, // Indica si el producto tiene entrega express
is_available: Boolean // Indica si el producto está disponible
}
Entidad de Categoría
La entidad de categoría se utiliza en eventos relacionados con categorías.
{
id: String, // ID de la categoría
name: String, // Nombre de la categoría
path: String, // Ruta completa de la categoría
products: Array // Lista de productos en la categoría (cada uno con estructura de Producto)
}
Entidad de Búsqueda
La entidad de búsqueda se utiliza en eventos relacionados con búsquedas.
{
query: String, // Texto de búsqueda
filters: Object, // Filtros aplicados
resultsCount: Number // Número de resultados
}
Entidad de Carrito
La entidad de carrito se utiliza en eventos relacionados con el carrito.
{
products: Array, // Lista de productos en el carrito (cada uno con estructura de Producto)
extra: {
total: Number, // Total del carrito
cartCount: Number // Número de elementos en el carrito
}
}
Entidad de Checkout
La entidad de checkout se utiliza en eventos relacionados con el proceso de pago.
{
id: String, // ID del checkout
paymentMethod: String, // Método de pago
cartId: String, // ID del carrito
firstname: String, // Nombre del cliente
email: String, // Email del cliente
phone: String, // Teléfono del cliente
items: Array, // Lista de productos en el checkout (versión simplificada)
totals: Array // Segmentos de totales
}
Transformadores de Datos
Los transformadores de datos son funciones que convierten datos entre diferentes formatos para compatibilidad con diversas plataformas de analytics.
hitToSegmentSchema
Convierte datos de Algolia (hits) al formato Segment.
export const hitToSegmentSchema = (hit, enrich = {}) => {
// Convierte un resultado de Algolia a formato Segment
}
segmentToGA4Schema
Convierte datos del formato Segment al formato GA4.
export const segmentToGA4Schema = (segmentSchema) => {
// Convierte datos Segment a formato GA4
}
segmentToInsiderSchema
Convierte datos del formato Segment al formato Insider.
export const segmentToInsiderSchema = (segmentSchema) => {
// Convierte datos Segment a formato Insider
}
magentoToSegmentSchema
Convierte datos de Magento al formato Segment.
export const magentoToSegmentSchema = (magentoItem, enrich = {}) => {
// Convierte un item de Magento a formato Segment
}
paymentIntentProperties
Genera propiedades para eventos de intención de pago.
export const paymentIntentProperties = (id, paymentMethod, quote, enrich = {}) => {
// Genera propiedades para eventos de pago
}
Ejemplo de uso
// Convertir un resultado de Algolia a formato Segment
const segmentData = hitToSegmentSchema(algoliaHit);
// Convertir datos Segment a formato GA4
const ga4Data = segmentToGA4Schema(segmentData);
// Convertir datos Segment a formato Insider
const insiderData = segmentToInsiderSchema(segmentData);