Hook Examples
Feature Usage Tracking
Track feature interactions to understand which features are most popular and how users engage with your application.
Implementation
tsx
import { track } from "@databuddy/sdk";
import { useCallback } from "react";
export function useFeatureTracking(featureName: string) {
const trackUsage = useCallback(
(action: string, properties?: Record<string, unknown>) => {
track("feature_used", {
feature: featureName,
action,
...properties,
});
},
[featureName]
);
return { trackUsage };
}Usage
tsx
function ExportButton() {
const { trackUsage } = useFeatureTracking("export_data");
const handleExport = async () => {
trackUsage("export_started", { format: "csv" });
try {
await exportData();
trackUsage("export_completed", { format: "csv" });
} catch (error) {
trackUsage("export_failed", { format: "csv", error: error.message });
}
};
return <button onClick={handleExport}>Export</button>;
}What It Tracks
- Event:
feature_used - Properties:
feature: Name of the feature being trackedaction: Specific action (e.g., "started", "completed", "failed")- Additional custom properties as needed
Benefits
- Feature Adoption: Understand which features users actually use
- Usage Patterns: Track feature usage across different user segments
- Performance Monitoring: Track feature success/failure rates
Use different actions (started, completed, failed) to track the full lifecycle of feature interactions.
Related
How is this guide?