@adv-re/segment-wrapper 4.36.2 → 5.0.0-beta.0

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/index.mjs CHANGED
@@ -98,237 +98,6 @@ var getAdobeMCVisitorID = async () => {
98
98
  return getConfig("importAdobeVisitorId") === true ? importVisitorApiAndGetAdobeMCVisitorID() : getAdobeMarketingCloudVisitorIdFromWindow();
99
99
  };
100
100
 
101
- // src/events.ts
102
- var EVENTS = {
103
- GA4_INIT_EVENT_SENT: "ga4InitEventSent"
104
- };
105
-
106
- // src/middlewares/source/pageReferrer.ts
107
- var referrerState = {
108
- spaReferrer: "",
109
- referrer: ""
110
- };
111
- var utils = {
112
- /**
113
- * @returns The referrer of the document
114
- */
115
- getDocumentReferrer: () => document.referrer,
116
- /**
117
- * @returns The actual location with protocol, domain and pathname
118
- */
119
- getActualLocation: () => {
120
- const { origin, pathname } = window.location;
121
- return `${origin}${pathname}`;
122
- },
123
- /**
124
- * @returns The actual query string
125
- */
126
- getActualQueryString: () => {
127
- const { search } = window.location;
128
- return search;
129
- }
130
- };
131
- var getPageReferrer = ({ isPageTrack = false } = {}) => {
132
- const { referrer, spaReferrer } = referrerState;
133
- const referrerToUse = isPageTrack ? referrer : spaReferrer;
134
- return referrerToUse || utils.getDocumentReferrer();
135
- };
136
- var updatePageReferrer = () => {
137
- referrerState.spaReferrer = getPageReferrer({ isPageTrack: true });
138
- referrerState.referrer = utils.getActualLocation();
139
- };
140
- var pageReferrer = ({ payload, next }) => {
141
- const {
142
- obj: { context }
143
- } = payload;
144
- const { isPageTrack } = context;
145
- const referrer = getPageReferrer({ isPageTrack });
146
- payload.obj.context = {
147
- ...context,
148
- page: {
149
- ...context.page,
150
- referrer
151
- }
152
- };
153
- if (isPageTrack) {
154
- updatePageReferrer();
155
- }
156
- next(payload);
157
- };
158
-
159
- // src/repositories/googleRepository.ts
160
- var FIELDS = {
161
- clientId: "client_id",
162
- sessionId: "session_id"
163
- };
164
- var DEFAULT_DATA_LAYER_NAME = "dataLayer";
165
- var CONSENT_STATES = {
166
- granted: "granted",
167
- denied: "denied"
168
- };
169
- var CONSENT_STATE_GRANTED_VALUE = 1;
170
- var CONSENT_STATE_DENIED_VALUE = 2;
171
- var STC = {
172
- QUERY: "stc",
173
- SPLIT_SYMBOL: "-",
174
- CAMPAIGN_SPLIT_SYMBOL: ":"
175
- };
176
- var UTM_CAMPAIGN = "utm_campaign";
177
- var UTM_MEDIUM = "utm_medium";
178
- var UTM_SOURCE = "utm_source";
179
- var UTM_CONTENT = "utm_content";
180
- var UTM_CAMPAIGN_ID = "utm_id";
181
- var UTM_TERM = "utm_term";
182
- var STC_MEDIUM_TRANSFORMATIONS = {
183
- aff: "affiliate",
184
- dis: "display",
185
- em: "email",
186
- met: "paid-metasearch",
187
- sem: "paid-search",
188
- rt: "display",
189
- sm: "social-media",
190
- sp: "paid-social",
191
- pn: "push-notification",
192
- cs: "cross-sites"
193
- };
194
- var STC_INVALID_CONTENT = "na";
195
- var DEFAULT_GA_INIT_EVENT = "sui";
196
- var EMPTY_STC = { medium: null, source: null, campaign: null };
197
- var loadScript = async (src) => new Promise(function(resolve, reject) {
198
- const script = document.createElement("script");
199
- script.src = src;
200
- script.onload = () => resolve();
201
- script.onerror = reject;
202
- document.head.appendChild(script);
203
- });
204
- var loadGoogleAnalytics = async () => {
205
- const googleAnalyticsMeasurementId = getConfig("googleAnalyticsMeasurementId");
206
- const dataLayerName = getConfig("googleAnalyticsDataLayer") || DEFAULT_DATA_LAYER_NAME;
207
- if (!googleAnalyticsMeasurementId) return Promise.resolve(false);
208
- const gtagScript = `https://www.googletagmanager.com/gtag/js?id=${googleAnalyticsMeasurementId}&l=${dataLayerName}`;
209
- return loadScript(gtagScript).then(() => true);
210
- };
211
- var triggerGoogleAnalyticsInitEvent = (sessionId) => {
212
- const eventName = getConfig("googleAnalyticsInitEvent") ?? DEFAULT_GA_INIT_EVENT;
213
- const eventPrefix = `ga_event_${eventName}_`;
214
- const eventKey = `${eventPrefix}${sessionId}`;
215
- if (typeof window.gtag === "undefined") return;
216
- if (!localStorage.getItem(eventKey)) {
217
- window.gtag("event", eventName);
218
- console.log(`Sending GA4 event "${eventName}" for the session "${sessionId}"`);
219
- localStorage.setItem(eventKey, "true");
220
- if (typeof window.dispatchEvent === "function") {
221
- const event = new CustomEvent(EVENTS.GA4_INIT_EVENT_SENT, {
222
- detail: { eventName, sessionId }
223
- });
224
- window.dispatchEvent(event);
225
- }
226
- }
227
- Object.keys(localStorage).forEach((key) => {
228
- if (key.startsWith(eventPrefix) && key !== eventKey) {
229
- localStorage.removeItem(key);
230
- }
231
- });
232
- };
233
- var getGoogleField = async (field) => {
234
- const googleAnalyticsMeasurementId = getConfig("googleAnalyticsMeasurementId");
235
- if (!googleAnalyticsMeasurementId) return Promise.resolve(void 0);
236
- return new Promise((resolve) => {
237
- window.gtag?.("get", googleAnalyticsMeasurementId, field, resolve);
238
- });
239
- };
240
- var trackingTagsTypes = {
241
- STC: "stc",
242
- UTM: "utm"
243
- };
244
- var getCampaignDetails = ({ needsTransformation = true } = {}) => {
245
- const { medium, source, campaign, content, term } = readQueryParams();
246
- if (!medium || !source || !campaign) return null;
247
- const [id, name] = campaign.split(STC.CAMPAIGN_SPLIT_SYMBOL);
248
- if (!id && !name) return null;
249
- const needsContent = typeof content !== "undefined" && content !== STC_INVALID_CONTENT;
250
- return {
251
- campaign: {
252
- medium: needsTransformation && STC_MEDIUM_TRANSFORMATIONS[medium] || medium,
253
- ...typeof name !== "undefined" && { id },
254
- name: name ?? id,
255
- source,
256
- ...needsContent && { content },
257
- ...typeof term !== "undefined" && { term }
258
- }
259
- };
260
- };
261
- function readQueryParams() {
262
- const search = utils.getActualQueryString();
263
- const searchParams = new URLSearchParams(search);
264
- return getConfig("trackingTagsType") === trackingTagsTypes.UTM ? readFromUtm(searchParams) : readFromStc(searchParams);
265
- }
266
- function readFromStc(searchParams) {
267
- if (!hasStc(searchParams)) return EMPTY_STC;
268
- const stc = searchParams.get(STC.QUERY);
269
- const [medium, source, campaign, content, term] = stc?.split(STC.SPLIT_SYMBOL) || [];
270
- return { medium, source, campaign, content, term };
271
- }
272
- function hasStc(searchParams) {
273
- return searchParams.has(STC.QUERY);
274
- }
275
- function readFromUtm(searchParams) {
276
- const campaignId = searchParams.get(UTM_CAMPAIGN_ID);
277
- const campaignName = searchParams.get(UTM_CAMPAIGN);
278
- const medium = searchParams.get(UTM_MEDIUM);
279
- const source = searchParams.get(UTM_SOURCE);
280
- const content = searchParams.get(UTM_CONTENT);
281
- const term = searchParams.get(UTM_TERM);
282
- const campaign = campaignId ? `${campaignId}${STC.CAMPAIGN_SPLIT_SYMBOL}${campaignName}` : campaignName;
283
- const missingAnyMandatoryFields = !medium || !source || !campaign;
284
- if (missingAnyMandatoryFields && hasStc(searchParams)) {
285
- return readFromStc(searchParams);
286
- }
287
- return {
288
- campaign,
289
- medium,
290
- source,
291
- content: content ?? void 0,
292
- term: term ?? void 0
293
- };
294
- }
295
- var getGoogleClientId = async () => getGoogleField(FIELDS.clientId);
296
- var getGoogleSessionId = async () => {
297
- const sessionId = await getGoogleField(FIELDS.sessionId);
298
- if (sessionId) {
299
- triggerGoogleAnalyticsInitEvent(sessionId);
300
- }
301
- return sessionId;
302
- };
303
- function getGoogleConsentValue(consentType = "analytics_storage") {
304
- try {
305
- const value = window.google_tag_data?.ics?.getConsentState?.(consentType);
306
- if (value === CONSENT_STATE_GRANTED_VALUE) return CONSENT_STATES.granted;
307
- if (value === CONSENT_STATE_DENIED_VALUE) return CONSENT_STATES.denied;
308
- return void 0;
309
- } catch {
310
- return void 0;
311
- }
312
- }
313
- var getConsentState = () => getGoogleConsentValue() ?? CONSENT_STATES.denied;
314
- var setGoogleUserId = (userId) => {
315
- const googleAnalyticsMeasurementId = getConfig("googleAnalyticsMeasurementId");
316
- if (!googleAnalyticsMeasurementId || !userId) return;
317
- window.gtag?.("set", "user_id", userId);
318
- };
319
- var sendGoogleConsents = (mode = "default", consents) => {
320
- window.gtag?.(
321
- "consent",
322
- mode,
323
- consents || {
324
- analytics_storage: CONSENT_STATES.denied,
325
- ad_user_data: CONSENT_STATES.denied,
326
- ad_personalization: CONSENT_STATES.denied,
327
- ad_storage: CONSENT_STATES.denied
328
- }
329
- );
330
- };
331
-
332
101
  // src/tcf.ts
