@se-studio/brightline-shared 0.0.4 → 0.0.7
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/adapters/BrightlineAnalyticsAdapter.d.ts +4 -0
- package/dist/adapters/BrightlineAnalyticsAdapter.d.ts.map +1 -0
- package/dist/adapters/BrightlineAnalyticsAdapter.js +26 -0
- package/dist/adapters/BrightlineAnalyticsAdapter.js.map +1 -0
- package/dist/components/GTMScript.d.ts +5 -0
- package/dist/components/GTMScript.d.ts.map +1 -0
- package/dist/components/GTMScript.js +37 -0
- package/dist/components/GTMScript.js.map +1 -0
- package/dist/components/NavigationEvents.d.ts +5 -0
- package/dist/components/NavigationEvents.d.ts.map +1 -0
- package/dist/components/NavigationEvents.js +28 -0
- package/dist/components/NavigationEvents.js.map +1 -0
- package/dist/components/PrivacyFooterLinks.d.ts +2 -0
- package/dist/components/PrivacyFooterLinks.d.ts.map +1 -0
- package/dist/components/PrivacyFooterLinks.js +26 -0
- package/dist/components/PrivacyFooterLinks.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/consent/index.d.ts +4 -0
- package/dist/consent/index.d.ts.map +1 -0
- package/dist/consent/index.js +2 -0
- package/dist/consent/index.js.map +1 -0
- package/dist/consent/oursPrivacy.d.ts +10 -0
- package/dist/consent/oursPrivacy.d.ts.map +1 -0
- package/dist/consent/oursPrivacy.js +121 -0
- package/dist/consent/oursPrivacy.js.map +1 -0
- package/dist/consent/types.d.ts +21 -0
- package/dist/consent/types.d.ts.map +1 -0
- package/dist/consent/types.js +2 -0
- package/dist/consent/types.js.map +1 -0
- package/dist/context.d.ts +8 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +11 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +3 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +5 -0
- package/dist/init.js.map +1 -0
- package/dist/tracking/analytics.d.ts +9 -0
- package/dist/tracking/analytics.d.ts.map +1 -0
- package/dist/tracking/analytics.js +36 -0
- package/dist/tracking/analytics.js.map +1 -0
- package/dist/tracking/fbcTracking.d.ts +3 -0
- package/dist/tracking/fbcTracking.d.ts.map +1 -0
- package/dist/tracking/fbcTracking.js +38 -0
- package/dist/tracking/fbcTracking.js.map +1 -0
- package/dist/tracking/gtm.d.ts +13 -0
- package/dist/tracking/gtm.d.ts.map +1 -0
- package/dist/tracking/gtm.js +53 -0
- package/dist/tracking/gtm.js.map +1 -0
- package/dist/tracking/index.d.ts +6 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/index.js +4 -0
- package/dist/tracking/index.js.map +1 -0
- package/dist/tracking/landingPageHistory.d.ts +19 -0
- package/dist/tracking/landingPageHistory.d.ts.map +1 -0
- package/dist/tracking/landingPageHistory.js +123 -0
- package/dist/tracking/landingPageHistory.js.map +1 -0
- package/dist/tracking/landingPageProperties.d.ts +10 -0
- package/dist/tracking/landingPageProperties.d.ts.map +1 -0
- package/dist/tracking/landingPageProperties.js +23 -0
- package/dist/tracking/landingPageProperties.js.map +1 -0
- package/dist/tracking/oursPrivacySdk.d.ts +7 -0
- package/dist/tracking/oursPrivacySdk.d.ts.map +1 -0
- package/dist/tracking/oursPrivacySdk.js +105 -0
- package/dist/tracking/oursPrivacySdk.js.map +1 -0
- package/dist/tracking/segment.d.ts +8 -0
- package/dist/tracking/segment.d.ts.map +1 -0
- package/dist/tracking/segment.js +163 -0
- package/dist/tracking/segment.js.map +1 -0
- package/package.json +7 -6
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const FBC_SESSION_KEY = 'fbc_value';
|
|
2
|
+
export function getFbcValue() {
|
|
3
|
+
if (typeof window === 'undefined') {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
const cachedFbc = sessionStorage.getItem(FBC_SESSION_KEY);
|
|
8
|
+
if (cachedFbc) {
|
|
9
|
+
return cachedFbc;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
}
|
|
14
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
15
|
+
const fbclid = urlParams.get('fbclid');
|
|
16
|
+
if (!fbclid) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const timestamp = Date.now();
|
|
20
|
+
const fbc = `fb.1.${timestamp}.${fbclid}`;
|
|
21
|
+
try {
|
|
22
|
+
sessionStorage.setItem(FBC_SESSION_KEY, fbc);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
}
|
|
26
|
+
return fbc;
|
|
27
|
+
}
|
|
28
|
+
export function clearFbcCache() {
|
|
29
|
+
if (typeof window === 'undefined') {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
sessionStorage.removeItem(FBC_SESSION_KEY);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=fbcTracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fbcTracking.js","sourceRoot":"","sources":["../../src/tracking/fbcTracking.ts"],"names":[],"mappings":"AAUA,MAAM,eAAe,GAAG,WAAW,CAAC;AAQpC,MAAM,UAAU,WAAW;IACzB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,QAAQ,SAAS,IAAI,MAAM,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAMD,MAAM,UAAU,aAAa;IAC3B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface FormSubmitGtmData {
|
|
2
|
+
formName: string;
|
|
3
|
+
data: Record<string, unknown>;
|
|
4
|
+
trackingEventName?: string | null;
|
|
5
|
+
conversionId?: string | null;
|
|
6
|
+
conversionLabel?: string | null;
|
|
7
|
+
sectionLabel?: string | null;
|
|
8
|
+
optIn?: boolean | null;
|
|
9
|
+
partial?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function pushFormSubmitToDataLayer({ formName, data, trackingEventName, conversionId, conversionLabel, sectionLabel, optIn, partial, }: FormSubmitGtmData): void;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=gtm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gtm.d.ts","sourceRoot":"","sources":["../../src/tracking/gtm.ts"],"names":[],"mappings":"AAwCA,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,IAAI,EACJ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,KAAK,EACL,OAAe,GAChB,EAAE,iBAAiB,GAAG,IAAI,CAiC1B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { isCategoryAccepted } from '../consent';
|
|
2
|
+
import { getFbcValue } from './fbcTracking';
|
|
3
|
+
function createFormDataHash(formName, data, conversionId, conversionLabel) {
|
|
4
|
+
const sortedData = Object.keys(data)
|
|
5
|
+
.sort()
|
|
6
|
+
.reduce((result, key) => {
|
|
7
|
+
result[key] = data[key];
|
|
8
|
+
return result;
|
|
9
|
+
}, {});
|
|
10
|
+
const hashInput = JSON.stringify({
|
|
11
|
+
formName,
|
|
12
|
+
data: sortedData,
|
|
13
|
+
conversionId: conversionId || '',
|
|
14
|
+
conversionLabel: conversionLabel || '',
|
|
15
|
+
});
|
|
16
|
+
let hash = 5381;
|
|
17
|
+
for (let i = 0; i < hashInput.length; i++) {
|
|
18
|
+
hash = (hash * 33) ^ hashInput.charCodeAt(i);
|
|
19
|
+
}
|
|
20
|
+
return Math.abs(hash).toString(36);
|
|
21
|
+
}
|
|
22
|
+
export function pushFormSubmitToDataLayer({ formName, data, trackingEventName, conversionId, conversionLabel, sectionLabel, optIn, partial = false, }) {
|
|
23
|
+
if (typeof window === 'undefined' || !window.dataLayer || !isCategoryAccepted('analytics')) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const transactionId = createFormDataHash(formName, data, conversionId, conversionLabel);
|
|
27
|
+
const fbclid = getFbcValue();
|
|
28
|
+
window.dataLayer.push({
|
|
29
|
+
event: 'form_submit',
|
|
30
|
+
transaction_id: transactionId,
|
|
31
|
+
form_name: formName,
|
|
32
|
+
tracking_event_name: trackingEventName || '',
|
|
33
|
+
conversion_id: conversionId || '',
|
|
34
|
+
conversion_label: conversionLabel || '',
|
|
35
|
+
section_label: sectionLabel || undefined,
|
|
36
|
+
opt_in: optIn ?? false,
|
|
37
|
+
partial,
|
|
38
|
+
fbclid: fbclid ?? undefined,
|
|
39
|
+
});
|
|
40
|
+
window.dataLayer.push({
|
|
41
|
+
event: 'clear_data_layer',
|
|
42
|
+
transaction_id: '',
|
|
43
|
+
form_name: undefined,
|
|
44
|
+
tracking_event_name: '',
|
|
45
|
+
conversion_id: '',
|
|
46
|
+
conversion_label: '',
|
|
47
|
+
section_label: undefined,
|
|
48
|
+
opt_in: undefined,
|
|
49
|
+
partial: undefined,
|
|
50
|
+
fbclid: undefined,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=gtm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gtm.js","sourceRoot":"","sources":["../../src/tracking/gtm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,SAAS,kBAAkB,CACzB,QAAgB,EAChB,IAA6B,EAC7B,YAA4B,EAC5B,eAA+B;IAE/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACjC,IAAI,EAAE;SACN,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAA6B,CAC9B,CAAC;IAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,QAAQ;QACR,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,YAAY,IAAI,EAAE;QAChC,eAAe,EAAE,eAAe,IAAI,EAAE;KACvC,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAgBD,MAAM,UAAU,yBAAyB,CAAC,EACxC,QAAQ,EACR,IAAI,EACJ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,KAAK,EACL,OAAO,GAAG,KAAK,GACG;IAClB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAE7B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QACpB,KAAK,EAAE,aAAa;QACpB,cAAc,EAAE,aAAa;QAC7B,SAAS,EAAE,QAAQ;QACnB,mBAAmB,EAAE,iBAAiB,IAAI,EAAE;QAC5C,aAAa,EAAE,YAAY,IAAI,EAAE;QACjC,gBAAgB,EAAE,eAAe,IAAI,EAAE;QACvC,aAAa,EAAE,YAAY,IAAI,SAAS;QACxC,MAAM,EAAE,KAAK,IAAI,KAAK;QACtB,OAAO;QACP,MAAM,EAAE,MAAM,IAAI,SAAS;KAC5B,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QACpB,KAAK,EAAE,kBAAkB;QACzB,cAAc,EAAE,EAAE;QAClB,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,EAAE;QACvB,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,EAAE;QACpB,aAAa,EAAE,SAAS;QACxB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { analyticsButtonClick, analyticsFormSubmit, analyticsPageView, analyticsTrack, analyticsTrackingEventName, buildLandingPageProperties, } from './analytics';
|
|
2
|
+
export { clearFbcCache, getFbcValue } from './fbcTracking';
|
|
3
|
+
export type { LandingPageInformation } from './landingPageHistory';
|
|
4
|
+
export { cleanupFirstLp, recordLandingPageIfRequired, tryGetLandingPageInformation, useAugmentedHref, useLandingPageInformationToBuildSignupUrl, } from './landingPageHistory';
|
|
5
|
+
export type { LandingPageProperties } from './landingPageProperties';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tracking/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,yCAAyC,GAC1C,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { analyticsButtonClick, analyticsFormSubmit, analyticsPageView, analyticsTrack, analyticsTrackingEventName, buildLandingPageProperties, } from './analytics';
|
|
2
|
+
export { clearFbcCache, getFbcValue } from './fbcTracking';
|
|
3
|
+
export { cleanupFirstLp, recordLandingPageIfRequired, tryGetLandingPageInformation, useAugmentedHref, useLandingPageInformationToBuildSignupUrl, } from './landingPageHistory';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracking/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,yCAAyC,GAC1C,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface LocationData {
|
|
2
|
+
pathname: string;
|
|
3
|
+
search: string;
|
|
4
|
+
href: string;
|
|
5
|
+
hash: string;
|
|
6
|
+
origin: string;
|
|
7
|
+
}
|
|
8
|
+
export interface LandingPageInformation {
|
|
9
|
+
referrer: string;
|
|
10
|
+
location: LocationData;
|
|
11
|
+
lang: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function recordLandingPageIfRequired(lang: string): Promise<void>;
|
|
14
|
+
export declare function tryGetLandingPageInformation(): LandingPageInformation | undefined;
|
|
15
|
+
export declare function useAugmentedHref(href: string): string;
|
|
16
|
+
export declare function useLandingPageInformationToBuildSignupUrl(isEnterprisePage: boolean | null, currentPath: string | undefined, lang: string | undefined): string;
|
|
17
|
+
export declare function cleanupFirstLp(firstLp: string | null | undefined): string | null | undefined;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=landingPageHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landingPageHistory.d.ts","sourceRoot":"","sources":["../../src/tracking/landingPageHistory.ts"],"names":[],"mappings":"AAQA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAKD,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B7E;AAED,wBAAgB,4BAA4B,IAAI,sBAAsB,GAAG,SAAS,CAajF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBrD;AA0DD,wBAAgB,yCAAyC,CACvD,gBAAgB,EAAE,OAAO,GAAG,IAAI,EAChC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,MAAM,CAeR;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAK5F"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { useBrightlineConfig } from '../context';
|
|
4
|
+
const LandingPageInformationKey = 'landing-page';
|
|
5
|
+
export async function recordLandingPageIfRequired(lang) {
|
|
6
|
+
if (typeof window === 'undefined')
|
|
7
|
+
return;
|
|
8
|
+
const storage = window.sessionStorage;
|
|
9
|
+
if (!storage)
|
|
10
|
+
return;
|
|
11
|
+
const current = storage.getItem(LandingPageInformationKey);
|
|
12
|
+
const currentInformation = current
|
|
13
|
+
? JSON.parse(current)
|
|
14
|
+
: undefined;
|
|
15
|
+
const locationData = {
|
|
16
|
+
pathname: window.location.pathname,
|
|
17
|
+
search: window.location.search,
|
|
18
|
+
href: window.location.href,
|
|
19
|
+
hash: window.location.hash,
|
|
20
|
+
origin: window.location.origin,
|
|
21
|
+
};
|
|
22
|
+
const information = {
|
|
23
|
+
referrer: currentInformation?.referrer ?? document.referrer,
|
|
24
|
+
location: currentInformation?.location ?? locationData,
|
|
25
|
+
lang,
|
|
26
|
+
};
|
|
27
|
+
storage.setItem(LandingPageInformationKey, JSON.stringify(information));
|
|
28
|
+
}
|
|
29
|
+
export function tryGetLandingPageInformation() {
|
|
30
|
+
if (typeof window === 'undefined')
|
|
31
|
+
return undefined;
|
|
32
|
+
const storage = window.sessionStorage;
|
|
33
|
+
if (!storage)
|
|
34
|
+
return undefined;
|
|
35
|
+
const current = storage.getItem(LandingPageInformationKey);
|
|
36
|
+
if (!current)
|
|
37
|
+
return undefined;
|
|
38
|
+
const information = JSON.parse(current);
|
|
39
|
+
if (!information.location)
|
|
40
|
+
return undefined;
|
|
41
|
+
return information;
|
|
42
|
+
}
|
|
43
|
+
export function useAugmentedHref(href) {
|
|
44
|
+
const [augmentedHref, setAugmentedHref] = useState(href);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
const anonymous_id = window.localStorage.getItem('ajs_anonymous_id');
|
|
47
|
+
const ours_user_id = window.localStorage.getItem('ours_device_id');
|
|
48
|
+
if (anonymous_id || ours_user_id) {
|
|
49
|
+
const url = new URL(href);
|
|
50
|
+
if (anonymous_id) {
|
|
51
|
+
url.searchParams.set('anonymous_id', anonymous_id.replaceAll('"', ''));
|
|
52
|
+
}
|
|
53
|
+
if (ours_user_id) {
|
|
54
|
+
url.searchParams.set('ours_user_id', ours_user_id.replaceAll('"', ''));
|
|
55
|
+
}
|
|
56
|
+
setAugmentedHref(url.href);
|
|
57
|
+
}
|
|
58
|
+
}, [href]);
|
|
59
|
+
return augmentedHref;
|
|
60
|
+
}
|
|
61
|
+
function buildUrl(config, isEnterprisePage, currentPath, lang, information) {
|
|
62
|
+
const signUpUrl = config?.signUpUrl ?? 'https://app.hellobrightline.com/sign_up';
|
|
63
|
+
const isKids = config?.site === 'kids';
|
|
64
|
+
const url = new URL(signUpUrl);
|
|
65
|
+
const search = information?.location.search;
|
|
66
|
+
if (search) {
|
|
67
|
+
url.search = search;
|
|
68
|
+
}
|
|
69
|
+
if (lang) {
|
|
70
|
+
url.searchParams.set('locale', lang);
|
|
71
|
+
}
|
|
72
|
+
if (typeof window !== 'undefined') {
|
|
73
|
+
const anonymous_id = window.localStorage.getItem('ajs_anonymous_id');
|
|
74
|
+
if (anonymous_id) {
|
|
75
|
+
url.searchParams.set('anonymous_id', anonymous_id.replaceAll('"', ''));
|
|
76
|
+
}
|
|
77
|
+
const ours_user_id = window.localStorage.getItem('ours_device_id');
|
|
78
|
+
if (ours_user_id) {
|
|
79
|
+
url.searchParams.set('ours_user_id', ours_user_id.replaceAll('"', ''));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (!isKids && isEnterprisePage && !url.searchParams.has('enterprise')) {
|
|
83
|
+
url.searchParams.set('enterprise', 'True');
|
|
84
|
+
}
|
|
85
|
+
if (isKids) {
|
|
86
|
+
url.searchParams.set('first_lp', 'brightlifekids');
|
|
87
|
+
}
|
|
88
|
+
else if (currentPath?.includes('/brightlifekids')) {
|
|
89
|
+
const firstLp = cleanupFirstLp(currentPath);
|
|
90
|
+
if (firstLp) {
|
|
91
|
+
url.searchParams.set('first_lp', firstLp);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const pathname = information?.location.pathname;
|
|
96
|
+
if (pathname) {
|
|
97
|
+
const firstLp = cleanupFirstLp(pathname);
|
|
98
|
+
if (firstLp) {
|
|
99
|
+
url.searchParams.set('first_lp', firstLp);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return url.href;
|
|
104
|
+
}
|
|
105
|
+
export function useLandingPageInformationToBuildSignupUrl(isEnterprisePage, currentPath, lang) {
|
|
106
|
+
const config = useBrightlineConfig();
|
|
107
|
+
const [fullHref, setFullHref] = useState(() => buildUrl(config, isEnterprisePage, currentPath, lang));
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
const landingPageInformation = tryGetLandingPageInformation();
|
|
110
|
+
if (landingPageInformation) {
|
|
111
|
+
const href = buildUrl(config, isEnterprisePage, currentPath, lang, landingPageInformation);
|
|
112
|
+
setFullHref(href);
|
|
113
|
+
}
|
|
114
|
+
}, [config, isEnterprisePage, currentPath, lang]);
|
|
115
|
+
return fullHref;
|
|
116
|
+
}
|
|
117
|
+
export function cleanupFirstLp(firstLp) {
|
|
118
|
+
if (firstLp?.endsWith('/')) {
|
|
119
|
+
return firstLp.substring(0, firstLp.length - 1);
|
|
120
|
+
}
|
|
121
|
+
return firstLp;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=landingPageHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landingPageHistory.js","sourceRoot":"","sources":["../../src/tracking/landingPageHistory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface LandingPageProperties {
|
|
2
|
+
first_lp?: string;
|
|
3
|
+
first_referrer?: string;
|
|
4
|
+
first_parameters?: string;
|
|
5
|
+
lang?: string;
|
|
6
|
+
fbclid?: string;
|
|
7
|
+
[key: string]: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function buildLandingPageProperties(): LandingPageProperties | undefined;
|
|
10
|
+
//# sourceMappingURL=landingPageProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landingPageProperties.d.ts","sourceRoot":"","sources":["../../src/tracking/landingPageProperties.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAKD,wBAAgB,0BAA0B,IAAI,qBAAqB,GAAG,SAAS,CAwB9E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { getFbcValue } from './fbcTracking';
|
|
2
|
+
import { cleanupFirstLp, tryGetLandingPageInformation } from './landingPageHistory';
|
|
3
|
+
export function buildLandingPageProperties() {
|
|
4
|
+
const information = tryGetLandingPageInformation();
|
|
5
|
+
if (!information) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const url = new URL(information.location.href);
|
|
9
|
+
const queryParams = {};
|
|
10
|
+
url.searchParams.forEach((value, key) => {
|
|
11
|
+
queryParams[key] = value;
|
|
12
|
+
});
|
|
13
|
+
const fbclid = getFbcValue();
|
|
14
|
+
return {
|
|
15
|
+
first_lp: cleanupFirstLp(information.location.pathname) ?? undefined,
|
|
16
|
+
first_referrer: information.referrer,
|
|
17
|
+
first_parameters: url.search,
|
|
18
|
+
lang: information.lang,
|
|
19
|
+
...queryParams,
|
|
20
|
+
fbclid: fbclid ?? undefined,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=landingPageProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landingPageProperties.js","sourceRoot":"","sources":["../../src/tracking/landingPageProperties.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAcpF,MAAM,UAAU,0BAA0B;IACxC,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAE7B,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS;QACpE,cAAc,EAAE,WAAW,CAAC,QAAQ;QACpC,gBAAgB,EAAE,GAAG,CAAC,MAAM;QAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,GAAG,WAAW;QACd,MAAM,EAAE,MAAM,IAAI,SAAS;KAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EventProperties } from '@segment/analytics-next';
|
|
2
|
+
import type { BrightlineSharedConfig } from '../config';
|
|
3
|
+
export declare function initializeOursPrivacy(config: BrightlineSharedConfig): Promise<boolean>;
|
|
4
|
+
export declare function reportFormSubmitToOurPrivacy<T extends EventProperties>(formName: string, sectionLabel: string | null | undefined, optIn: boolean | null, trackingEventName: string | null | undefined, data: T, partial?: boolean, conversionId?: string | null, conversionLabel?: string | null): Promise<void>;
|
|
5
|
+
export declare function reportButtonClickToOurPrivacy<T extends EventProperties>(sectionLabel: string | null | undefined, trackingEventName: string | null | undefined, data?: T, conversionId?: string | null, conversionLabel?: string | null): Promise<void>;
|
|
6
|
+
export declare function trackWithOurPrivacy<T extends EventProperties>(eventName: string, data: T): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=oursPrivacySdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oursPrivacySdk.d.ts","sourceRoot":"","sources":["../../src/tracking/oursPrivacySdk.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUxD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAoC5F;AAKD,wBAAsB,4BAA4B,CAAC,CAAC,SAAS,eAAe,EAC1E,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,KAAK,EAAE,OAAO,GAAG,IAAI,EACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,OAAO,EACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAKD,wBAAsB,6BAA6B,CAAC,CAAC,SAAS,eAAe,EAC3E,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,CAAC,EACR,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAKD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,eAAe,EACjE,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import ours from '@oursprivacy/cdp-sdk';
|
|
2
|
+
import { waitForOursCMP } from '../consent';
|
|
3
|
+
import { buildLandingPageProperties } from './landingPageProperties';
|
|
4
|
+
let isInitialized = false;
|
|
5
|
+
let initPromise = null;
|
|
6
|
+
export async function initializeOursPrivacy(config) {
|
|
7
|
+
if (initPromise) {
|
|
8
|
+
return initPromise;
|
|
9
|
+
}
|
|
10
|
+
initPromise = (async () => {
|
|
11
|
+
if (typeof window === 'undefined') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const writeKey = config.oursPrivacyKey;
|
|
15
|
+
const domains = config.oursPrivacyDomains;
|
|
16
|
+
if (!writeKey || !domains) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
await waitForOursCMP();
|
|
20
|
+
try {
|
|
21
|
+
ours.init(writeKey, {
|
|
22
|
+
custom_domain: domains.custom_domain,
|
|
23
|
+
force_ipv4: true,
|
|
24
|
+
custom_domain_ipv4: domains.custom_domain_ipv4,
|
|
25
|
+
track_web_events: true,
|
|
26
|
+
enhanced_web_events: true,
|
|
27
|
+
});
|
|
28
|
+
isInitialized = true;
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
console.error('Failed to initialize OurPrivacy:', error);
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
})();
|
|
36
|
+
return initPromise;
|
|
37
|
+
}
|
|
38
|
+
export async function reportFormSubmitToOurPrivacy(formName, sectionLabel, optIn, trackingEventName, data, partial, conversionId, conversionLabel) {
|
|
39
|
+
if (!isInitialized) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const realData = sectionLabel
|
|
44
|
+
? {
|
|
45
|
+
...data,
|
|
46
|
+
sectionLabel,
|
|
47
|
+
formName,
|
|
48
|
+
partial: partial ?? false,
|
|
49
|
+
optIn: optIn ?? false,
|
|
50
|
+
}
|
|
51
|
+
: data;
|
|
52
|
+
const properties = {
|
|
53
|
+
...(buildLandingPageProperties() ?? {}),
|
|
54
|
+
trackingEventName: trackingEventName ?? undefined,
|
|
55
|
+
conversionId: conversionId ?? undefined,
|
|
56
|
+
conversionLabel: conversionLabel ?? undefined,
|
|
57
|
+
...realData,
|
|
58
|
+
};
|
|
59
|
+
ours.track('form_submitted', properties);
|
|
60
|
+
if (trackingEventName) {
|
|
61
|
+
ours.track(trackingEventName, properties);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.error('Failed to track form submission with OurPrivacy:', error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export async function reportButtonClickToOurPrivacy(sectionLabel, trackingEventName, data, conversionId, conversionLabel) {
|
|
69
|
+
if (!isInitialized) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const properties = {
|
|
74
|
+
...(buildLandingPageProperties() ?? {}),
|
|
75
|
+
trackingEventName: trackingEventName ?? undefined,
|
|
76
|
+
sectionLabel: sectionLabel ?? undefined,
|
|
77
|
+
conversionId: conversionId ?? undefined,
|
|
78
|
+
conversionLabel: conversionLabel ?? undefined,
|
|
79
|
+
...data,
|
|
80
|
+
};
|
|
81
|
+
ours.track('button_clicked', properties);
|
|
82
|
+
if (trackingEventName) {
|
|
83
|
+
ours.track(trackingEventName, properties);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error('Failed to track button click with OurPrivacy:', error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export async function trackWithOurPrivacy(eventName, data) {
|
|
91
|
+
if (!isInitialized) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const properties = {
|
|
96
|
+
...(buildLandingPageProperties() ?? {}),
|
|
97
|
+
...data,
|
|
98
|
+
};
|
|
99
|
+
ours.track(eventName, properties);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error(`Failed to track event "${eventName}" with OurPrivacy:`, error);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=oursPrivacySdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oursPrivacySdk.js","sourceRoot":"","sources":["../../src/tracking/oursPrivacySdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EventProperties } from '@segment/analytics-next';
|
|
2
|
+
import type { BrightlineSharedConfig } from '../config';
|
|
3
|
+
export declare function SegmentPageView(config: BrightlineSharedConfig | undefined, path: string): Promise<void>;
|
|
4
|
+
export declare function reportFormSubmit<T extends EventProperties>(config: BrightlineSharedConfig | undefined, formName: string, sectionLabel: string | null | undefined, optIn: boolean | null, trackingEventName: string | null | undefined, data: T, partial?: boolean, conversionId?: string | null, conversionLabel?: string | null): Promise<void>;
|
|
5
|
+
export declare function reportTrackingEventName<T extends EventProperties>(config: BrightlineSharedConfig | undefined, sectionLabel: string | null | undefined, trackingEventName: string | null | undefined, data?: T): Promise<void>;
|
|
6
|
+
export declare function reportButtonClick<T extends EventProperties>(config: BrightlineSharedConfig | undefined, sectionLabel: string | null | undefined, trackingEventName: string | null | undefined, data?: T, conversionId?: string | null, conversionLabel?: string | null): Promise<void>;
|
|
7
|
+
export declare function trackWithSegment<T extends EventProperties>(config: BrightlineSharedConfig | undefined, eventName: string, data: T): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=segment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../src/tracking/segment.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAyDxD,wBAAsB,eAAe,CACnC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAC9D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,KAAK,EAAE,OAAO,GAAG,IAAI,EACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,OAAO,EACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,eAAe,EACrE,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,CAAC,GACP,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAC/D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,CAAC,EACR,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAC9D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { AnalyticsBrowser } from '@segment/analytics-next';
|
|
2
|
+
import { isCategoryAccepted, onConsentReady } from '../consent';
|
|
3
|
+
import { getFbcValue } from './fbcTracking';
|
|
4
|
+
import { pushFormSubmitToDataLayer } from './gtm';
|
|
5
|
+
import { buildLandingPageProperties } from './landingPageProperties';
|
|
6
|
+
let analytics = null;
|
|
7
|
+
let consentListenerAttached = false;
|
|
8
|
+
function getWriteKey(config) {
|
|
9
|
+
if (typeof window === 'undefined')
|
|
10
|
+
return undefined;
|
|
11
|
+
return config?.segmentWriteKey;
|
|
12
|
+
}
|
|
13
|
+
function createAnalytics(config) {
|
|
14
|
+
if (typeof window === 'undefined') {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
if (!isCategoryAccepted('analytics')) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const writeKey = getWriteKey(config);
|
|
21
|
+
if (!writeKey) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (window.dataLayer) {
|
|
25
|
+
window.dataLayer.push({
|
|
26
|
+
event: 'clear_data_layer',
|
|
27
|
+
transaction_id: '',
|
|
28
|
+
tracking_event_name: '',
|
|
29
|
+
conversion_id: '',
|
|
30
|
+
conversion_label: '',
|
|
31
|
+
fbclid: '',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return AnalyticsBrowser.load({ writeKey }, { initialPageview: false });
|
|
35
|
+
}
|
|
36
|
+
function ensureConsentListener(config) {
|
|
37
|
+
if (typeof window === 'undefined' || consentListenerAttached) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
consentListenerAttached = true;
|
|
41
|
+
onConsentReady((categories) => {
|
|
42
|
+
if (categories.includes('analytics') && !analytics) {
|
|
43
|
+
analytics = createAnalytics(config);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export async function SegmentPageView(config, path) {
|
|
48
|
+
ensureConsentListener(config);
|
|
49
|
+
if (!analytics) {
|
|
50
|
+
analytics = createAnalytics(config);
|
|
51
|
+
}
|
|
52
|
+
if (analytics) {
|
|
53
|
+
const properties = {
|
|
54
|
+
...(buildLandingPageProperties() ?? {}),
|
|
55
|
+
path,
|
|
56
|
+
url: typeof window !== 'undefined' ? window.location.href : '',
|
|
57
|
+
};
|
|
58
|
+
await analytics.page(properties);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export async function reportFormSubmit(config, formName, sectionLabel, optIn, trackingEventName, data, partial, conversionId, conversionLabel) {
|
|
62
|
+
ensureConsentListener(config);
|
|
63
|
+
if (!analytics) {
|
|
64
|
+
analytics = createAnalytics(config);
|
|
65
|
+
}
|
|
66
|
+
if (analytics) {
|
|
67
|
+
const realData = sectionLabel
|
|
68
|
+
? {
|
|
69
|
+
...data,
|
|
70
|
+
sectionLabel,
|
|
71
|
+
formName,
|
|
72
|
+
partial: partial ?? false,
|
|
73
|
+
optIn: optIn ?? false,
|
|
74
|
+
}
|
|
75
|
+
: data;
|
|
76
|
+
const properties = {
|
|
77
|
+
...(buildLandingPageProperties() ?? {}),
|
|
78
|
+
trackingEventName: trackingEventName ?? undefined,
|
|
79
|
+
conversionId: conversionId ?? undefined,
|
|
80
|
+
conversionLabel: conversionLabel ?? undefined,
|
|
81
|
+
...realData,
|
|
82
|
+
};
|
|
83
|
+
await analytics.track('FormSubmit', properties);
|
|
84
|
+
}
|
|
85
|
+
pushFormSubmitToDataLayer({
|
|
86
|
+
formName,
|
|
87
|
+
data,
|
|
88
|
+
trackingEventName,
|
|
89
|
+
conversionId,
|
|
90
|
+
conversionLabel,
|
|
91
|
+
sectionLabel,
|
|
92
|
+
optIn,
|
|
93
|
+
partial,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
export async function reportTrackingEventName(config, sectionLabel, trackingEventName, data) {
|
|
97
|
+
ensureConsentListener(config);
|
|
98
|
+
if (!analytics) {
|
|
99
|
+
analytics = createAnalytics(config);
|
|
100
|
+
}
|
|
101
|
+
if (analytics && trackingEventName) {
|
|
102
|
+
const properties = {
|
|
103
|
+
...(buildLandingPageProperties() ?? {}),
|
|
104
|
+
trackingEventName,
|
|
105
|
+
sectionLabel: sectionLabel ?? undefined,
|
|
106
|
+
...data,
|
|
107
|
+
};
|
|
108
|
+
await analytics.track(trackingEventName, properties);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export async function reportButtonClick(config, sectionLabel, trackingEventName, data, conversionId, conversionLabel) {
|
|
112
|
+
ensureConsentListener(config);
|
|
113
|
+
if (!analytics) {
|
|
114
|
+
analytics = createAnalytics(config);
|
|
115
|
+
}
|
|
116
|
+
if (analytics) {
|
|
117
|
+
const properties = {
|
|
118
|
+
...(buildLandingPageProperties() ?? {}),
|
|
119
|
+
trackingEventName: trackingEventName ?? undefined,
|
|
120
|
+
sectionLabel: sectionLabel ?? undefined,
|
|
121
|
+
conversionId: conversionId ?? undefined,
|
|
122
|
+
conversionLabel: conversionLabel ?? undefined,
|
|
123
|
+
...data,
|
|
124
|
+
};
|
|
125
|
+
if (trackingEventName) {
|
|
126
|
+
await reportTrackingEventName(config, sectionLabel, trackingEventName, data);
|
|
127
|
+
}
|
|
128
|
+
await analytics.track('ButtonClick', properties);
|
|
129
|
+
}
|
|
130
|
+
if (typeof window !== 'undefined' && window.dataLayer && isCategoryAccepted('analytics')) {
|
|
131
|
+
const fbclid = getFbcValue();
|
|
132
|
+
window.dataLayer.push({
|
|
133
|
+
event: 'button_click',
|
|
134
|
+
tracking_event_name: trackingEventName || '',
|
|
135
|
+
conversion_id: conversionId || '',
|
|
136
|
+
conversion_label: conversionLabel || '',
|
|
137
|
+
section_label: sectionLabel || undefined,
|
|
138
|
+
fbclid: fbclid ?? undefined,
|
|
139
|
+
});
|
|
140
|
+
window.dataLayer.push({
|
|
141
|
+
event: 'clear_data_layer',
|
|
142
|
+
tracking_event_name: '',
|
|
143
|
+
conversion_id: '',
|
|
144
|
+
conversion_label: '',
|
|
145
|
+
section_label: undefined,
|
|
146
|
+
fbclid: undefined,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
export async function trackWithSegment(config, eventName, data) {
|
|
151
|
+
ensureConsentListener(config);
|
|
152
|
+
if (!analytics) {
|
|
153
|
+
analytics = createAnalytics(config);
|
|
154
|
+
}
|
|
155
|
+
if (analytics) {
|
|
156
|
+
const properties = {
|
|
157
|
+
...(buildLandingPageProperties() ?? {}),
|
|
158
|
+
...data,
|
|
159
|
+
};
|
|
160
|
+
await analytics.track(eventName, properties);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=segment.js.map
|