@driveflux/web-analytics 1.6.1 → 1.6.3

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/dist/config.d.ts CHANGED
@@ -1,8 +1,13 @@
1
1
  type Config = {
2
+ appUrl: string;
2
3
  ga: {
3
4
  measurementId: string;
4
5
  apiSecret: string;
5
6
  };
7
+ fb: {
8
+ pixelId: string;
9
+ accessToken: string;
10
+ };
6
11
  consoleLogEvents: boolean;
7
12
  };
8
13
  export declare let config: Config;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,KAAK,MAAM,GAAG;IACb,EAAE,EAAE;QACH,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,gBAAgB,EAAE,OAAO,CAAA;CACzB,CAAA;AAYD,eAAO,IAAI,MAAM,EAAE,MAAqD,CAAA;AAExE,eAAO,MAAM,WAAW,cAGvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,MAAM,MAAM,EACjD,KAAK,GAAG,EACR,OAAO,MAAM,CAAC,GAAG,CAAC,SAGlB,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,KAAK,MAAM,GAAG;IACb,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE;QACH,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,EAAE,EAAE;QACH,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,gBAAgB,EAAE,OAAO,CAAA;CACzB,CAAA;AAiBD,eAAO,IAAI,MAAM,EAAE,MAAqD,CAAA;AAExE,eAAO,MAAM,WAAW,cAGvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,MAAM,MAAM,EACjD,KAAK,GAAG,EACR,OAAO,MAAM,CAAC,GAAG,CAAC,SAGlB,CAAA"}
package/dist/config.js CHANGED
@@ -1,16 +1,23 @@
1
1
  import { singleton } from '@driveflux/singleton';
2
- const getConfig = ()=>({
3
- ga: {
4
- measurementId: process.env.GA_MEASUREMENT_ID,
5
- apiSecret: process.env.GA_API_SECRET
6
- },
7
- consoleLogEvents: process.env.ANALYTICS_LOG_EVENTS === 'true' || process.env.APP_ENV !== 'production'
8
- });
2
+ const getConfig = () => ({
3
+ appUrl: process.env.APP_URL || 'https://driveflux.com',
4
+ ga: {
5
+ measurementId: process.env.GA_MEASUREMENT_ID,
6
+ apiSecret: process.env.GA_API_SECRET,
7
+ },
8
+ fb: {
9
+ pixelId: process.env.NEXT_PUBLIC_FB_PIXEL_ID,
10
+ accessToken: process.env.FB_ACCESS_TOKEN,
11
+ },
12
+ consoleLogEvents: process.env.ANALYTICS_LOG_EVENTS === 'true' ||
13
+ process.env.APP_ENV !== 'production',
14
+ });
9
15
  export let config = singleton('webAnalyticsConfig', getConfig());
