@trakoo/bento
v1.0.0
Published
Bento provider for trakoo
Maintainers
Readme
@trakoo/bento
Bento server provider for trakoo, the typed, provider-agnostic analytics library.
The browser provider, BentoClientProvider, needs no SDK and ships with trakoo in trakoo/providers/client. Install this package only for server-side tracking.
Installation
pnpm add trakoo @trakoo/bento @bentonow/bento-node-sdkUsage
appEvents is your event registry, created with defineEvents() from trakoo.
import { createServerAnalytics } from 'trakoo/server';
import { BentoServerProvider } from '@trakoo/bento/server';
import { appEvents } from './events';
export const serverAnalytics = createServerAnalytics({
events: appEvents,
providers: [
{
provider: new BentoServerProvider({
siteUuid: process.env.BENTO_SITE_UUID!,
authentication: {
publishableKey: process.env.BENTO_PUBLISHABLE_KEY!,
secretKey: process.env.BENTO_SECRET_KEY!
}
}),
exclude: ['pageView']
}
]
});Bento requires an email for every event. Pass it with each server call, and route anonymous page views to another provider:
await serverAnalytics.track('subscription_renewed', { plan: 'pro' }, {
user: { email: '[email protected]' }
});What reaches Bento
identify()sends$update_fields, so traits become subscriber fields. It does not send$subscribe. To subscribe someone, call the Bento SDK'sV1.addSubscriber()directly.track()sends$<event name>. For example,subscription_renewedarrives as$subscription_renewed. The event timestamp becomes the Bento eventdate.pageView()sends$view.- Failed requests, and events Bento does not queue, are logged without the event payload and are not thrown. Set
logErrors: trueto have the Bento SDK log the HTTP response of failed requests.
Documentation
https://trakoo.co/docs/providers/bento
