@driveflux/web-analytics 1.6.0 → 1.6.2

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,OAC5C,GAAG,SACD,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,9 +1,14 @@
1
1
  import { singleton } from '@driveflux/singleton';
2
2
  const getConfig = ()=>({
3
+ appUrl: process.env.APP_URL || 'https://driveflux.com',
3
4
  ga: {
4
5
  measurementId: process.env.GA_MEASUREMENT_ID,
5
6
  apiSecret: process.env.GA_API_SECRET
6
7
  },
8
+ fb: {
9
+ pixelId: process.env.NEXT_PUBLIC_FB_PIXEL_ID,
10
+ accessToken: process.env.FB_ACCESS_TOKEN
11
+ },
7
12
  consoleLogEvents: process.env.ANALYTICS_LOG_EVENTS === 'true' || process.env.APP_ENV !== 'production'
8
13
  });
9
14
  export let config = singleton('webAnalyticsConfig', getConfig());
@@ -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,SACzB,cAAc,UACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EAAE,kBAuE7C,CAAA;AAED,eAAO,MAAM,WAAW,SACjB,cAAc,QACd,MAAM,SACL,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,GACjC,MAAM,cAAc,EACpB,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EAAE,kBA0E7C,CAAA;AAED,eAAO,MAAM,aAAa,GACzB,MAAM,cAAc,EACpB,MAAM,MAAM,EACZ,OAAO,UAAU,kBACgC,CAAA;AAGlD,eAAO,MAAM,qBAAqB,GACjC,MAAM,cAAc,EACpB,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EAAE,kBAuE7C,CAAA;AAED,eAAO,MAAM,aAAa,GACzB,MAAM,cAAc,EACpB,MAAM,MAAM,EACZ,OAAO,UAAU,kBACgC,CAAA"}
@@ -1,7 +1,73 @@
1
1
  import { enhancedFetch } from '@driveflux/fetch';
2
2
  import { config } from './config';
