@retenshun/react
v1.1.0
Published
Official Retenshun React SDK — hooks and components for event tracking, user identification, and e-commerce analytics.
Maintainers
Readme
@retenshun/react
Official React SDK for Retenshun — AI-powered retention analytics. Provides hooks and components for event tracking, user identification, and e-commerce analytics.
Install
npm install @retenshun/react @retenshun/jsQuick Start
1. Wrap your app
import { RetenshunProvider } from '@retenshun/react'
function App() {
return (
<RetenshunProvider projectId="proj_abc123" apiKey="pk_live_your_key">
<YourApp />
</RetenshunProvider>
)
}2. Track events
import { useRetenshun } from '@retenshun/react'
function CheckoutButton() {
const { track } = useRetenshun()
return (
<button onClick={() => track('purchase', { amount: 99.99 })}>
Buy Now
</button>
)
}3. Identify users
import { useRetenshun } from '@retenshun/react'
function LoginForm() {
const { identify } = useRetenshun()
const onLogin = (user) => {
identify(user.id, {
email: user.email,
name: user.name,
plan: user.plan,
})
}
return <form onSubmit={onLogin}>...</form>
}Hooks
useRetenshun()
Full access to the SDK: identify, track, page, setUserProperties, reset, getUserId, ecommerce, isReady.
useTrack()
const { track, isReady } = useTrack()useIdentify()
const { identify, isReady } = useIdentify()useEcommerce()
const { ecommerce, isReady } = useEcommerce()
ecommerce.productViewed({ product_id: 'prod_1', price: 79.99 })Components
<TrackPageView />
<TrackPageView name="Home" properties={{ tab: 'feed' }} /><TrackEvent />
<TrackEvent event="section_viewed" properties={{ section: 'hero' }} />withTracking(Component, eventName, getProperties?)
HOC to track component views:
const TrackedPricing = withTracking(PricingPage, 'pricing_viewed')Provider Props
| Prop | Default | Description |
|---|---|---|
| projectId | required | Your Retenshun project ID |
| apiKey | required | Your public API key |
| apiUrl | https://api.retenshun.com/v1 | Custom API base URL |
| debug | false | Enable debug logging |
| autoTrack | { pageViews: true } | Auto-tracking options |
