Saltar a contenido

Mejores Prácticas

Naming Conventions

Eventos

Usa snake_case

product_viewed  // ✅
productViewed   // ❌
ProductViewed   // ❌

Formato: objeto_acción

button_clicked       // ✅
order_completed      // ✅
form_submitted       // ✅

Propiedades

snake_case y descriptivo

{
  product_id: 'PROD-123',      // ✅
  product_name: 'Zapatos',     // ✅
  price: 99.99                 // ✅
}

Identificación de Usuarios

Identifica lo antes posible

// Al login/signup
jitsu.identify({
  id: user.id,
  email: user.email
});

No uses email como ID

jitsu.identify({
  id: user.email  // ❌ Email puede cambiar
});

Estructura de Eventos

Consistente

// Siempre mismas propiedades para mismo evento
jitsu.track('product_viewed', {
  product_id: 'PROD-123',
  product_name: 'Zapatos',
  price: 99.99,
  currency: 'USD'
});

Inconsistente

// A veces con category, a veces sin ella
jitsu.track('product_viewed', {
  product_id: 'PROD-123'
  // Faltan otras propiedades
});

Performance

Carga async

<script src="..." defer></script>

Batch eventos en loops

// ❌ Mal
items.forEach(item => {
  jitsu.track('item_processed', item);
});

// ✅ Mejor
jitsu.track('items_processed', {
  items: items,
  count: items.length
});

Privacy

No envíes PII sin consentimiento

if (userConsent.analytics) {
  jitsu.identify({
    email: user.email
  });
}

Hash datos sensibles

jitsu.track('payment_method_added', {
  card_last_4: '4242',  // ✅
  card_full: '...'      // ❌ Nunca
});

Documentación

Mantén un Tracking Plan

Documenta: - Qué eventos trackeas - Qué propiedades tiene cada uno - Cuándo se disparan - Quién los usa

Ejemplo:

Evento: product_viewed
Trigger: Cuando usuario ve producto
Properties:
  - product_id (string, required)
  - product_name (string, required)
  - price (number, required)
  - currency (string, required)
Usado por: Marketing, Product

Monitoreo

Verifica que eventos llegan

-- Query diario
SELECT 
  event,
  COUNT(*) as count
FROM events
WHERE DATE(timestamp) = CURRENT_DATE
GROUP BY event
ORDER BY count DESC;

Alerta en caídas

Configura alertas si: - Volumen de eventos cae >20% - No llegan eventos en 1 hora - Nuevos eventos no documentados ```