333
102
  var TCF_COOKIE_KEY = "borosTcf";
334
103
  var TCF_API_VERSION = 2;
@@ -382,17 +151,30 @@ var checkTcfIsAvailable = () => {
382
151
  };
383
152
  var checkHasUserConsentedAnalytics = (userConsents) => NEEDED_PURPOSES.analytics.every((purposeId) => userConsents[`${purposeId}`]);
384
153
  var checkHasUserConsentedAdvertising = (userConsents) => NEEDED_PURPOSES.advertising.every((purposeId) => userConsents[`${purposeId}`]);
385
- var trackTcf = ({ gdprPrivacy }) => segmentWrapper_default.track(
386
- CMP_TRACK_EVENT,
387
- {
388
- ...TCF_TRACK_PROPERTIES,
389
- ...getConfig("tcfTrackDefaultProperties") || {}
390
- },
391
- {
392
- gdpr_privacy: gdprPrivacy.analytics,
393
- gdpr_privacy_advertising: gdprPrivacy.advertising
394
- }
395
- );
154
+ var trackTcf = ({ gdprPrivacy }) => {
155
+ const isAnalyticsAccepted = gdprPrivacy.analytics === USER_GDPR.ACCEPTED;
156
+ const isAdvertisingAccepted = gdprPrivacy.advertising === USER_GDPR.ACCEPTED;
157
+ return segmentWrapper_default.track(
158
+ CMP_TRACK_EVENT,
159
+ {
160
+ ...TCF_TRACK_PROPERTIES,
161
+ ...getConfig("tcfTrackDefaultProperties") || {}
162
+ },
163
+ {
164
+ // Consent Mode properties for Segment → GA4 mapping (v5)
165
+ // These are mapped in Segment Dashboard from context.google_consents.* to GA4 Consent Mode
166
+ google_consents: {
167
+ analytics_storage: isAnalyticsAccepted ? "granted" : "denied",
168
+ ad_storage: isAdvertisingAccepted ? "granted" : "denied",
169
+ ad_user_data: isAdvertisingAccepted ? "granted" : "denied",
170
+ ad_personalization: isAdvertisingAccepted ? "granted" : "denied"
171
+ },
172
+ // Keep gdpr_privacy in context for compatibility with other integrations
173
+ gdpr_privacy: gdprPrivacy.analytics,
174
+ gdpr_privacy_advertising: gdprPrivacy.advertising
175
+ }
176
+ );
177
+ };
396
178
  var getGdprPrivacyValue = () => {
397
179
  const gdprPrivacyValue = gdprState.get();
398
180
  if (gdprPrivacyValue !== void 0) return Promise.resolve(gdprPrivacyValue);
@@ -574,14 +356,10 @@ var getTrackIntegrations = async ({
574
356
  }) => {
575
357
  const isGdprAccepted = checkAnalyticsGdprIsAccepted(gdprPrivacyValue);
576
358
  let marketingCloudVisitorId;
577
- let sessionId;
578
- let clientId;
579
359
  try {
580
360
  if (isGdprAccepted) {
581
361
  marketingCloudVisitorId = await getAdobeMCVisitorID();
582
362
  }
583
- sessionId = await getGoogleSessionId();
584
- clientId = await getGoogleClientId();
585
363
  } catch (error) {
586
364
  console.error(error);
587
365
  }
@@ -589,10 +367,7 @@ var getTrackIntegrations = async ({
589
367
  return {
590
368
  ...restOfIntegrations,
591
369
  "Adobe Analytics": marketingCloudVisitorId ? { marketingCloudVisitorId } : true,
592
- "Google Analytics 4": clientId && sessionId ? {
593
- clientId,
594
- sessionId
595
- } : true
370
+ "Google Analytics 4": true
596
371
  };
597
372
  };
598
373
  var getRestOfIntegrations = ({
@@ -631,9 +406,6 @@ var getExternalIds = ({
631
406
  );
632
407
  return { externalIds: uniqueExternalIds };
633
408
  };
634
- var getConsentValue = (gdprValue) => {
635
- return gdprValue === USER_GDPR.ACCEPTED ? CONSENT_STATES.granted : CONSENT_STATES.denied;
636
- };
637
409
  var decorateContextWithNeededData = async ({
638
410
  event = "",
639
411
  context = {}
@@ -645,10 +417,6 @@ var decorateContextWithNeededData = async ({
645
417
  getTrackIntegrations({ gdprPrivacyValue, event }),
646
418
  getXandrId({ gdprPrivacyValueAdvertising })
647
419
  ]);
648
- const analyticsConsentValue = getGoogleConsentValue("analytics_storage") ?? getConsentValue(gdprPrivacyValueAnalytics);
649
- const adUserDataConsentValue = getGoogleConsentValue("ad_user_data") ?? getConsentValue(gdprPrivacyValueAdvertising);
650
- const adPersonalizationConsentValue = getGoogleConsentValue("ad_personalization") ?? getConsentValue(gdprPrivacyValueAdvertising);
651
- const adStorageConsentValue = getGoogleConsentValue("ad_storage") ?? getConsentValue(gdprPrivacyValueAdvertising);
652
420
  if (!isGdprAccepted) {
653
421
  context.integrations = {
654
422
  ...context.integrations ?? {},
@@ -657,21 +425,13 @@ var decorateContextWithNeededData = async ({
657
425
  Webhook: true
658
426
  };
659
427
  }
660
- const google_consents = {
661
- analytics_storage: analyticsConsentValue,
662
- ad_user_data: adUserDataConsentValue,
663
- ad_personalization: adPersonalizationConsentValue,
664
- ad_storage: adStorageConsentValue
665
- };
666
428
  return {
667
429
  ...context,
668
430
  ...!isGdprAccepted && { ip: "0.0.0.0" },
669
431
  ...getExternalIds({ context, xandrId }),
670
- analytics_storage: getConsentState(),
671
- clientVersion: `segment-wrapper@${"4.36.2"}`,
432
+ clientVersion: `segment-wrapper@${"5.0.0-beta.0"}`,
672
433
  gdpr_privacy: gdprPrivacyValueAnalytics,
673
434
  gdpr_privacy_advertising: gdprPrivacyValueAdvertising,
674
- google_consents,
675
435
  integrations: {
676
436
  ...context.integrations,
677
437
  ...integrations
@@ -697,10 +457,6 @@ var track = (event, properties, context = {}, callback) => new Promise((resolve)
697
457
  resolve();
698
458
  }
699
459
  };
700
- const needsConsentManagement = getConfig("googleAnalyticsConsentManagement");
701
- if (needsConsentManagement && event === CMP_TRACK_EVENT) {
702
- sendGoogleConsents("update", newContext.google_consents);
703
- }
704
460
  window.analytics.track(
705
461
  event,
706
462
  newProperties,
@@ -720,7 +476,6 @@ var track = (event, properties, context = {}, callback) => new Promise((resolve)
720
476
  var identify = async (userIdParam, traits, options, callback) => {
721
477
  const gdprPrivacyValue = await getGdprPrivacyValue();
722
478
  const userId = getUserId(userIdParam);
723
- setGoogleUserId(userId);
724
479
  return window.analytics.identify(
725
480
  userId,
726
481
  checkAnalyticsGdprIsAccepted(gdprPrivacyValue) ? traits : {},
@@ -764,16 +519,148 @@ if (isClient) {
764
519
  }
765
520
  }
766
521
 
522
+ // src/middlewares/source/pageReferrer.ts
523
+ var referrerState = {
524
+ spaReferrer: "",
525
+ referrer: ""
526
+ };
527
+ var utils = {
528
+ /**
529
+ * @returns The referrer of the document
530
+ */
531
+ getDocumentReferrer: () => document.referrer,
532
+ /**
533
+ * @returns The actual location with protocol, domain and pathname
534
+ */
535
+ getActualLocation: () => {
536
+ const { origin, pathname } = window.location;
537
+ return `${origin}${pathname}`;
538
+ },
539
+ /**
540
+ * @returns The actual query string
541
+ */
542
+ getActualQueryString: () => {
543
+ const { search } = window.location;
544
+ return search;
545
+ }
546
+ };
547
+ var getPageReferrer = ({ isPageTrack = false } = {}) => {
548
+ const { referrer, spaReferrer } = referrerState;
549
+ const referrerToUse = isPageTrack ? referrer : spaReferrer;
550
+ return referrerToUse || utils.getDocumentReferrer();
551
+ };
552
+ var updatePageReferrer = () => {
553
+ referrerState.spaReferrer = getPageReferrer({ isPageTrack: true });
554
+ referrerState.referrer = utils.getActualLocation();
555
+ };
556
+ var pageReferrer = ({ payload, next }) => {
557
+ const {
558
+ obj: { context }
559
+ } = payload;
560
+ const { isPageTrack } = context;
561
+ const referrer = getPageReferrer({ isPageTrack });
562
+ payload.obj.context = {
563
+ ...context,
564
+ page: {
565
+ ...context.page,
566
+ referrer
567
+ }
568
+ };
569
+ if (isPageTrack) {
570
+ updatePageReferrer();
571
+ }
572
+ next(payload);
573
+ };
574
+
575
+ // src/repositories/googleRepository.ts
576
+ var STC = {
577
+ QUERY: "stc",
578
+ SPLIT_SYMBOL: "-",
579
+ CAMPAIGN_SPLIT_SYMBOL: ":"
580
+ };
581
+ var UTM_CAMPAIGN = "utm_campaign";
582
+ var UTM_MEDIUM = "utm_medium";
583
+ var UTM_SOURCE = "utm_source";
584
+ var UTM_CONTENT = "utm_content";
585
+ var UTM_CAMPAIGN_ID = "utm_id";
586
+ var UTM_TERM = "utm_term";
587
+ var STC_MEDIUM_TRANSFORMATIONS = {
588
+ aff: "affiliate",
589
+ dis: "display",
590
+ em: "email",
591
+ met: "paid-metasearch",
592
+ sem: "paid-search",
593
+ rt: "display",
594
+ sm: "social-media",
595
+ sp: "paid-social",
596
+ pn: "push-notification",
597
+ cs: "cross-sites"
598
+ };
599
+ var STC_INVALID_CONTENT = "na";
600
+ var EMPTY_STC = { medium: null, source: null, campaign: null };
601
+ var trackingTagsTypes = {
602
+ STC: "stc",
603
+ UTM: "utm"
604
+ };
605
+ var getCampaignDetails = ({ needsTransformation = true } = {}) => {
606
+ const { medium, source, campaign, content, term } = readQueryParams();
607
+ if (!medium || !source || !campaign) return null;
608
+ const [id, name] = campaign.split(STC.CAMPAIGN_SPLIT_SYMBOL);
609
+ if (!id && !name) return null;
610
+ const needsContent = typeof content !== "undefined" && content !== STC_INVALID_CONTENT;
611
+ return {
612
+ campaign: {
613
+ medium: needsTransformation && STC_MEDIUM_TRANSFORMATIONS[medium] || medium,
614
+ ...typeof name !== "undefined" && { id },
615
+ name: name ?? id,
616
+ source,
617
+ ...needsContent && { content },
618
+ ...typeof term !== "undefined" && { term }
619
+ }
620
+ };
621
+ };
622
+ function readQueryParams() {
623
+ const search = utils.getActualQueryString();
624
+ const searchParams = new URLSearchParams(search);
625
+ return getConfig("trackingTagsType") === trackingTagsTypes.UTM ? readFromUtm(searchParams) : readFromStc(searchParams);
626
+ }
627
+ function readFromStc(searchParams) {
628
+ if (!hasStc(searchParams)) return EMPTY_STC;
629
+ const stc = searchParams.get(STC.QUERY);
630
+ const [medium, source, campaign, content, term] = stc?.split(STC.SPLIT_SYMBOL) || [];
631
+ return { medium, source, campaign, content, term };
632
+ }
633
+ function hasStc(searchParams) {
634
+ return searchParams.has(STC.QUERY);
635
+ }
636
+ function readFromUtm(searchParams) {
637
+ const campaignId = searchParams.get(UTM_CAMPAIGN_ID);
638
+ const campaignName = searchParams.get(UTM_CAMPAIGN);
639
+ const medium = searchParams.get(UTM_MEDIUM);
640
+ const source = searchParams.get(UTM_SOURCE);
641
+ const content = searchParams.get(UTM_CONTENT);
642
+ const term = searchParams.get(UTM_TERM);
643
+ const campaign = campaignId ? `${campaignId}${STC.CAMPAIGN_SPLIT_SYMBOL}${campaignName}` : campaignName;
644
+ const missingAnyMandatoryFields = !medium || !source || !campaign;
645
+ if (missingAnyMandatoryFields && hasStc(searchParams)) {
646
+ return readFromStc(searchParams);
647
+ }
648
+ return {
649
+ campaign,
650
+ medium,
651
+ source,
652
+ content: content ?? void 0,
653
+ term: term ?? void 0
654
+ };
655
+ }
656
+
767
657
  // src/middlewares/source/campaignContext.ts
768
658
  var campaignContext = ({ payload, next }) => {
769
- const googleAnalyticsMeasurementId = getConfig("googleAnalyticsMeasurementId");
770
- if (googleAnalyticsMeasurementId) {
771
- const campaignDetails = getCampaignDetails();
772
- payload.obj.context = {
773
- ...payload.obj.context,
774
- ...campaignDetails
775
- };
776
- }
659
+ const campaignDetails = getCampaignDetails();
660
+ payload.obj.context = {
661
+ ...payload.obj.context,
662
+ ...campaignDetails
663
+ };
777
664
  next(payload);
778
665
  };
779
666
 
@@ -1001,6 +888,11 @@ var TCFEvents = /* @__PURE__ */ ((TCFEvents2) => {
1001
888
  return TCFEvents2;
1002
889
  })(TCFEvents || {});
1003
890
 
891
+ // src/events.ts
892
+ var EVENTS = {
893
+ GA4_INIT_EVENT_SENT: "ga4InitEventSent"
894
+ };
895
+
1004
896
  // src/utils/storage.ts
1005
897
  var storage = ({
1006
898
  type = "localStorage",
@@ -1066,36 +958,11 @@ var addMiddlewares = () => {
1066
958
  }
1067
959
  };
1068
960
  if (isClient && window.analytics) {
1069
- const googleAnalyticsMeasurementId = getConfig("googleAnalyticsMeasurementId");
1070
- const dataLayerName = getConfig("googleAnalyticsDataLayer") || DEFAULT_DATA_LAYER_NAME;
1071
- const needsConsentManagement = getConfig("googleAnalyticsConsentManagement");
1072
- if (googleAnalyticsMeasurementId) {
1073
- const googleAnalyticsConfig = getConfig("googleAnalyticsConfig");
1074
- window[dataLayerName] = window[dataLayerName] || [];
1075
- window.gtag = window.gtag || function gtag() {
1076
- ;
1077
- window[dataLayerName].push(arguments);
1078
- };
1079
- window.gtag("js", /* @__PURE__ */ new Date());
1080
- if (needsConsentManagement) {
1081
- sendGoogleConsents();
1082
- }
1083
- window.gtag("config", googleAnalyticsMeasurementId, {
1084
- cookie_prefix: "segment",
1085
- send_page_view: false,
1086
- ...googleAnalyticsConfig,
1087
- ...getCampaignDetails()
1088
- });
1089
- loadGoogleAnalytics().catch((error) => {
1090
- console.error("[segment-wrapper] Failed to load Google Analytics", error);
1091
- });
1092
- }
1093
961
  window.analytics.ready(checkAnonymousId);
1094
962
  window.analytics.addSourceMiddleware ? addMiddlewares() : window.analytics.ready(addMiddlewares);
1095
963
  }
1096
964
  var index_default = segmentWrapper_default;
1097
965
  export {
1098
- CONSENT_STATES,
1099
966
  EVENTS,
1100
967
  TCFEvents,
1101
968
  UserGDPR,
@@ -1105,6 +972,7 @@ export {
1105
972
  index_default as default,
1106
973
  getAdobeMCVisitorID,
1107
974
  getAdobeVisitorData,
975
+ getCampaignDetails,
1108
976
  getConfig,
1109
977
  getStorageItem,
1110
978
  getUniversalId,
@@ -1119,5 +987,6 @@ export {
1119
987
  setConfig,
1120
988
  setStorageItem,
1121
989
  storage,
1122
- toCookieDomain
990
+ toCookieDomain,
991
+ trackingTagsTypes
1123
992
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adv-re/segment-wrapper",
3
- "version": "4.36.2",
3
+ "version": "5.0.0-beta.0",
4
4
  "description": "Modern TypeScript abstraction layer on top of the Segment library",
5
5
  "sideEffects": [
6
6
  "./src/utils/patchAnalytics.ts",
@@ -63,4 +63,4 @@
63
63
  },
64
64
  "author": "",
65
65
  "license": "ISC"
66
- }
66
+ }