@onramp-sdk/react 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/dist/OnRampProvider.d.ts +2 -2
- package/dist/OnRampProvider.js +2 -2
- package/dist/RouteTracker.d.ts +1 -1
- package/dist/RouteTracker.js +1 -1
- package/dist/core.d.ts +2 -2
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +34 -3
- package/dist/core.js.map +1 -1
- package/dist/useTrackStep.d.ts +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -12,13 +12,13 @@ npm install @onramp-sdk/react
|
|
|
12
12
|
yarn add @onramp-sdk/react
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
`react >= 18` is a peer dependency. `next >= 13` is an optional peer
|
|
15
|
+
`react >= 18` is a peer dependency. `next >= 13` is an optional peer - only needed for the route tracker in `@onramp-sdk/react/next`.
|
|
16
16
|
|
|
17
17
|
## Setup
|
|
18
18
|
|
|
19
19
|
### 1. Wrap your app in the provider
|
|
20
20
|
|
|
21
|
-
`<OnRampProvider>` initializes the SDK once on the client. It's SSR-safe
|
|
21
|
+
`<OnRampProvider>` initializes the SDK once on the client. It's SSR-safe - it no-ops on the server and starts tracking in the browser.
|
|
22
22
|
|
|
23
23
|
**Next.js App Router** (`app/layout.tsx`):
|
|
24
24
|
|
|
@@ -38,7 +38,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
38
38
|
}
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
`<OnRampProvider>` is a client component, so it only opts its own subtree into client rendering
|
|
41
|
+
`<OnRampProvider>` is a client component, so it only opts its own subtree into client rendering - your layout and pages stay server components.
|
|
42
42
|
|
|
43
43
|
**Plain React** (e.g. Vite, CRA): wrap your root the same way.
|
|
44
44
|
|
|
@@ -72,9 +72,9 @@ export function ProfileSetup() {
|
|
|
72
72
|
}
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
### 3. (Next.js) Auto-track route changes
|
|
75
|
+
### 3. (Next.js) Auto-track route changes - optional
|
|
76
76
|
|
|
77
|
-
Mount `<OnRampRouteTracker />` once inside the provider to record every App Router navigation. These are tagged as navigation events and kept **out** of your defined funnels
|
|
77
|
+
Mount `<OnRampRouteTracker />` once inside the provider to record every App Router navigation. These are tagged as navigation events and kept **out** of your defined funnels - they power the session timeline, not conversion steps.
|
|
78
78
|
|
|
79
79
|
```tsx
|
|
80
80
|
import { OnRampProvider } from '@onramp-sdk/react'
|
|
@@ -94,7 +94,7 @@ import { OnRampRouteTracker } from '@onramp-sdk/react/next'
|
|
|
94
94
|
|---|---|---|---|
|
|
95
95
|
| `apiKey` | `string` | ✓ | Your app's API key from the OnRamp dashboard |
|
|
96
96
|
| `host` | `string` | | Ingestion API base URL |
|
|
97
|
-
| `appVersion` | `string` | | App version string
|
|
97
|
+
| `appVersion` | `string` | | App version string - enables the version breakdown |
|
|
98
98
|
| `framework` | `string` | | Runtime label on each event (default `'react'`; e.g. `'nextjs'`) |
|
|
99
99
|
| `sessionTimeoutMs` | `number` | | Idle window before a new session starts (default 30 min) |
|
|
100
100
|
|
|
@@ -102,9 +102,9 @@ import { OnRampRouteTracker } from '@onramp-sdk/react/next'
|
|
|
102
102
|
|
|
103
103
|
Returns `{ step, newSession, flush }`.
|
|
104
104
|
|
|
105
|
-
- `step(stepName, { properties? })`
|
|
106
|
-
- `newSession()`
|
|
107
|
-
- `flush()`
|
|
105
|
+
- `step(stepName, { properties? })` - track a milestone.
|
|
106
|
+
- `newSession()` - force-start a new session (e.g. after logout).
|
|
107
|
+
- `flush()` - flush queued events immediately (also runs automatically on tab hide/close).
|
|
108
108
|
|
|
109
109
|
### `useTrackStep(stepName, options?)`
|
|
110
110
|
|
|
@@ -121,7 +121,7 @@ The same singleton is exported directly for use outside the React tree (e.g. eve
|
|
|
121
121
|
|
|
122
122
|
## How Funnels Work
|
|
123
123
|
|
|
124
|
-
Funnels are defined in the **OnRamp dashboard**, not in the SDK. You call `step()` with a step name; the dashboard decides which steps form which funnel and in what order
|
|
124
|
+
Funnels are defined in the **OnRamp dashboard**, not in the SDK. You call `step()` with a step name; the dashboard decides which steps form which funnel and in what order - no SDK changes when you iterate on funnel structure.
|
|
125
125
|
|
|
126
126
|
## License
|
|
127
127
|
|
package/dist/OnRampProvider.d.ts
CHANGED
|
@@ -5,11 +5,11 @@ export interface OnRampProviderProps extends OnRampReactConfig {
|
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Initializes OnRamp once on the client and makes the tracker available to
|
|
8
|
-
* `useOnRamp` / `useTrackStep` below it. Render it high in your tree
|
|
8
|
+
* `useOnRamp` / `useTrackStep` below it. Render it high in your tree - in
|
|
9
9
|
* Next.js App Router, inside the root layout (it's a client component, so it
|
|
10
10
|
* won't opt your whole layout into client rendering; only its own subtree).
|
|
11
11
|
*/
|
|
12
12
|
export declare function OnRampProvider({ children, ...config }: OnRampProviderProps): import("react").JSX.Element;
|
|
13
|
-
/** @internal
|
|
13
|
+
/** @internal - true when a provider is mounted above the caller. */
|
|
14
14
|
export declare function useHasOnRampProvider(): boolean;
|
|
15
15
|
//# sourceMappingURL=OnRampProvider.d.ts.map
|
package/dist/OnRampProvider.js
CHANGED
|
@@ -5,7 +5,7 @@ import { OnRamp } from './core.js';
|
|
|
5
5
|
const OnRampContext = createContext(false);
|
|
6
6
|
/**
|
|
7
7
|
* Initializes OnRamp once on the client and makes the tracker available to
|
|
8
|
-
* `useOnRamp` / `useTrackStep` below it. Render it high in your tree
|
|
8
|
+
* `useOnRamp` / `useTrackStep` below it. Render it high in your tree - in
|
|
9
9
|
* Next.js App Router, inside the root layout (it's a client component, so it
|
|
10
10
|
* won't opt your whole layout into client rendering; only its own subtree).
|
|
11
11
|
*/
|
|
@@ -18,7 +18,7 @@ export function OnRampProvider({ children, ...config }) {
|
|
|
18
18
|
OnRamp.init(configRef.current);
|
|
19
19
|
return _jsx(OnRampContext.Provider, { value: true, children: children });
|
|
20
20
|
}
|
|
21
|
-
/** @internal
|
|
21
|
+
/** @internal - true when a provider is mounted above the caller. */
|
|
22
22
|
export function useHasOnRampProvider() {
|
|
23
23
|
return useContext(OnRampContext);
|
|
24
24
|
}
|
package/dist/RouteTracker.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-tracks route changes in the Next.js App Router as navigation events.
|
|
3
3
|
*
|
|
4
|
-
* These are tagged so the dashboard keeps them out of your defined funnels
|
|
4
|
+
* These are tagged so the dashboard keeps them out of your defined funnels -
|
|
5
5
|
* they power the session timeline, not conversion steps. Mount once in your
|
|
6
6
|
* root layout:
|
|
7
7
|
*
|
package/dist/RouteTracker.js
CHANGED
|
@@ -5,7 +5,7 @@ import { OnRamp } from './core.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Auto-tracks route changes in the Next.js App Router as navigation events.
|
|
7
7
|
*
|
|
8
|
-
* These are tagged so the dashboard keeps them out of your defined funnels
|
|
8
|
+
* These are tagged so the dashboard keeps them out of your defined funnels -
|
|
9
9
|
* they power the session timeline, not conversion steps. Mount once in your
|
|
10
10
|
* root layout:
|
|
11
11
|
*
|
package/dist/core.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export interface OnRampReactConfig {
|
|
|
3
3
|
apiKey: string;
|
|
4
4
|
/** Ingestion API base URL. */
|
|
5
5
|
host?: string;
|
|
6
|
-
/** App version string, e.g. "2.4.1"
|
|
6
|
+
/** App version string, e.g. "2.4.1" - enables the version breakdown in the dashboard. */
|
|
7
7
|
appVersion?: string;
|
|
8
8
|
/**
|
|
9
9
|
* SDK/runtime label reported on each event. Defaults to `'react'`; set
|
|
@@ -16,7 +16,7 @@ export interface OnRampReactConfig {
|
|
|
16
16
|
export interface StepOptions {
|
|
17
17
|
/** Custom event properties (e.g. { plan: 'free', source: 'invite' }). */
|
|
18
18
|
properties?: Record<string, string | number | boolean>;
|
|
19
|
-
/** @internal Used by the route tracker
|
|
19
|
+
/** @internal Used by the route tracker - not part of the public API. */
|
|
20
20
|
_eventType?: 'nav_entered';
|
|
21
21
|
}
|
|
22
22
|
export declare const OnRamp: {
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAkGD,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IACtD,wEAAwE;IACxE,UAAU,CAAC,EAAE,aAAa,CAAA;CAC3B;AAED,eAAO,MAAM,MAAM;IACjB;;;;OAIG;iBACU,iBAAiB,GAAG,IAAI;IAgFrC,iDAAiD;mBAClC,MAAM,YAAY,WAAW,GAAG,IAAI;IAqCnD,qDAAqD;kBACvC,IAAI;IAIlB,kFAAkF;aACzE,OAAO,CAAC,IAAI,CAAC;IAItB,4CAA4C;4BACvB,OAAO;CAG7B,CAAA"}
|
package/dist/core.js
CHANGED
|
@@ -24,7 +24,7 @@ function safeSet(key, value) {
|
|
|
24
24
|
localStorage.setItem(key, value);
|
|
25
25
|
}
|
|
26
26
|
catch {
|
|
27
|
-
// localStorage unavailable (private mode, quota)
|
|
27
|
+
// localStorage unavailable (private mode, quota) - degrade silently
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
let client = null;
|
|
@@ -35,6 +35,8 @@ let sessionTimeoutMs = DEFAULT_SESSION_TIMEOUT_MS;
|
|
|
35
35
|
let lastActive = 0;
|
|
36
36
|
let started = false;
|
|
37
37
|
let pendingReferrer = null;
|
|
38
|
+
let pendingUtm = null;
|
|
39
|
+
let lastHeartbeatTs = 0;
|
|
38
40
|
function getOrCreateAnonymousId() {
|
|
39
41
|
const existing = safeGet(ANON_KEY);
|
|
40
42
|
if (existing)
|
|
@@ -140,7 +142,7 @@ export const OnRamp = {
|
|
|
140
142
|
*/
|
|
141
143
|
init(config) {
|
|
142
144
|
if (!hasWindow())
|
|
143
|
-
return; // server
|
|
145
|
+
return; // server - defer to the client
|
|
144
146
|
if (started)
|
|
145
147
|
return; // already initialized this page load
|
|
146
148
|
sessionTimeoutMs = config.sessionTimeoutMs ?? DEFAULT_SESSION_TIMEOUT_MS;
|
|
@@ -167,6 +169,18 @@ export const OnRamp = {
|
|
|
167
169
|
pendingReferrer = document.referrer;
|
|
168
170
|
}
|
|
169
171
|
}
|
|
172
|
+
// Capture UTM params so traffic source is attributable even when the referrer
|
|
173
|
+
// header is stripped (e.g. Google organic, AI-tool redirects, paid campaigns).
|
|
174
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
175
|
+
const utmKeys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
|
|
176
|
+
const utmProps = {};
|
|
177
|
+
for (const key of utmKeys) {
|
|
178
|
+
const val = urlParams.get(key);
|
|
179
|
+
if (val)
|
|
180
|
+
utmProps[`_${key}`] = val;
|
|
181
|
+
}
|
|
182
|
+
if (Object.keys(utmProps).length > 0)
|
|
183
|
+
pendingUtm = utmProps;
|
|
170
184
|
client = new OnRampClient({
|
|
171
185
|
apiKey: config.apiKey,
|
|
172
186
|
host: config.host,
|
|
@@ -175,16 +189,29 @@ export const OnRamp = {
|
|
|
175
189
|
appVersion: config.appVersion ?? null,
|
|
176
190
|
uuidFn: uuid,
|
|
177
191
|
});
|
|
178
|
-
//
|
|
192
|
+
// Heartbeat + last-chance flush when the tab is hidden or closed.
|
|
193
|
+
// Both pagehide and visibilitychange can fire; the 500ms guard prevents
|
|
194
|
+
// duplicate heartbeats when they fire in quick succession.
|
|
195
|
+
function sendHeartbeat() {
|
|
196
|
+
if (!client || !currentSessionId || !anonymousId)
|
|
197
|
+
return;
|
|
198
|
+
const now = Date.now();
|
|
199
|
+
if (now - lastHeartbeatTs < 500)
|
|
200
|
+
return;
|
|
201
|
+
lastHeartbeatTs = now;
|
|
202
|
+
client.beacon({ sessionId: currentSessionId, anonymousId });
|
|
203
|
+
}
|
|
179
204
|
window.addEventListener('pagehide', () => {
|
|
180
205
|
lastActive = Date.now();
|
|
181
206
|
persistSession();
|
|
207
|
+
sendHeartbeat();
|
|
182
208
|
client?.flush();
|
|
183
209
|
});
|
|
184
210
|
document.addEventListener('visibilitychange', () => {
|
|
185
211
|
if (document.visibilityState === 'hidden') {
|
|
186
212
|
lastActive = Date.now();
|
|
187
213
|
persistSession();
|
|
214
|
+
sendHeartbeat();
|
|
188
215
|
client?.flush();
|
|
189
216
|
}
|
|
190
217
|
else {
|
|
@@ -207,12 +234,16 @@ export const OnRamp = {
|
|
|
207
234
|
persistSession();
|
|
208
235
|
const ref = pendingReferrer;
|
|
209
236
|
pendingReferrer = null;
|
|
237
|
+
const utm = pendingUtm;
|
|
238
|
+
pendingUtm = null;
|
|
210
239
|
const { osVersion, browser } = parseUA();
|
|
211
240
|
const extraProps = {};
|
|
212
241
|
if (browser)
|
|
213
242
|
extraProps._browser = browser;
|
|
214
243
|
if (ref)
|
|
215
244
|
extraProps._referrer = ref;
|
|
245
|
+
if (utm)
|
|
246
|
+
Object.assign(extraProps, utm);
|
|
216
247
|
client.track({
|
|
217
248
|
sessionId: currentSessionId,
|
|
218
249
|
anonymousId,
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,QAAQ,GAAG,sBAAsB,CAAA;AACvC,MAAM,WAAW,GAAG,iBAAiB,CAAA;AACrC,MAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,SAAS;AAE3D,SAAS,IAAI;IACX,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAClF,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QAClC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,GAAY,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,CAAA;AAE9D,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,KAAa;IACzC,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAwBD,IAAI,MAAM,GAAwB,IAAI,CAAA;AACtC,IAAI,gBAAgB,GAAkB,IAAI,CAAA;AAC1C,IAAI,WAAW,GAAkB,IAAI,CAAA;AACrC,IAAI,WAAW,GAAG,CAAC,CAAA;AACnB,IAAI,gBAAgB,GAAG,0BAA0B,CAAA;AACjD,IAAI,UAAU,GAAG,CAAC,CAAA;AAClB,IAAI,OAAO,GAAG,KAAK,CAAA;AACnB,IAAI,eAAe,GAAkB,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/useTrackStep.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export interface UseTrackStepOptions {
|
|
2
2
|
/** Custom event properties attached to this step. */
|
|
3
3
|
properties?: Record<string, string | number | boolean>;
|
|
4
|
-
/** Skip tracking while false
|
|
4
|
+
/** Skip tracking while false - useful for gating on a loaded/ready state. */
|
|
5
5
|
enabled?: boolean;
|
|
6
6
|
}
|
|
7
7
|
/**
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onramp-sdk/react",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "OnRamp onboarding funnel analytics for React & Next.js
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "OnRamp onboarding funnel analytics for React & Next.js - track steps, see where users drop off.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@onramp-sdk/core": "0.4.
|
|
41
|
-
"@onramp-sdk/shared": "0.2.
|
|
40
|
+
"@onramp-sdk/core": "0.4.1",
|
|
41
|
+
"@onramp-sdk/shared": "0.2.2"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"react": ">=18.0.0",
|