Analytics Integration
FeatureDrop supports two analytics paths:
- callback hooks (
analyticsprop) for lightweight tracking AnalyticsCollectorfor buffered/batched delivery
Option A: callbacks on provider
app.tsx
import { FeatureDropProvider } from 'featuredrop/react'
<FeatureDropProvider
manifest={manifest}
storage={storage}
analytics={{
onFeatureSeen: (feature) => analytics.capture('feature_seen', { featureId: feature.id }),
onFeatureClicked: (feature) => analytics.capture('feature_clicked', { featureId: feature.id }),
onFeatureDismissed: (feature) => analytics.capture('feature_dismissed', { featureId: feature.id })
}}
>
{children}
</FeatureDropProvider>Option B: collector (batched)
analytics.ts
import { AnalyticsCollector, PostHogAdapter } from 'featuredrop'
export const collector = new AnalyticsCollector({
adapter: new PostHogAdapter(posthog),
batchSize: 20,
flushInterval: 10_000,
sampleRate: 1,
userId: currentUser.id
})app.tsx
import { FeatureDropProvider } from 'featuredrop/react'
import { collector } from './analytics'
<FeatureDropProvider manifest={manifest} storage={storage} collector={collector}>
{children}
</FeatureDropProvider>Event types emitted
Common event names:
feature_seenfeature_clickedfeature_dismissedtour_started/tour_completed/tour_skippedchecklist_task_completed/checklist_completedsurvey_submittedfeedback_submittedannouncement_showncta_clicked
Recommended dashboards
- adoption:
feature_seen->feature_clicked - onboarding:
tour_started->tour_completed - retention proxy: repeat
feature_clickedby user cohort
If you need full control, use CustomAdapter and map events to your internal telemetry format.