SDKs
Pick the package that matches your framework — they all wrap one engine.
Pivolio ships one tracking engine and several thin bindings around it. Install exactly one of them; they are not meant to be combined in a single page.
Vanilla JavaScript and TypeScript. The engine everything else wraps.
PivolioProvider, usePivolio, useTrack, usePageView.
Everything in React, plus App Router page views.
A Web Pixel extension for the storefront funnel.
CDN install with an async command queue — no build step.
Every option, its default, and its unit.
The packages
@pivolio/core is a private package. It is bundled into every published SDK, so
you never install it and never import from it. The four published packages above
are the entire public surface.
@pivolio/react and @pivolio/next depend on @pivolio/browser, so installing
the wrapper is enough — you don’t add the browser package alongside it. And
because @pivolio/next re-exports the whole React surface, a Next app installs
@pivolio/next only.
npm
Script tag
Versioning
Every package is released together off a single v* git tag and shares one
version number. That means you never have to reason about
compatibility between, say, @pivolio/next and the @pivolio/browser it wraps:
matching versions are the only combination that ships.
The practical consequence is that upgrading is all-or-nothing. If you have both
@pivolio/next and @pivolio/shopify in a monorepo, bump them in the same
change.
What every binding shares
Whichever package you install, the behaviour underneath is identical:
track(name, { properties, traits })— properties are nested underproperties, never passed at the top level.- Batching by default — events buffer and go out via
/batch. See Configuration. - One identity model — the same cookies, the same
/idserver call, the same cross-domain linker. See Identity and consent. - Zero runtime dependencies — nothing is pulled in beyond React itself for the React and Next bindings.
Events are tracked and reported as soon as they arrive, but delivery to ad platforms requires an active plan or trial. An unsubscribed workspace records everything and dispatches nothing.