3
- import { convertUserData, extractGA4ClientId, extractGA4SessionId, getCurrentTimestampMicros } from './utils.js';
4
- export const trackServerMultiple = async (user, events)=>{
3
+ import { convertFacebookUserData, convertGAUserData, extractAnalyticClientId, extractAnalyticSessionId, getCurrentTimestampMicros } from './utils.js';
4
+ // google
5
+ export const trackFbServerMultiple = async (user, events)=>{
6
+ if (events.length > 1) {
7
+ console.log('🚨🚨🚨🗄️ firing multiple server events', events);
8
+ const filtered = events.filter((e)=>!!e.name);
9
+ if (filtered.length !== events.length) {
10
+ console.log('Not all events have names');
11
+ return;
12
+ }
13
+ } else {
14
+ console.log('🚨🚨🚨🗄️ firing server event', events?.[0]?.name, events?.[0]?.data);
15
+ if (!events?.[0]?.name) {
16
+ console.error('The name of the event is missing');
17
+ return;
18
+ }
19
+ }
20
+ const apiVersion = 'v13.0';
21
+ const pixelId = config.fb.pixelId;
22
+ const accessToken = config.fb.accessToken;
23
+ if (!pixelId || !accessToken) {
24
+ console.log('The configuration is not set up correctly.');
25
+ return;
26
+ }
27
+ const clientId = extractAnalyticClientId(user.clientIdCookie);
28
+ const sessionId = extractAnalyticSessionId(user.sessionIdCookie);
29
+ if (!clientId || !sessionId) {
30
+ console.log('The user client id or session id are not provided');
31
+ return;
32
+ }
33
+ const userData = user.data ? await convertFacebookUserData(user.data) : {};
34
+ const url = `https://graph.facebook.com/${apiVersion}/${pixelId}/events?access_token=${accessToken}`;
35
+ const payload = {
36
+ data: events.map((e)=>{
37
+ if (e.name) {
38
+ return {
39
+ event_name: e.name,
40
+ event_time: Math.floor(Date.now() / 1000),
41
+ event_source_url: config.appUrl,
42
+ action_source: 'website',
43
+ user_data: {
44
+ ...userData,
45
+ fbp: `fb.1.${clientId}`
46
+ },
47
+ custom_data: {
48
+ ...e.data
49
+ }
50
+ };
51
+ }
52
+ return null;
53
+ }).filter(Boolean)
54
+ };
55
+ await enhancedFetch(url, {
56
+ method: 'POST',
57
+ headers: {
58
+ 'Content-Type': 'application/json'
59
+ },
60
+ body: JSON.stringify(payload)
61
+ });
62
+ };
63
+ export const trackFbServer = async (user, name, data)=>trackFbServerMultiple(user, [
64
+ {
65
+ name,
66
+ data
67
+ }
68
+ ]);
69
+ // facebook
70
+ export const trackGAServerMultiple = async (user, events)=>{
5
71
  if (events.length > 1) {
6
72
  console.log('🚨🚨🚨🗄️ firing multiple server events', events);
7
73
  const filtered = events.filter((e)=>!!e.name);
@@ -22,14 +88,14 @@ export const trackServerMultiple = async (user, events)=>{
22
88
  console.log('The configuration is not set up correctly.');
23
89
  return;
24
90
  }
25
- const clientId = extractGA4ClientId(user.clientIdCookie);
26
- const sessionId = extractGA4SessionId(user.sessionIdCookie);
91
+ const clientId = extractAnalyticClientId(user.clientIdCookie);
92
+ const sessionId = extractAnalyticSessionId(user.sessionIdCookie);
27
93
  if (!clientId || !sessionId) {
28
94
  console.log('The user client id or session id are not provided');
29
95
  return;
30
96
  }
31
97
  const userData = user.data ? {
32
- user_data: await convertUserData(user.data)
98
+ user_data: await convertGAUserData(user.data)
33
99
  } : {};
34
100
  const url = `https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`;
35
101
  const payload = {
@@ -57,7 +123,7 @@ export const trackServerMultiple = async (user, events)=>{
57
123
  body: JSON.stringify(payload)
58
124
  });
59
125
  };
60
- export const trackServer = async (user, name, data)=>trackServerMultiple(user, [
126
+ export const trackGAServer = async (user, name, data)=>trackGAServerMultiple(user, [
61
127
  {
62
128
  name,
63
129
  data
@@ -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,UAAiB,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,cAClB,MAAM,cACL,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,7 +1,7 @@
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
7
  const drainEvents = ()=>{
@@ -28,16 +28,17 @@ if (ud) {
28
28
  defaultUserData = JSON.parse(json);
29
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
+ return null // If no cookie is found or format is unexpected
41
42
  ;
42
43
  }
43
44
  const sendGTMEvent = (data)=>{
@@ -79,7 +80,7 @@ export const useTrackEvent = ()=>{
79
80
  safeSendGTMEvent(event);
80
81
  }, []);
81
82
  const setUserData = useCallback(async (dataInput)=>{
82
- userData.current = await convertUserData(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 {
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":"AAAA,OAAO,OAAO,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAUvE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAA;AAClD,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAEnC,MAAM,WAAW,GAAG,GAAG,EAAE;IACxB,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAA;IAC/B,WAAW,CAAC,KAAK,EAAE,CAAA;IACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,YAAY,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;AACF,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;IACjC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAM;IAEzC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,WAAW,EAAE,CAAA;QACb,aAAa,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;AACF,CAAC,EAAE,uBAAuB,CAAC,CAAA;AAE3B,MAAM,EAAE,GAAG,OAAO,YAAY,KAAK,WAAW,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC5E,IAAI,eAAe,GAAiC,SAAS,CAAA;AAC7D,IAAI,EAAE,EAAE,CAAC;IACR,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACvD,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAA2B;IAC9D,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IAEjD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,MAAM,GAAG,CAAC,CACvC,CAAA;IACD,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,IAAI,CAAA,CAAC,gDAAgD;AAC7D,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,IAAS,EAAE,EAAE;IAClC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC3D,CAAC;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAA0B,EAAE,EAAE;IACpE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC3B,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,OAAM;IACP,CAAC;IAED,YAAY,CAAC,KAAK,CAAC,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IACjC,MAAM,QAAQ,GAAG,MAAM,CAA+B,eAAe,CAAC,CAAA;IAEtE,MAAM,KAAK,GAAG,WAAW,CACxB,CACC,SAAiB,EACjB,SAA+B,EAC/B,SAAqB,EACpB,EAAE;QACH,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QACzD,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YACvC,OAAM;QACP,CAAC;QAED,MAAM,KAAK,GAAG;YACb,KAAK,EAAE,SAAS;YAChB,GAAG,CAAC,QAAQ,CAAC,OAAO;gBACnB,CAAC,CAAC;oBACA,SAAS,EAAE,QAAQ,CAAC,OAAO;iBAC3B;gBACF,CAAC,CAAC,EAAE,CAAC;YACN,GAAG,SAAS;SACZ,CAAA;QAED,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAChC,gBAAgB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QACvC,CAAC;QAED,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC,EACD,EAAE,CACF,CAAA;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,EAAE,SAAuB,EAAE,EAAE;QACjE,QAAQ,CAAC,OAAO,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAA;QACrD,YAAY,CAAC,OAAO,CACnB,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxE,CAAA;IACF,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;QACN,KAAK;QACL,WAAW;KACX,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,SAAiB,EACjB,SAA+B,EAC9B,EAAE;IACH,MAAM,iBAAiB,GAAG,MAAM,EAAmC,CAAA;IACnE,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAErC,SAAS,CAAC,GAAG,EAAE;QACd,IACC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC;YAC7C,eAAe,CAAC,OAAO,EACtB,CAAC;YACF,OAAM;QACP,CAAC;QAED,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;QAC9B,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,KAAK,GAAG;YACb,KAAK,EAAE,SAAS;YAChB,GAAG,SAAS;SACZ,CAAA;QAED,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAEvB,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAA;IACtC,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;AAC3B,CAAC,CAAA"}
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,aAAc,MAAM,kBAMlD,CAAA;AAED,eAAO,MAAM,mBAAmB,aAAc,MAAM,kBAMnD,CAAA;AAED,eAAO,MAAM,eAAe,cAChB,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
@@ -14,21 +14,21 @@ export const getCurrentTimestampMicros = ()=>{
14
14
  const epochMicros = epochMillis * 1000;
15
15
  return epochMicros.toString();
16
16
  };
17
- export const extractGA4ClientId = (gaCookie)=>{
18
- const matches = gaCookie.split('.');
17
+ export const extractAnalyticClientId = (cookie)=>{
18
+ const matches = cookie.split('.');
19
19
  if (matches.length > 2) {
20
20
  return `${matches[2]}.${matches[3]}`;
21
21
  }
22
22
  return null;
23
23
  };
24
- export const extractGA4SessionId = (gaCookie)=>{
25
- const matches = gaCookie.split('.');
24
+ export const extractAnalyticSessionId = (cookie)=>{
25
+ const matches = cookie.split('.');
26
26
  if (matches.length > 2) {
27
27
  return Number.parseInt(`${matches[2]}`);
28
28
  }
29
29
  return null;
30
30
  };
31
- export const convertUserData = async (dataInput)=>{
31
+ export const convertGAUserData = async (dataInput)=>{
32
32
  const userAddress = dataInput.addresses?.home || dataInput.addresses?.billing;
33
33
  return {
34
34
  user_id: dataInput.id,
@@ -48,3 +48,22 @@ export const convertUserData = async (dataInput)=>{
48
48
  } : undefined
49
49
  };
50
50
  };
51
+ export const convertFacebookUserData = async (userData)=>{
52
+ if (!userData) return {};
53
+ const data = {};
54
+ if (userData.email) {
55
+ data.em = await hashData(userData.email.toLowerCase().trim());
56
+ }
57
+ if (userData.phoneNumber) {
58
+ // Remove all non-numeric characters
59
+ const cleanPhone = userData.phoneNumber.replace(/\D/g, '');
60
+ data.ph = await hashData(cleanPhone);
61
+ }
62
+ if (userData.firstName) {
63
+ data.fn = await hashData(userData.firstName.toLowerCase().trim());
64
+ }
65
+ if (userData.lastName) {
66
+ data.ln = await hashData(userData.lastName.toLowerCase().trim());
67
+ }
68
+ return data;
69
+ };
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.0",
3
+ "version": "1.6.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./track": {
@@ -21,7 +21,7 @@
21
21
  ],
22
22
  "dependencies": {
23
23
  "@driveflux/fetch": "6.4.0",
24
- "@driveflux/singleton": "1.6.0",
24
+ "@driveflux/singleton": "1.6.1",
25
25
  "@next/third-parties": "^15.0.0",
26
26
  "lodash": "^4.17.21"
27
27
  },