Cara Mengimplementasikan Analytics dengan Claude Code
Pelajari cara mengimplementasikan analytics menggunakan Claude Code. Dilengkapi contoh kode praktis dan panduan langkah demi langkah.
Tantangan Implementasi Analytics
Pengukuran perilaku pengguna adalah fondasi peningkatan produk, tetapi implementasi yang mempertimbangkan kompatibilitas dengan beberapa layanan analytics, privasi, dan dampak terhadap performa tidaklah mudah. Dengan Claude Code, infrastruktur analytics yang extensible bisa dibangun dengan cepat.
Unified Event Tracking Layer
> Buat unified tracking layer yang mendukung beberapa analytics provider.
> Bisa mengirim secara bersamaan ke Google Analytics, Mixpanel, dan API kustom.
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 tracking ${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();
Google Analytics Provider
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 });
}
}
Penggunaan dengan React Hooks
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);
};
}
// Contoh penggunaan
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}>Tambah ke Keranjang</button>;
}
Kepatuhan Privasi (Manajemen Consent)
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
Dengan Claude Code, kamu bisa membangun infrastruktur analytics secara konsisten, mulai dari unified tracking ke beberapa provider, React hooks, hingga kepatuhan privasi. Untuk integrasi A/B testing, lihat Panduan Implementasi A/B Testing, dan untuk pengukuran performa, lihat Optimasi Performa.
Tentang pengaturan Google Analytics, lihat Dokumentasi Resmi GA4.
PDF Gratis: Cheatsheet Claude Code dalam 5 Menit
Cukup masukkan emailmu dan kami akan langsung mengirim cheatsheet PDF A4 satu halaman.
Kami menjaga data pribadimu dengan aman dan tidak pernah mengirim spam.
Tentang Penulis
Masa
Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.
Artikel Terkait
7 template CLAUDE.md untuk Claude Code yang bisa langsung dipakai di proyek nyata
Tujuh template CLAUDE.md praktis untuk app solo, situs konten, API, repo tim, dan codebase legacy, plus kegagalan yang perlu dihindari.
Panduan Approval dan Sandbox Claude Code | Pengaturan aman untuk kerja harian
Cara membagi aksi Claude Code ke allow, ask, deny, dan sandbox dengan settings praktis, hooks, dan contoh workflow nyata.
Panduan Lengkap Memulai Claude Code 2026 | 7 Langkah dari Nol hingga Siap Pakai di Dunia Kerja
Panduan pemula lengkap untuk pengguna baru Claude Code. Dari instalasi hingga mengintegrasikannya ke workflow pengembangan nyata — mencakup semua jebakan yang Masa hadapi di awal.