Tips & Tricks

Como implementar analytics con Claude Code

Aprende a implementar analytics con Claude Code. Incluye ejemplos de codigo practicos y guia paso a paso.

Desafios de la implementacion de analytics

La medicion del comportamiento del usuario es la base para la mejora del producto, pero implementar el soporte para multiples servicios de analytics, la consideracion de privacidad y el impacto en el rendimiento no es tarea facil. Con Claude Code, puedes construir rapidamente una infraestructura de analytics extensible.

Capa de tracking de eventos unificada

> Crea una capa de tracking unificada compatible con multiples proveedores de analytics.
> Debe poder enviar simultaneamente a Google Analytics, Mixpanel y una API propia.
interface TrackingEvent {
  name: string;
  properties?: Record<string, any>;
  timestamp?: Date;
}

interface AnalyticsProvider {
  name: string;
  track(event: TrackingEvent): void;
  pageView(path: string, title: string): void;
  identify(userId: string, traits?: Record<string, any>): void;
}

class AnalyticsManager {
  private providers: AnalyticsProvider[] = [];
  private queue: TrackingEvent[] = [];
  private isReady = false;

  addProvider(provider: AnalyticsProvider) {
    this.providers.push(provider);
  }

  track(name: string, properties?: Record<string, any>) {
    const event: TrackingEvent = { name, properties, timestamp: new Date() };

    if (!this.isReady) {
      this.queue.push(event);
      return;
    }

    this.providers.forEach((p) => {
      try { p.track(event); }
      catch (e) { console.warn(`Error de tracking en ${p.name}:`, e); }
    });
  }

  pageView(path: string, title: string) {
    this.providers.forEach((p) => p.pageView(path, title));
  }

  identify(userId: string, traits?: Record<string, any>) {
    this.providers.forEach((p) => p.identify(userId, traits));
  }

  flush() {
    this.isReady = true;
    this.queue.forEach((event) => this.track(event.name, event.properties));
    this.queue = [];
  }
}

export const analytics = new AnalyticsManager();

Proveedor de Google Analytics

class GAProvider implements AnalyticsProvider {
  name = 'Google Analytics';

  track(event: TrackingEvent) {
    window.gtag?.('event', event.name, event.properties);
  }

  pageView(path: string, title: string) {
    window.gtag?.('event', 'page_view', { page_path: path, page_title: title });
  }

  identify(userId: string) {
    window.gtag?.('set', { user_id: userId });
  }
}

Uso con hooks de React

import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';

export function usePageTracking() {
  const location = useLocation();

  useEffect(() => {
    analytics.pageView(location.pathname, document.title);
  }, [location.pathname]);
}

export function useTrackEvent() {
  return (name: string, properties?: Record<string, any>) => {
    analytics.track(name, properties);
  };
}

// Ejemplo de uso
function ProductPage({ product }: { product: Product }) {
  const trackEvent = useTrackEvent();

  const handleAddToCart = () => {
    trackEvent('add_to_cart', {
      productId: product.id,
      price: product.price,
      category: product.category,
    });
  };

  return <button onClick={handleAddToCart}>Agregar al carrito</button>;
}

Gestion de privacidad (gestion de consentimiento)

class ConsentManager {
  private consent: Record<string, boolean> = {};

  setConsent(category: string, allowed: boolean) {
    this.consent[category] = allowed;
    localStorage.setItem('analytics_consent', JSON.stringify(this.consent));
  }

  isAllowed(category: string): boolean {
    return this.consent[category] ?? false;
  }

  loadSavedConsent() {
    const saved = localStorage.getItem('analytics_consent');
    if (saved) this.consent = JSON.parse(saved);
  }
}

Summary

Con Claude Code puedes construir de forma integral una infraestructura de analytics que incluye tracking unificado a multiples proveedores, hooks de React y gestion de privacidad. Para la integracion con pruebas A/B, consulta la guia de implementacion de pruebas A/B; para la medicion del rendimiento, consulta optimizacion del rendimiento.

Para la configuracion de Google Analytics, consulta la documentacion oficial de GA4.

#Claude Code #analytics #tracking #React #TypeScript