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