10
- export const resetConfig = ()=>{
16
+ export const resetConfig = () => {
11
17
  config = singleton('webAnalyticsConfig', getConfig(), true);
12
18
  return config;
13
19
  };
14
- export const setConfig = (key, value)=>{
20
+ export const setConfig = (key, value) => {
15
21
  config[key] = value;
16
22
  };
23
+ //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAUhD,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,CAAC;IAChC,EAAE,EAAE;QACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,iBAA2B;QACtD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,aAAuB;KAC9C;IACD,gBAAgB,EACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM;QAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,MAAM,GAAW,SAAS,CAAC,oBAAoB,EAAE,SAAS,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,GAAQ,EACR,KAAkB,EACjB,EAAE;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAehD,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB;IACtD,EAAE,EAAE;QACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,iBAA2B;QACtD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,aAAuB;KAC9C;IACD,EAAE,EAAE;QACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAiC;QACtD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAyB;KAClD;IACD,gBAAgB,EACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM;QAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,MAAM,GAAW,SAAS,CAAC,oBAAoB,EAAE,SAAS,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,GAAQ,EACR,KAAkB,EACjB,EAAE;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AACpB,CAAC,CAAA"}
@@ -1,8 +1,13 @@
1
1
  import type { JsonObject } from 'type-fest';
2
2
  import type { ServerUserData } from './types.js';
3
- export declare const trackServerMultiple: (user: ServerUserData, events: {
3
+ export declare const trackFbServerMultiple: (user: ServerUserData, events: {
4
4
  name: string;
5
5
  data?: JsonObject;
6
6
  }[]) => Promise<void>;
7
- export declare const trackServer: (user: ServerUserData, name: string, data?: JsonObject) => Promise<void>;
7
+ export declare const trackFbServer: (user: ServerUserData, name: string, data?: JsonObject) => Promise<void>;
8
+ export declare const trackGAServerMultiple: (user: ServerUserData, events: {
9
+ name: string;
10
+ data?: JsonObject;
11
+ }[]) => Promise<void>;
12
+ export declare const trackGAServer: (user: ServerUserData, name: string, data?: JsonObject) => Promise<void>;
8
13
  //# sourceMappingURL=track-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"track-server.d.ts","sourceRoot":"","sources":["../src/track-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,eAAO,MAAM,mBAAmB,GAC/B,MAAM,cAAc,EACpB,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EAAE,kBAuE7C,CAAA;AAED,eAAO,MAAM,WAAW,GACvB,MAAM,cAAc,EACpB,MAAM,MAAM,EACZ,OAAO,UAAU,kBAC8B,CAAA"}
1
+ {"version":3,"file":"track-server.d.ts","sourceRoot":"","sources":["../src/track-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAUhD,eAAO,MAAM,qBAAqB,SAC3B,cAAc,UACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EAAE,kBA0E7C,CAAA;AAED,eAAO,MAAM,aAAa,SACnB,cAAc,QACd,MAAM,SACL,UAAU,kBACgC,CAAA;AAGlD,eAAO,MAAM,qBAAqB,SAC3B,cAAc,UACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EAAE,kBAuE7C,CAAA;AAED,eAAO,MAAM,aAAa,SACnB,cAAc,QACd,MAAM,SACL,UAAU,kBACgC,CAAA"}
@@ -1,15 +1,80 @@
1
1
  import { enhancedFetch } from '@driveflux/fetch';
2
- import { config } from './config';
3
- import { convertUserData, extractGA4ClientId, extractGA4SessionId, getCurrentTimestampMicros } from './utils.js';
4
- export const trackServerMultiple = async (user, events)=>{
2
+ import { config } from './config.js';
3
+ import { convertFacebookUserData, convertGAUserData, extractAnalyticClientId, extractAnalyticSessionId, getCurrentTimestampMicros, } from './utils.js';
4
+ // google
5
+ export const trackFbServerMultiple = async (user, events) => {
5
6
  if (events.length > 1) {
6
7
  console.log('🚨🚨🚨🗄️ firing multiple server events', events);
7
- const filtered = events.filter((e)=>!!e.name);
8
+ const filtered = events.filter((e) => !!e.name);
8
9
  if (filtered.length !== events.length) {
9
10
  console.log('Not all events have names');
10
11
  return;
11
12
  }
12
- } else {
13
+ }
14
+ else {
15
+ console.log('🚨🚨🚨🗄️ firing server event', events?.[0]?.name, events?.[0]?.data);
16
+ if (!events?.[0]?.name) {
17
+ console.error('The name of the event is missing');
18
+ return;
19
+ }
20
+ }
21
+ const apiVersion = 'v13.0';
22
+ const pixelId = config.fb.pixelId;
23
+ const accessToken = config.fb.accessToken;
24
+ if (!pixelId || !accessToken) {
25
+ console.log('The configuration is not set up correctly.');
26
+ return;
27
+ }
28
+ const clientId = extractAnalyticClientId(user.clientIdCookie);
29
+ const sessionId = extractAnalyticSessionId(user.sessionIdCookie);
30
+ if (!clientId || !sessionId) {
31
+ console.log('The user client id or session id are not provided');
32
+ return;
33
+ }
34
+ const userData = user.data ? await convertFacebookUserData(user.data) : {};
35
+ const url = `https://graph.facebook.com/${apiVersion}/${pixelId}/events?access_token=${accessToken}`;
36
+ const payload = {
37
+ data: events
38
+ .map((e) => {
39
+ if (e.name) {
40
+ return {
41
+ event_name: e.name,
42
+ event_time: Math.floor(Date.now() / 1000), // Unix timestamp in seconds
43
+ event_source_url: config.appUrl,
44
+ action_source: 'website',
45
+ user_data: {
46
+ ...userData,
47
+ fbp: `fb.1.${clientId}`,
48
+ },
49
+ custom_data: {
50
+ ...e.data,
51
+ },
52
+ };
53
+ }
54
+ return null;
55
+ })
56
+ .filter(Boolean),
57
+ };
58
+ await enhancedFetch(url, {
59
+ method: 'POST',
60
+ headers: {
61
+ 'Content-Type': 'application/json',
62
+ },
63
+ body: JSON.stringify(payload),
64
+ });
65
+ };
66
+ export const trackFbServer = async (user, name, data) => trackFbServerMultiple(user, [{ name, data }]);
67
+ // facebook
68
+ export const trackGAServerMultiple = async (user, events) => {
69
+ if (events.length > 1) {
70
+ console.log('🚨🚨🚨🗄️ firing multiple server events', events);
71
+ const filtered = events.filter((e) => !!e.name);
72
+ if (filtered.length !== events.length) {
73
+ console.log('Not all events have names');
74
+ return;
75
+ }
76
+ }
77
+ else {
13
78
  console.log('🚨🚨🚨🗄️ firing server event', events?.[0]?.name, events?.[0]?.data);
14
79
  if (!events?.[0]?.name) {
15
80
  console.error('The name of the event is missing');
@@ -22,44 +87,40 @@ export const trackServerMultiple = async (user, events)=>{
22
87
  console.log('The configuration is not set up correctly.');
23
88
  return;
24
89
  }
25
- const clientId = extractGA4ClientId(user.clientIdCookie);
26
- const sessionId = extractGA4SessionId(user.sessionIdCookie);
90
+ const clientId = extractAnalyticClientId(user.clientIdCookie);
91
+ const sessionId = extractAnalyticSessionId(user.sessionIdCookie);
27
92
  if (!clientId || !sessionId) {
28
93
  console.log('The user client id or session id are not provided');
29
94
  return;
30
95
  }
31
- const userData = user.data ? {
32
- user_data: await convertUserData(user.data)
33
- } : {};
96
+ const userData = user.data
97
+ ? { user_data: await convertGAUserData(user.data) }
98
+ : {};
34
99
  const url = `https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`;
35
100
  const payload = {
36
101
  client_id: clientId,
37
102
  timestamp_micros: getCurrentTimestampMicros(),
38
- events: events.map((e)=>{
103
+ events: events.map((e) => {
39
104
  if (e.name) {
40
105
  return {
41
106
  name: e.name,
42
107
  params: {
43
108
  ...userData,
44
109
  ...e.data,
45
- session_id: sessionId
46
- }
110
+ session_id: sessionId,
111
+ },
47
112
  };
48
113
  }
49
114
  return null;
50
- })
115
+ }),
51
116
  };
52
117
  await enhancedFetch(url, {
53
118
  method: 'POST',
54
119
  headers: {
55
- 'Content-Type': 'application/json'
120
+ 'Content-Type': 'application/json',
56
121
  },
57
- body: JSON.stringify(payload)
122
+ body: JSON.stringify(payload),
58
123
  });
59
124
  };
60
- export const trackServer = async (user, name, data)=>trackServerMultiple(user, [
61
- {
62
- name,
63
- data
64
- }
65
- ]);
125
+ export const trackGAServer = async (user, name, data) => trackGAServerMultiple(user, [{ name, data }]);
126
+ //# sourceMappingURL=track-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"track-server.js","sourceRoot":"","sources":["../src/track-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"track-server.js","sourceRoot":"","sources":["../src/track-server.ts"],"names":[],"mappings":"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"}
package/dist/track.d.ts CHANGED
@@ -5,7 +5,7 @@ declare global {
5
5
  }
6
6
  }
7
7
  type ClearMode = 'clearItems';
8
- export declare function getGA4ClientId(): string | null;
8
+ export declare function getAnalyticClientId(type: 'google' | 'facebook'): string | null;
9
9
  export declare const safeSendGTMEvent: (event: Record<string, any>) => Promise<void>;
10
10
  export declare const useTrackEvent: () => {
11
11
  track: (eventName: string, eventData?: Record<string, any>, clearMode?: ClearMode) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,YAAY,CAAA;AAGhE,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KACxB;CACD;AAED,KAAK,SAAS,GAAG,YAAY,CAAA;AA+B7B,wBAAgB,cAAc,kBAW7B;AAUD,eAAO,MAAM,gBAAgB,GAAU,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,kBAOhE,CAAA;AAED,eAAO,MAAM,aAAa;uBAKZ,MAAM,cACL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,cACnB,SAAS;6BA8B2B,YAAY;CAY9D,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC7B,WAAW,MAAM,EACjB,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SA0B/B,CAAA"}
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,YAAY,CAAA;AAGhE,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KACxB;CACD;AAED,KAAK,SAAS,GAAG,YAAY,CAAA;AA+B7B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,iBAe9D;AAUD,eAAO,MAAM,gBAAgB,GAAU,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,kBAOhE,CAAA;AAED,eAAO,MAAM,aAAa;uBAKZ,MAAM,cACL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,cACnB,SAAS;6BA8B2B,YAAY;CAY9D,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC7B,WAAW,MAAM,EACjB,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SA0B/B,CAAA"}
package/dist/track.js CHANGED
@@ -1,20 +1,19 @@
1
1
  import isEqual from 'lodash/isEqual.js';
2
2
  import { useCallback, useEffect, useRef } from 'react';
3
3
  import { config } from './config.js';
4
- import { convertUserData, extractGA4ClientId } from './utils.js';
4
+ import { convertGAUserData, extractAnalyticClientId } from './utils.js';
5
5
  const eventsQueue = new Set();
6
6
  const TIMEOUT_TO_CLEAR_EVENTS = 500;
7
- const drainEvents = ()=>{
8
- const events = [
9
- ...eventsQueue
10
- ];
7
+ const drainEvents = () => {
8
+ const events = [...eventsQueue];
11
9
  eventsQueue.clear();
12
- for (const event of events){
10
+ for (const event of events) {
13
11
  sendGTMEvent(event);
14
12
  }
15
13
  };
16
- const interval = setInterval(()=>{
17
- if (typeof window === 'undefined') return;
14
+ const interval = setInterval(() => {
15
+ if (typeof window === 'undefined')
16
+ return;
18
17
  if (window.fluxDataLayer) {
19
18
  drainEvents();
20
19
  clearInterval(interval);
@@ -26,37 +25,39 @@ if (ud) {
26
25
  try {
27
26
  const json = Buffer.from(ud, 'base64').toString('utf8');
28
27
  defaultUserData = JSON.parse(json);
29
- } catch (e) {}
28
+ }
29
+ catch (e) { }
30
30
  }
31
- export function getGA4ClientId() {
31
+ export function getAnalyticClientId(type) {
32
32
  if (typeof document === 'undefined') {
33
33
  return null;
34
34
  }
35
+ const prefix = type === 'facebook' ? 'fbp' : 'ga';
35
36
  const cookies = document.cookie.split(';');
36
- const gaCookie = cookies.find((cookie)=>cookie.trim().startsWith('_ga='));
37
- if (gaCookie) {
38
- return extractGA4ClientId(gaCookie);
37
+ const cookie = cookies.find((cookie) => cookie.trim().startsWith(`_${prefix}=`));
38
+ if (cookie) {
39
+ return extractAnalyticClientId(cookie);
39
40
  }
40
- return null // If no GA cookie is found or format is unexpected
41
- ;
41
+ return null; // If no cookie is found or format is unexpected
42
42
  }
43
- const sendGTMEvent = (data)=>{
43
+ const sendGTMEvent = (data) => {
44
44
  if (window.fluxDataLayer) {
45
45
  window.fluxDataLayer.push(data);
46
- } else {
46
+ }
47
+ else {
47
48
  console.warn('GTM dataLayer fluxDataLayer does not exist');
48
49
  }
49
50
  };
50
- export const safeSendGTMEvent = async (event)=>{
51
+ export const safeSendGTMEvent = async (event) => {
51
52
  if (!window.fluxDataLayer) {
52
53
  eventsQueue.add(event);
53
54
  return;
54
55
  }
55
56
  sendGTMEvent(event);
56
57
  };
57
- export const useTrackEvent = ()=>{
58
+ export const useTrackEvent = () => {
58
59
  const userData = useRef(defaultUserData);
59
- const track = useCallback((eventName, eventData, clearMode)=>{
60
+ const track = useCallback((eventName, eventData, clearMode) => {
60
61
  if (config.consoleLogEvents) {
61
62
  console.log('🚨🚨🚨 firing event', eventName, eventData);
62
63
  }
@@ -66,32 +67,33 @@ export const useTrackEvent = ()=>{
66
67
  }
67
68
  const event = {
68
69
  event: eventName,
69
- ...userData.current ? {
70
- user_data: userData.current
71
- } : {},
72
- ...eventData
70
+ ...(userData.current
71
+ ? {
72
+ user_data: userData.current,
73
+ }
74
+ : {}),
75
+ ...eventData,
73
76
  };
74
77
  if (clearMode === 'clearItems') {
75
- safeSendGTMEvent({
76
- items: undefined
77
- });
78
+ safeSendGTMEvent({ items: undefined });
78
79
  }
79
80
  safeSendGTMEvent(event);
80
81
  }, []);
81
- const setUserData = useCallback(async (dataInput)=>{
82
- userData.current = await convertUserData(dataInput);
82
+ const setUserData = useCallback(async (dataInput) => {
83
+ userData.current = await convertGAUserData(dataInput);
83
84
  localStorage.setItem('ud', Buffer.from(JSON.stringify(userData.current), 'utf8').toString('base64'));
84
85
  }, []);
85
86
  return {
86
87
  track,
87
- setUserData
88
+ setUserData,
88
89
  };
89
90
  };
90
- export const useAutoTrackEvent = (eventName, eventData)=>{
91
+ export const useAutoTrackEvent = (eventName, eventData) => {
91
92
  const previousEventData = useRef();
92
93
  const firedFirstEvent = useRef(false);
93
- useEffect(()=>{
94
- if (isEqual(previousEventData.current, eventData) && firedFirstEvent.current) {
94
+ useEffect(() => {
95
+ if (isEqual(previousEventData.current, eventData) &&
96
+ firedFirstEvent.current) {
95
97
  return;
96
98
  }
97
99
  firedFirstEvent.current = true;
@@ -100,12 +102,10 @@ export const useAutoTrackEvent = (eventName, eventData)=>{
100
102
  }
101
103
  const event = {
102
104
  event: eventName,
103
- ...eventData
105
+ ...eventData,
104
106
  };
105
107
  safeSendGTMEvent(event);
106
108
  previousEventData.current = eventData;
107
- }, [
108
- eventData,
109
- eventName
110
- ]);
109
+ }, [eventData, eventName]);
111
110
  };
111
+ //# sourceMappingURL=track.js.map
package/dist/track.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"track.js","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"track.js","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1 +1,2 @@
1
- export { };
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
package/dist/utils.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import type { TrackingUserData, UserLikeData } from './types.js';
1
+ import type { ServerUserData, TrackingUserData, UserLikeData } from './types.js';
2
2
  export declare function hashData(input: string): Promise<string>;
3
3
  export declare const getCurrentTimestampMicros: () => string;
4
- export declare const extractGA4ClientId: (gaCookie: string) => string | null;
5
- export declare const extractGA4SessionId: (gaCookie: string) => number | null;
6
- export declare const convertUserData: (dataInput: UserLikeData) => Promise<TrackingUserData>;
4
+ export declare const extractAnalyticClientId: (cookie: string) => string | null;
5
+ export declare const extractAnalyticSessionId: (cookie: string) => number | null;
6
+ export declare const convertGAUserData: (dataInput: UserLikeData) => Promise<TrackingUserData>;
7
+ export declare const convertFacebookUserData: (userData: ServerUserData["data"]) => Promise<Record<string, string>>;
7
8
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEhE,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,mBAO3C;AAED,eAAO,MAAM,yBAAyB,QAAO,MAK5C,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,kBAMlD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,kBAMnD,CAAA;AAED,eAAO,MAAM,eAAe,GAC3B,WAAW,YAAY,KACrB,OAAO,CAAC,gBAAgB,CAwB1B,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEhF,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,mBAO3C;AAED,eAAO,MAAM,yBAAyB,QAAO,MAK5C,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,kBAMrD,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,kBAMtD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC7B,WAAW,YAAY,KACrB,OAAO,CAAC,gBAAgB,CAwB1B,CAAA;AAED,eAAO,MAAM,uBAAuB,GACnC,UAAU,cAAc,CAAC,MAAM,CAAC,oCAyBhC,CAAA"}
package/dist/utils.js CHANGED
@@ -2,49 +2,73 @@ export async function hashData(input) {
2
2
  const encoder = new TextEncoder();
3
3
  const data = encoder.encode(input);
4
4
  const hashBuffer = await crypto.subtle.digest('SHA-256', data);
5
- const hashArray = Array.from(new Uint8Array(hashBuffer)) // Convert buffer to byte array
6
- ;
7
- const hashHex = hashArray.map((b)=>b.toString(16).padStart(2, '0')).join('') // Convert bytes to hex string
8
- ;
5
+ const hashArray = Array.from(new Uint8Array(hashBuffer)); // Convert buffer to byte array
6
+ const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join(''); // Convert bytes to hex string
9
7
  return hashHex;
10
8
  }
11
- export const getCurrentTimestampMicros = ()=>{
9
+ export const getCurrentTimestampMicros = () => {
12
10
  const now = new Date();
13
11
  const epochMillis = now.getTime();
14
12
  const epochMicros = epochMillis * 1000;
15
13
  return epochMicros.toString();
16
14
  };
17
- export const extractGA4ClientId = (gaCookie)=>{
18
- const matches = gaCookie.split('.');
15
+ export const extractAnalyticClientId = (cookie) => {
16
+ const matches = cookie.split('.');
19
17
  if (matches.length > 2) {
20
18
  return `${matches[2]}.${matches[3]}`;
21
19
  }
22
20
  return null;
23
21
  };
24
- export const extractGA4SessionId = (gaCookie)=>{
25
- const matches = gaCookie.split('.');
22
+ export const extractAnalyticSessionId = (cookie) => {
23
+ const matches = cookie.split('.');
26
24
  if (matches.length > 2) {
27
25
  return Number.parseInt(`${matches[2]}`);
28
26
  }
29
27
  return null;
30
28
  };
31
- export const convertUserData = async (dataInput)=>{
29
+ export const convertGAUserData = async (dataInput) => {
32
30
  const userAddress = dataInput.addresses?.home || dataInput.addresses?.billing;
33
31
  return {
34
32
  user_id: dataInput.id,
35
33
  email: await hashData(dataInput.email),
36
- phone_number: dataInput.phoneNumber ? await hashData(dataInput.phoneNumber) : undefined,
37
- address: userAddress ? {
38
- first_name: dataInput.firstName ? await hashData(dataInput.firstName) : undefined,
39
- last_name: dataInput.lastName ? await hashData(dataInput.lastName) : undefined,
40
- street: [
41
- userAddress.street1,
42
- userAddress.street2
43
- ].join(', '),
44
- city: userAddress.city,
45
- region: userAddress.state,
46
- postal_code: userAddress.postalCode,
47
- country: userAddress.country
48
- } : undefined
34
+ phone_number: dataInput.phoneNumber
35
+ ? await hashData(dataInput.phoneNumber)
36
+ : undefined,
37
+ address: userAddress
38
+ ? {
39
+ first_name: dataInput.firstName
40
+ ? await hashData(dataInput.firstName)
41
+ : undefined,
42
+ last_name: dataInput.lastName
43
+ ? await hashData(dataInput.lastName)
44
+ : undefined,
45
+ street: [userAddress.street1, userAddress.street2].join(', '),
46
+ city: userAddress.city,
47
+ region: userAddress.state,
48
+ postal_code: userAddress.postalCode,
49
+ country: userAddress.country,
50
+ }
51
+ : undefined,
49
52
  };
50
53
  };
54
+ export const convertFacebookUserData = async (userData) => {
55
+ if (!userData)
56
+ return {};
57
+ const data = {};
58
+ if (userData.email) {
59
+ data.em = await hashData(userData.email.toLowerCase().trim());
60
+ }
61
+ if (userData.phoneNumber) {
62
+ // Remove all non-numeric characters
63
+ const cleanPhone = userData.phoneNumber.replace(/\D/g, '');
64
+ data.ph = await hashData(cleanPhone);
65
+ }
66
+ if (userData.firstName) {
67
+ data.fn = await hashData(userData.firstName.toLowerCase().trim());
68
+ }
69
+ if (userData.lastName) {
70
+ data.ln = await hashData(userData.lastName.toLowerCase().trim());
71
+ }
72
+ return data;
73
+ };
74
+ //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@driveflux/web-analytics",
3
- "version": "1.6.1",
3
+ "version": "1.6.3",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./track": {