Saltar al contenido principal

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);