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 ```