fleek-track-analytics 1.17.29 → 1.17.31

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.
@@ -0,0 +1,283 @@
1
+ # React Native RudderStack Integration - Expo Testing Guide
2
+
3
+ ## Prerequisites
4
+
5
+ 1. **Update the library**: First, ensure you have the latest version of `fleek-track-analytics` with RudderStack support
6
+ 2. **Expo Managed Workflow**: Since `@rudderstack/rudder-sdk-react-native` requires native dependencies, you'll need a **Custom Dev Client** (not Expo Go)
7
+
8
+ ## Step 1: Install/Update Dependencies
9
+
10
+ ### Option A: Using Published Package (Recommended for Testing)
11
+
12
+ ```bash
13
+ # Update to the latest version
14
+ yarn add fleek-track-analytics@latest
15
+ # or
16
+ npm install fleek-track-analytics@latest
17
+ ```
18
+
19
+ ### Option B: Using Local Package (For Development)
20
+
21
+ ```bash
22
+ # In your app directory, link to local package
23
+ yarn add file:../path/to/fleek-track-analytics
24
+ # or use npm link
25
+ ```
26
+
27
+ ## Step 2: Install Native Dependencies
28
+
29
+ The RudderStack React Native SDK requires native code. In Expo managed workflow:
30
+
31
+ ```bash
32
+ # Install the RudderStack SDK (should be included in fleek-track-analytics, but verify)
33
+ npx expo install @rudderstack/rudder-sdk-react-native
34
+
35
+ # Install peer dependencies if needed
36
+ npx expo install @react-native-async-storage/async-storage
37
+ ```
38
+
39
+ ## Step 3: Create/Update Custom Dev Client
40
+
41
+ Since Expo Go doesn't support custom native modules, you need a custom dev client:
42
+
43
+ ```bash
44
+ # Create a custom dev client build
45
+ npx expo prebuild
46
+
47
+ # Or if using EAS Build
48
+ eas build --profile development --platform ios
49
+ eas build --profile development --platform android
50
+ ```
51
+
52
+ **Note**: You cannot test this in Expo Go. You must use a custom dev client.
53
+
54
+ ## Step 4: Update Your Analytics Initialization
55
+
56
+ Update your `TrackAnalytics` initialization to include RudderStack configuration:
57
+
58
+ ```typescript
59
+ // analytics.ts or similar file
60
+ import { TrackAnalytics } from 'fleek-track-analytics/lib/react-native';
61
+ import { AnalyticsProvider } from 'fleek-track-analytics/lib/segment-exports';
62
+
63
+ const analyticsException = (e: unknown) => {
64
+ if (__DEV__) {
65
+ console.error('[Analytics Error]', JSON.stringify(e));
66
+ } else {
67
+ // Log to production error reporting (e.g., Sentry)
68
+ // Sentry.captureException(e);
69
+ }
70
+ };
71
+
72
+ const analyticsWrapper = new TrackAnalytics({
73
+ platform: 'REACT_NATIVE',
74
+ App: 'CONSUMER_APP', // or 'VENDOR_APP' based on your app
75
+ segment: true, // Keep Segment enabled for dual-send
76
+ segmentKey: process.env.EXPO_PUBLIC_SEGMENT_KEY || '',
77
+ devMode: __DEV__,
78
+ debug: __DEV__, // Enable debug logging
79
+ errorHandler: analyticsException,
80
+
81
+ // Add RudderStack configuration
82
+ rudderstack: {
83
+ enabled: true, // Enable RudderStack
84
+ // Optional: If not provided, uses default values from library
85
+ // writeKey: process.env.EXPO_PUBLIC_RUDDERSTACK_WRITE_KEY || '',
86
+ // dataPlaneUrl: process.env.EXPO_PUBLIC_RUDDERSTACK_DATA_PLANE_URL || '',
87
+ },
88
+ });
89
+
90
+ // Initialize analytics
91
+ await analyticsWrapper.initAnalytics();
92
+
93
+ export { analyticsWrapper };
94
+ ```
95
+
96
+ ## Step 5: Wrap Your App with AnalyticsProvider (Segment)
97
+
98
+ If you're using Segment's `AnalyticsProvider`, continue using it:
99
+
100
+ ```typescript
101
+ // App.tsx or _layout.tsx
102
+ import { AnalyticsProvider } from 'fleek-track-analytics/lib/segment-exports';
103
+ import { analyticsWrapper } from './analytics';
104
+
105
+ export default function App() {
106
+ return (
107
+ <AnalyticsProvider client={analyticsWrapper.reactNativeSegmentClient}>
108
+ {/* Your app components */}
109
+ </AnalyticsProvider>
110
+ );
111
+ }
112
+ ```
113
+
114
+ **Note**: RudderStack doesn't require a Provider (it uses a singleton pattern), so only Segment needs the Provider.
115
+
116
+ ## Step 6: Test Event Tracking
117
+
118
+ Test that events are being sent to both Segment and RudderStack:
119
+
120
+ ```typescript
121
+ import { analyticsWrapper } from './analytics';
122
+
123
+ // Test identify
124
+ await analyticsWrapper.identify('test-user-123', {
125
+ email: 'test@example.com',
126
+ name: 'Test User',
127
+ });
128
+
129
+ // Test track event
130
+ await analyticsWrapper.track('test_event', {
131
+ property1: 'value1',
132
+ property2: 'value2',
133
+ });
134
+
135
+ // Test screen
136
+ await analyticsWrapper.screen('TestScreen', {
137
+ screen_name: 'TestScreen',
138
+ category: 'testing',
139
+ });
140
+ ```
141
+
142
+ ## Step 7: Verify Events in RudderStack
143
+
144
+ 1. **Check RudderStack Dashboard**:
145
+
146
+ - Go to your RudderStack control plane
147
+ - Navigate to Live Events or Debugger
148
+ - Verify events are being received
149
+
150
+ 2. **Check Event Routing**:
151
+ - Only events in `rudderstack-event-routing.ts` should be sent to RudderStack
152
+ - Currently configured events: `identify`, `screen`, `product_detail_page_viewed`, `homescreen`, `homescreen_viewed`, `product_tile_clicked`, `session_started`, `collection_viewed`
153
+
154
+ ## Step 8: Debugging
155
+
156
+ ### Enable Debug Logging
157
+
158
+ ```typescript
159
+ const analyticsWrapper = new TrackAnalytics({
160
+ // ... other config
161
+ debug: true, // Enable debug mode
162
+ });
163
+ ```
164
+
165
+ ### Check Initialization Status
166
+
167
+ ```typescript
168
+ // After initAnalytics()
169
+ console.log('Segment Client:', analyticsWrapper.reactNativeSegmentClient);
170
+ // RudderStack is a singleton, so no client to expose
171
+ ```
172
+
173
+ ### Verify Dual-Send
174
+
175
+ - Check Segment dashboard - all events should appear
176
+ - Check RudderStack dashboard - only routed events should appear
177
+ - Both should work independently (failures in one don't affect the other)
178
+
179
+ ## Important Notes
180
+
181
+ ### OTA Updates vs Full Release
182
+
183
+ - **Initial Integration**: Requires **full app store release** (native dependencies)
184
+ - **After Initial Release**: Event routing config changes can be deployed via OTA (JavaScript only)
185
+
186
+ ### Default Configuration
187
+
188
+ - If `writeKey` and `dataPlaneUrl` are not provided, the library uses defaults:
189
+ - `dataPlaneUrl`: `https://rudderstack.joinfleek.com`
190
+ - `writeKey`: `37NdqKQQY295HrNiIdLWniUMmKU` (from your config)
191
+
192
+ ### Event Routing
193
+
194
+ - Event routing is controlled **internally** by the library
195
+ - To modify which events go to RudderStack, edit:
196
+ - `src/react-native/analytics-tool/rudderstack-event-routing.ts` in the library
197
+ - Then rebuild and republish the library
198
+
199
+ ### Mutual Exclusivity
200
+
201
+ - Segment and RudderStack initialize independently
202
+ - If Segment fails, RudderStack continues (and vice versa)
203
+ - Events are sent to both SDKs when routing config allows
204
+
205
+ ## Troubleshooting
206
+
207
+ ### Build Errors
208
+
209
+ ```bash
210
+ # If you get native module errors, try:
211
+ npx expo prebuild --clean
212
+ cd ios && pod install && cd ..
213
+ cd android && ./gradlew clean && cd ..
214
+ ```
215
+
216
+ ### Events Not Appearing in RudderStack
217
+
218
+ 1. Check that `rudderstack.enabled: true` in initialization
219
+ 2. Verify the event name is in `rudderstack-event-routing.ts`
220
+ 3. Check RudderStack dashboard for any errors
221
+ 4. Enable debug mode to see console logs
222
+
223
+ ### TypeScript Errors
224
+
225
+ ```bash
226
+ # Clear TypeScript cache
227
+ rm -rf node_modules/.cache
228
+ # Reinstall
229
+ yarn install
230
+ ```
231
+
232
+ ## Next Steps
233
+
234
+ 1. **Test in Development**: Use custom dev client to test locally
235
+ 2. **Verify Events**: Check both Segment and RudderStack dashboards
236
+ 3. **Gradual Rollout**: Start with limited events (PoC), then expand
237
+ 4. **Production Release**: Once validated, release to app stores
238
+
239
+ ## Example Complete Setup
240
+
241
+ ```typescript
242
+ // analytics.ts
243
+ import { TrackAnalytics } from 'fleek-track-analytics/lib/react-native';
244
+
245
+ const analyticsWrapper = new TrackAnalytics({
246
+ platform: 'REACT_NATIVE',
247
+ App: 'CONSUMER_APP',
248
+ segment: true,
249
+ segmentKey: process.env.EXPO_PUBLIC_SEGMENT_KEY || '',
250
+ devMode: __DEV__,
251
+ debug: __DEV__,
252
+ errorHandler: (e) => {
253
+ if (__DEV__) {
254
+ console.error('[Analytics]', e);
255
+ }
256
+ },
257
+ rudderstack: {
258
+ enabled: true,
259
+ // Uses defaults if not specified
260
+ },
261
+ });
262
+
263
+ // Initialize
264
+ analyticsWrapper.initAnalytics().catch((error) => {
265
+ console.error('Failed to initialize analytics:', error);
266
+ });
267
+
268
+ export { analyticsWrapper };
269
+ ```
270
+
271
+ ```typescript
272
+ // App.tsx
273
+ import { AnalyticsProvider } from 'fleek-track-analytics/lib/segment-exports';
274
+ import { analyticsWrapper } from './analytics';
275
+
276
+ export default function App() {
277
+ return (
278
+ <AnalyticsProvider client={analyticsWrapper.reactNativeSegmentClient}>
279
+ <YourApp />
280
+ </AnalyticsProvider>
281
+ );
282
+ }
283
+ ```
@@ -0,0 +1,12 @@
1
+ import { IRNAnalyticsWrapper } from '../track-analytics/track-analytics-types';
2
+ import { tAPP } from '../../track-analytics-types';
3
+ import { DimentionsManger } from '../utils/DImentsionManager/dimension-manager';
4
+ interface IRudderstackRNWrapperParams {
5
+ writeKey: string;
6
+ dataPlaneUrl: string;
7
+ app: tAPP;
8
+ debug?: boolean;
9
+ dimensionsManager: DimentionsManger;
10
+ }
11
+ export declare const reactNativeRudderstack: ({ writeKey, dataPlaneUrl, app, dimensionsManager, }: IRudderstackRNWrapperParams) => Promise<IRNAnalyticsWrapper>;
12
+ export {};
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.reactNativeRudderstack = void 0;
7
+ const rudder_sdk_react_native_1 = __importDefault(require("@rudderstack/rudder-sdk-react-native"));
8
+ const package_json_1 = require("../../../package.json");
9
+ let isInitialized = false;
10
+ let currentWriteKey = null;
11
+ let currentDataPlaneUrl = null;
12
+ const reactNativeRudderstack = async ({ writeKey, dataPlaneUrl, app, dimensionsManager, }) => {
13
+ console.log('RUDDERSTACK CHECK: Starting RudderStack initialization');
14
+ console.log('RUDDERSTACK CHECK: writeKey:', writeKey ? `${writeKey.substring(0, 10)}...` : 'MISSING');
15
+ console.log('RUDDERSTACK CHECK: dataPlaneUrl:', dataPlaneUrl);
16
+ console.log('RUDDERSTACK CHECK: app:', app);
17
+ console.log('RUDDERSTACK CHECK: isInitialized:', isInitialized);
18
+ const normalizedDataPlaneUrl = dataPlaneUrl.endsWith('/') ? dataPlaneUrl.slice(0, -1) : dataPlaneUrl;
19
+ console.log('RUDDERSTACK CHECK: normalizedDataPlaneUrl:', normalizedDataPlaneUrl);
20
+ if (!isInitialized || currentWriteKey !== writeKey || currentDataPlaneUrl !== normalizedDataPlaneUrl) {
21
+ console.log('RUDDERSTACK CHECK: Setting up RudderStack client...');
22
+ try {
23
+ await rudder_sdk_react_native_1.default.setup(writeKey, {
24
+ dataPlaneUrl: normalizedDataPlaneUrl,
25
+ trackAppLifecycleEvents: true,
26
+ recordScreenViews: true,
27
+ });
28
+ console.log('RUDDERSTACK CHECK: ✅ RudderStack client setup completed successfully');
29
+ isInitialized = true;
30
+ currentWriteKey = writeKey;
31
+ currentDataPlaneUrl = normalizedDataPlaneUrl;
32
+ }
33
+ catch (error) {
34
+ console.error('RUDDERSTACK CHECK: ❌ RudderStack setup failed:', error);
35
+ throw error;
36
+ }
37
+ }
38
+ else {
39
+ console.log('RUDDERSTACK CHECK: RudderStack already initialized, reusing existing client');
40
+ }
41
+ const trackWrapper = async (eventName, eventParams) => {
42
+ console.log('RUDDERSTACK CHECK: [TRACK] Called with eventName:', eventName);
43
+ console.log('RUDDERSTACK CHECK: [TRACK] eventParams:', JSON.stringify(eventParams));
44
+ const data = eventParams;
45
+ const eventData = Object.assign(Object.assign({}, data), { anlaytics_lib_version: package_json_1.version, fleek_platform: app, time_stamp: Date.now(), ads_params: dimensionsManager.adsDimensionValues, url_params: dimensionsManager.urlDimensionValues, internetStats: dimensionsManager.internetDimensions });
46
+ console.log('RUDDERSTACK CHECK: [TRACK] Enriched eventData:', JSON.stringify(eventData));
47
+ console.log('RUDDERSTACK CHECK: [TRACK] Calling rudderClient.track...');
48
+ try {
49
+ rudder_sdk_react_native_1.default.track(eventName, eventData);
50
+ console.log('RUDDERSTACK CHECK: [TRACK] ✅ rudderClient.track called successfully');
51
+ }
52
+ catch (error) {
53
+ console.error('RUDDERSTACK CHECK: [TRACK] ❌ Error calling rudderClient.track:', error);
54
+ throw error;
55
+ }
56
+ return Promise.resolve();
57
+ };
58
+ const screenWrapper = async (name, options) => {
59
+ console.log('RUDDERSTACK CHECK: [SCREEN] Called with name:', name);
60
+ console.log('RUDDERSTACK CHECK: [SCREEN] options:', JSON.stringify(options));
61
+ const screenData = Object.assign(Object.assign({}, (options || {})), { anlaytics_lib_version: package_json_1.version, fleek_platform: app, time_stamp: Date.now(), ads_params: dimensionsManager.adsDimensionValues, url_params: dimensionsManager.urlDimensionValues, internetStats: dimensionsManager.internetDimensions });
62
+ console.log('RUDDERSTACK CHECK: [SCREEN] Enriched screenData:', JSON.stringify(screenData));
63
+ console.log('RUDDERSTACK CHECK: [SCREEN] Calling rudderClient.screen...');
64
+ try {
65
+ rudder_sdk_react_native_1.default.screen(name, screenData);
66
+ console.log('RUDDERSTACK CHECK: [SCREEN] ✅ rudderClient.screen called successfully');
67
+ }
68
+ catch (error) {
69
+ console.error('RUDDERSTACK CHECK: [SCREEN] ❌ Error calling rudderClient.screen:', error);
70
+ throw error;
71
+ }
72
+ return Promise.resolve();
73
+ };
74
+ const identifyWrapper = async (id, traits) => {
75
+ console.log('RUDDERSTACK CHECK: [IDENTIFY] Called with id:', id);
76
+ console.log('RUDDERSTACK CHECK: [IDENTIFY] traits:', JSON.stringify(traits));
77
+ const traitsObj = traits || {};
78
+ const options = {};
79
+ console.log('RUDDERSTACK CHECK: [IDENTIFY] Calling rudderClient.identify...');
80
+ try {
81
+ if (id) {
82
+ console.log('RUDDERSTACK CHECK: [IDENTIFY] Using overload with userId');
83
+ await rudder_sdk_react_native_1.default.identify(id, traitsObj, options);
84
+ console.log('RUDDERSTACK CHECK: [IDENTIFY] ✅ rudderClient.identify (with userId) called successfully');
85
+ }
86
+ else {
87
+ console.log('RUDDERSTACK CHECK: [IDENTIFY] Using overload with traits only');
88
+ await rudder_sdk_react_native_1.default.identify(traitsObj, options);
89
+ console.log('RUDDERSTACK CHECK: [IDENTIFY] ✅ rudderClient.identify (traits only) called successfully');
90
+ }
91
+ }
92
+ catch (error) {
93
+ console.error('RUDDERSTACK CHECK: [IDENTIFY] ❌ Error calling rudderClient.identify:', error);
94
+ throw error;
95
+ }
96
+ };
97
+ const getUserId = () => {
98
+ return '';
99
+ };
100
+ return {
101
+ track: trackWrapper,
102
+ screen: screenWrapper,
103
+ identify: identifyWrapper,
104
+ type: 'RN_RUDDERSTACK',
105
+ getUserId,
106
+ };
107
+ };
108
+ exports.reactNativeRudderstack = reactNativeRudderstack;
109
+ //# sourceMappingURL=react-native-rudderstack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-rudderstack.js","sourceRoot":"","sources":["../../../src/react-native/analytics-tool/react-native-rudderstack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const RUDDERSTACK_DEFAULT_CONFIG: {
2
+ dataPlaneUrl: string;
3
+ writeKey: string;
4
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RUDDERSTACK_DEFAULT_CONFIG = void 0;
4
+ exports.RUDDERSTACK_DEFAULT_CONFIG = {
5
+ dataPlaneUrl: 'https://rudderstack.joinfleek.com',
6
+ writeKey: '37NdqKQQY295HrNiIdLWniUMmKU',
7
+ };
8
+ //# sourceMappingURL=rudderstack-default-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rudderstack-default-config.js","sourceRoot":"","sources":["../../../src/react-native/analytics-tool/rudderstack-default-config.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG;IACxC,YAAY,EAAE,mCAAmC;IACjD,QAAQ,EAAE,6BAA6B;CACxC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface IRudderstackEventRouting {
2
+ sendToRudderstack?: string[];
3
+ eventPatterns?: string[];
4
+ }
5
+ export declare const rudderstackEventRouting: IRudderstackEventRouting;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rudderstackEventRouting = void 0;
4
+ exports.rudderstackEventRouting = {
5
+ sendToRudderstack: [
6
+ 'identify',
7
+ 'screen',
8
+ 'product_detail_page_viewed',
9
+ 'homescreen',
10
+ 'homescreen_viewed',
11
+ 'product_tile_clicked',
12
+ 'session_started',
13
+ 'collection_viewed',
14
+ ],
15
+ };
16
+ //# sourceMappingURL=rudderstack-event-routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rudderstack-event-routing.js","sourceRoot":"","sources":["../../../src/react-native/analytics-tool/rudderstack-event-routing.ts"],"names":[],"mappings":";;;AAUa,QAAA,uBAAuB,GAA6B;IAC/D,iBAAiB,EAAE;QACjB,UAAU;QACV,QAAQ;QACR,4BAA4B;QAC5B,YAAY;QACZ,mBAAmB;QACnB,sBAAsB;QACtB,iBAAiB;QACjB,mBAAmB;KACpB;CACF,CAAC"}
@@ -5,6 +5,7 @@ import { InternetStats } from '../utils/DImentsionManager/dimension-manager';
5
5
  declare class TrackAnalytics {
6
6
  private initParams;
7
7
  private analyticsWrapper;
8
+ private rudderstackWrapper;
8
9
  private dimensionsManager;
9
10
  reactNativeSegmentClient?: SegmentClient;
10
11
  private firebaseAnalytics;
@@ -14,6 +15,7 @@ declare class TrackAnalytics {
14
15
  initDimensions: (url?: string) => void;
15
16
  initFirebaseInstanceId: (id: string) => void;
16
17
  private checkInitDone;
18
+ private shouldSendToRudderstack;
17
19
  private enrichEvent;
18
20
  track: tRNTrack;
19
21
  identify: tRNIdentify;