@adv-re/segment-wrapper 4.36.0-beta.4 → 4.36.0-beta.6
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/README.md +12 -13
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
- package/umd/{index.global.js → index.js} +1 -1
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ await analytics.identify('user-123', {
|
|
|
57
57
|
```html
|
|
58
58
|
<script src="https://cdn.segment.com/analytics.js/v1/YOUR_WRITE_KEY/analytics.min.js"></script>
|
|
59
59
|
<!-- Use specific version (recommended for production) -->
|
|
60
|
-
<script src="https://unpkg.com/@adv-re/segment-wrapper@
|
|
60
|
+
<script async src="https://unpkg.com/@adv-re/segment-wrapper@latest"></script>
|
|
61
61
|
|
|
62
62
|
<script>
|
|
63
63
|
// Access via window.sui.analytics
|
|
@@ -71,13 +71,10 @@ await analytics.identify('user-123', {
|
|
|
71
71
|
|
|
72
72
|
```html
|
|
73
73
|
<!-- Specific version (recommended for production) -->
|
|
74
|
-
<script src="https://unpkg.com/@adv-re/segment-wrapper@4.36.0"></script>
|
|
74
|
+
<script async src="https://unpkg.com/@adv-re/segment-wrapper@4.36.0"></script>
|
|
75
75
|
|
|
76
76
|
<!-- Latest version (use only for development) -->
|
|
77
|
-
<script src="https://unpkg.com/@adv-re/segment-wrapper"></script>
|
|
78
|
-
|
|
79
|
-
<!-- Direct path to UMD file -->
|
|
80
|
-
<script src="https://unpkg.com/@adv-re/segment-wrapper@4.36.0/umd/index.global.js"></script>
|
|
77
|
+
<script async src="https://unpkg.com/@adv-re/segment-wrapper"></script>
|
|
81
78
|
```
|
|
82
79
|
|
|
83
80
|
## Configuration
|
|
@@ -88,27 +85,27 @@ import {initConfig} from '@adv-re/segment-wrapper'
|
|
|
88
85
|
initConfig({
|
|
89
86
|
// Segment
|
|
90
87
|
segmentKey: 'your-segment-write-key',
|
|
91
|
-
|
|
88
|
+
|
|
92
89
|
// Google Analytics 4
|
|
93
90
|
googleAnalyticsMeasurementId: 'G-XXXXXXXXXX',
|
|
94
91
|
googleAnalyticsConsentManagement: true,
|
|
95
92
|
googleAnalyticsConfig: {
|
|
96
93
|
// Custom GA4 config
|
|
97
94
|
},
|
|
98
|
-
|
|
95
|
+
|
|
99
96
|
// Adobe Analytics
|
|
100
97
|
adobeVisitorId: 'YOUR_ADOBE_ORG_ID@AdobeOrg',
|
|
101
|
-
|
|
98
|
+
|
|
102
99
|
// TCF/GDPR
|
|
103
100
|
enableTcf: true,
|
|
104
|
-
|
|
101
|
+
|
|
105
102
|
// Universal ID
|
|
106
103
|
universalId: 'user-universal-id',
|
|
107
104
|
userEmail: 'user@example.com',
|
|
108
|
-
|
|
105
|
+
|
|
109
106
|
// Middlewares
|
|
110
107
|
experimentalPageDataMiddleware: false,
|
|
111
|
-
|
|
108
|
+
|
|
112
109
|
// Other
|
|
113
110
|
defaultProperties: {
|
|
114
111
|
platform: 'web',
|
|
@@ -186,13 +183,14 @@ initConfig({
|
|
|
186
183
|
googleAnalyticsMeasurementId: 'G-XXXXXXXXXX',
|
|
187
184
|
googleAnalyticsConsentManagement: true,
|
|
188
185
|
googleAnalyticsConfig: {
|
|
189
|
-
send_page_view: false
|
|
186
|
+
send_page_view: false
|
|
190
187
|
// Additional GA4 config options
|
|
191
188
|
}
|
|
192
189
|
})
|
|
193
190
|
```
|
|
194
191
|
|
|
195
192
|
Features:
|
|
193
|
+
|
|
196
194
|
- Automatic consent mode updates based on TCF
|
|
197
195
|
- Session and client ID tracking
|
|
198
196
|
- Campaign parameter forwarding
|
|
@@ -203,6 +201,7 @@ Features:
|
|
|
203
201
|
See [Migration Guide](./docs/migration-guide.md) for step-by-step instructions on migrating from the legacy `@s-ui/segment-wrapper` package.
|
|
204
202
|
|
|
205
203
|
Key changes:
|
|
204
|
+
|
|
206
205
|
- Package name: `@s-ui/segment-wrapper` → `@adv-re/segment-wrapper`
|
|
207
206
|
- Full TypeScript support with type definitions
|
|
208
207
|
- Modern build system (tsup instead of sui-bundler)
|
package/dist/index.js
CHANGED
|
@@ -717,7 +717,7 @@ var decorateContextWithNeededData = async ({
|
|
|
717
717
|
...!isGdprAccepted && { ip: "0.0.0.0" },
|
|
718
718
|
...getExternalIds({ context, xandrId }),
|
|
719
719
|
analytics_storage: getConsentState(),
|
|
720
|
-
clientVersion: `segment-wrapper@${"4.36.0-beta.
|
|
720
|
+
clientVersion: `segment-wrapper@${"4.36.0-beta.6"}`,
|
|
721
721
|
gdpr_privacy: gdprPrivacyValueAnalytics,
|
|
722
722
|
gdpr_privacy_advertising: gdprPrivacyValueAdvertising,
|
|
723
723
|
google_consents,
|
package/dist/index.mjs
CHANGED
|
@@ -667,7 +667,7 @@ var decorateContextWithNeededData = async ({
|
|
|
667
667
|
...!isGdprAccepted && { ip: "0.0.0.0" },
|
|
668
668
|
...getExternalIds({ context, xandrId }),
|
|
669
669
|
analytics_storage: getConsentState(),
|
|
670
|
-
clientVersion: `segment-wrapper@${"4.36.0-beta.
|
|
670
|
+
clientVersion: `segment-wrapper@${"4.36.0-beta.6"}`,
|
|
671
671
|
gdpr_privacy: gdprPrivacyValueAnalytics,
|
|
672
672
|
gdpr_privacy_advertising: gdprPrivacyValueAdvertising,
|
|
673
673
|
google_consents,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adv-re/segment-wrapper",
|
|
3
|
-
"version": "4.36.0-beta.
|
|
3
|
+
"version": "4.36.0-beta.6",
|
|
4
4
|
"description": "Modern TypeScript abstraction layer on top of the Segment library",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"./src/utils/patchAnalytics.ts",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"tiny-hashes": "1.0.1"
|
|
55
55
|
},
|
|
56
|
-
"unpkg": "umd/index.
|
|
56
|
+
"unpkg": "umd/index.js",
|
|
57
57
|
"files": [
|
|
58
58
|
"dist",
|
|
59
59
|
"umd"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var A="__mpi",g=typeof window<"u",Q=()=>g?window:void 0;function r(e){let t=Q()?.[A]?.segmentWrapper||{};return e?t[e]:t}var _=(e,n)=>{let t=Q();if(!t){console.warn("[segment-wrapper] Cannot set config in non-browser environment");return}t[A]=t[A]||{},t[A].segmentWrapper=t[A].segmentWrapper||{},t[A].segmentWrapper[e]=n};var R,U=()=>({ADOBE_ORG_ID:window.__SEGMENT_WRAPPER?.ADOBE_ORG_ID,DEFAULT_DEMDEX_VERSION:window.__SEGMENT_WRAPPER?.DEFAULT_DEMDEX_VERSION??"3.3.0",TIME_BETWEEN_RETRIES:window.__SEGMENT_WRAPPER?.TIME_BETWEEN_RETRIES??15,TIMES_TO_RETRY:window.__SEGMENT_WRAPPER?.TIMES_TO_RETRY??80,SERVERS:{trackingServer:window.__SEGMENT_WRAPPER?.TRACKING_SERVER,trackingServerSecure:window.__SEGMENT_WRAPPER?.TRACKING_SERVER}}),q=()=>{let e=U();if(window.Visitor&&e.ADOBE_ORG_ID)return window.Visitor.getInstance(e.ADOBE_ORG_ID,e.SERVERS)},Ve=e=>e?.getMarketingCloudVisitorID(),J=()=>{let e=q(),n=U(),t=e?.version??n.DEFAULT_DEMDEX_VERSION,{trackingServer:o}=n.SERVERS;return Promise.resolve({trackingServer:o,version:t})},Z=()=>{if(R)return Promise.resolve(R);let e=U();return new Promise(n=>{function t(o){if(o===0)return n("");let i=q();R=Ve(i),R?n(R):window.setTimeout(()=>t(--o),e.TIME_BETWEEN_RETRIES)}t(e.TIMES_TO_RETRY)})},ke=async()=>Z(),N=async()=>{let e=r("getCustomAdobeVisitorId");return typeof e=="function"?e():r("importAdobeVisitorId")===!0?ke():Z()};var ee={GA4_INIT_EVENT_SENT:"ga4InitEventSent"};var L={spaReferrer:"",referrer:""},x={getDocumentReferrer:()=>document.referrer,getActualLocation:()=>{let{origin:e,pathname:n}=window.location;return`${e}${n}`},getActualQueryString:()=>{let{search:e}=window.location;return e}},ne=({isPageTrack:e=!1}={})=>{let{referrer:n,spaReferrer:t}=L;return(e?n:t)||x.getDocumentReferrer()},he=()=>{L.spaReferrer=ne({isPageTrack:!0}),L.referrer=x.getActualLocation()},te=({payload:e,next:n})=>{let{obj:{context:t}}=e,{isPageTrack:o}=t,i=ne({isPageTrack:o});e.obj.context={...t,page:{...t.page,referrer:i}},o&&he(),n(e)};var oe={clientId:"client_id",sessionId:"session_id"},W="dataLayer",m={granted:"granted",denied:"denied"},Ue=1,Le=2,D={QUERY:"stc",SPLIT_SYMBOL:"-",CAMPAIGN_SPLIT_SYMBOL:":"},We="utm_campaign",Fe="utm_medium",Ke="utm_source",$e="utm_content",je="utm_id",Ye="utm_term",Be={aff:"affiliate",dis:"display",em:"email",met:"paid-metasearch",sem:"paid-search",rt:"display",sm:"social-media",sp:"paid-social",pn:"push-notification",cs:"cross-sites"},ze="na",Xe="sui",He={medium:null,source:null,campaign:null},Qe=async e=>new Promise(function(n,t){let o=document.createElement("script");o.src=e,o.onload=()=>n(),o.onerror=t,document.head.appendChild(o)}),ie=async()=>{let e=r("googleAnalyticsMeasurementId"),n=r("googleAnalyticsDataLayer")||W;if(!e)return Promise.resolve(!1);let t=`https://www.googletagmanager.com/gtag/js?id=${e}&l=${n}`;return Qe(t).then(()=>!0)},qe=e=>{let n=r("googleAnalyticsInitEvent")??Xe,t=`ga_event_${n}_`,o=`${t}${e}`;if(!(typeof window.gtag>"u")){if(!localStorage.getItem(o)&&(window.gtag("event",n),console.log(`Sending GA4 event "${n}" for the session "${e}"`),localStorage.setItem(o,"true"),typeof window.dispatchEvent=="function")){let i=new CustomEvent(ee.GA4_INIT_EVENT_SENT,{detail:{eventName:n,sessionId:e}});window.dispatchEvent(i)}Object.keys(localStorage).forEach(i=>{i.startsWith(t)&&i!==o&&localStorage.removeItem(i)})}},re=async e=>{let n=r("googleAnalyticsMeasurementId");return n?new Promise(t=>{window.gtag?.("get",n,e,t)}):Promise.resolve(void 0)},Je={STC:"stc",UTM:"utm"},G=({needsTransformation:e=!0}={})=>{let{medium:n,source:t,campaign:o,content:i,term:s}=Ze();if(!n||!t||!o)return null;let[c,d]=o.split(D.CAMPAIGN_SPLIT_SYMBOL);if(!c&&!d)return null;let f=typeof i<"u"&&i!==ze;return{campaign:{medium:e&&Be[n]||n,...typeof d<"u"&&{id:c},name:d??c,source:t,...f&&{content:i},...typeof s<"u"&&{term:s}}}};function Ze(){let e=x.getActualQueryString(),n=new URLSearchParams(e);return r("trackingTagsType")===Je.UTM?en(n):se(n)}function se(e){if(!ae(e))return He;let n=e.get(D.QUERY),[t,o,i,s,c]=n?.split(D.SPLIT_SYMBOL)||[];return{medium:t,source:o,campaign:i,content:s,term:c}}function ae(e){return e.has(D.QUERY)}function en(e){let n=e.get(je),t=e.get(We),o=e.get(Fe),i=e.get(Ke),s=e.get($e),c=e.get(Ye),d=n?`${n}${D.CAMPAIGN_SPLIT_SYMBOL}${t}`:t;return(!o||!i||!d)&&ae(e)?se(e):{campaign:d,medium:o,source:i,content:s??void 0,term:c??void 0}}var ce=async()=>re(oe.clientId),de=async()=>{let e=await re(oe.sessionId);return e&&qe(e),e};function S(e="analytics_storage"){try{let n=window.google_tag_data?.ics?.getConsentState?.(e);return n===Ue?m.granted:n===Le?m.denied:void 0}catch{return}}var le=()=>S()??m.denied,ge=e=>{!r("googleAnalyticsMeasurementId")||!e||window.gtag?.("set","user_id",e)},b=(e="default",n)=>{window.gtag?.("consent",e,n||{analytics_storage:m.denied,ad_user_data:m.denied,ad_personalization:m.denied,ad_storage:m.denied})};var nn="borosTcf",tn=2,on={channel:"GDPR"},ue={analytics:[1,8,10],advertising:[3]},F={LOADED:"tcloaded",USER_ACTION_COMPLETE:"useractioncomplete"},K="CMP Submitted",p={ACCEPTED:"accepted",DECLINED:"declined",UNKNOWN:"unknown"},E={listeners:[],value:void 0,addListener:e=>E.listeners.push(e),get:()=>E.value,set:e=>{let{analytics:n,advertising:t}=e||{};E.value={analytics:n,advertising:t},E.listeners.forEach(o=>o(e)),E.listeners=[]}};function rn(e){if(!g)return null;let t=new RegExp(e+"=([^;]+)").exec(document.cookie);return t!==null?unescape(t[1]):null}var sn=()=>{if(r("initialized"))return!1;let e=!!window.__tcfapi;return e||console.warn("[tcfTracking] window.__tcfapi is not available on client and TCF won't be tracked."),e},an=e=>ue.analytics.every(n=>e[`${n}`]),cn=e=>ue.advertising.every(n=>e[`${n}`]),dn=({gdprPrivacy:e})=>O.track(K,{...on,...r("tcfTrackDefaultProperties")||{}},{gdpr_privacy:e.analytics,gdpr_privacy_advertising:e.advertising}),I=()=>{let e=E.get();return e!==void 0?Promise.resolve(e):new Promise(n=>{E.addListener(t=>n(t))})},T=e=>e?.analytics===p.ACCEPTED,pe=e=>{let n=an(e),t=cn(e),o=n?p.ACCEPTED:p.DECLINED,i=t?p.ACCEPTED:p.DECLINED;return E.set({analytics:o,advertising:i}),{analytics:o,advertising:i}},fe=()=>{let e=rn(nn);if(e)try{let{purpose:n}=JSON.parse(window.atob(e)),{consents:t}=n;return t}catch(n){console.error(n);return}},ln=()=>{let e=fe();e&&pe(e)},gn=()=>{let e=fe();_("isFirstVisit",!e)};function $(){if(g){if(ln(),gn(),!sn()){E.get()?.analytics===void 0&&E.set({analytics:p.UNKNOWN,advertising:p.UNKNOWN});return}_("initialized",!0),window.__tcfapi?.("addEventListener",tn,({eventStatus:e,purpose:n},t)=>{if(!t)return Promise.resolve();if(e===F.USER_ACTION_COMPLETE||e===F.LOADED){let{consents:o}=n,i=pe(o);if(e===F.USER_ACTION_COMPLETE){let{analytics:s,advertising:c}=i,d={analytics:s,advertising:c};return!(g&&window.sessionStorage.getItem("didomi-migration"))&&dn({gdprPrivacy:d})}}})}}function me(e){if(typeof document>"u")return null;let t=new RegExp(`${e}=([^;]+)`).exec(document.cookie);return t!==null?unescape(t[1]):null}function Ee(e,n,t={}){if(typeof document>"u"||typeof window>"u")return;let{maxAge:o=31536e3,path:i="/",reduceDomain:s=!0,sameSite:c="Lax"}=t,d=s?_e():window.location.hostname,f=[`${e}=${n}`,`domain=${d}`,`path=${i}`,`max-age=${o}`,`SameSite=${c}`].join(";");document.cookie=f}function ye(e,n={}){if(typeof document>"u"||typeof window>"u")return;let{path:t="/",reduceDomain:o=!0}=n,i=o?_e():window.location.hostname;document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${i}`}var _e=e=>{let n=e!==void 0?e:typeof window<"u"?window.location.hostname:"",t=".",o=n.split(t).reverse();if(o.length===1)return o[0];let i=[];for(let s of o)if(i.push(s),s.length>3)break;return`${t}${i.reverse().join(t)}`};var un="https://secure.adnxs.com/getuidj?consent=1",j="adit-xandr-id",pn=0;function fn(){return g?window.fetch(un,{credentials:"include"}).then(e=>e.json()).then(e=>e?.uid).catch(()=>null):Promise.resolve(null)}function we({gdprPrivacyValueAdvertising:e}){if(!g)return null;if(e!==p.ACCEPTED)return ye(j),null;let n=i=>i!==null&&Number(i)>pn,t=me(j),o=n(t);return o||fn().then(i=>{typeof i=="string"&&Ee(j,i)}),_("xandrId",t),o?t:null}var mn={platform:"web"},En={All:!1},yn={All:!0},_n=e=>{let n=r("userIdPrefix");return n&&(typeof e=="number"||typeof e=="string"&&!e.startsWith(n))?`${n}${e}`:e},Y=()=>({...mn,...r("defaultProperties")}),wn=async({gdprPrivacyValue:e,event:n})=>{let t=T(e),o,i,s;try{t&&(o=await N()),i=await de(),s=await ce()}catch(d){console.error(d)}return{...Tn({isGdprAccepted:t,event:n}),"Adobe Analytics":o?{marketingCloudVisitorId:o}:!0,"Google Analytics 4":s&&i?{clientId:s,sessionId:i}:!0}},Tn=({isGdprAccepted:e,event:n})=>n==="CMP Submitted"?yn:e?{}:En,An=({context:e,xandrId:n})=>{let t=r("sendXandrId")!==!1,o=n&&parseInt(n)!==0;if(!t||!o)return{};let d=[...Array.isArray(e?.externalIds)?e.externalIds:[],{collection:"users",encoding:"none",id:n,type:"xandr_id"}];return{externalIds:d.filter(({id:C,type:P},v)=>v===d.findIndex(({id:h,type:Oe})=>C===h&&P===Oe))}},V=e=>e===p.ACCEPTED?m.granted:m.denied,B=async({event:e="",context:n={}})=>{let t=await I(),{analytics:o,advertising:i}=t||{},s=T(t),[c,d]=await Promise.all([wn({gdprPrivacyValue:t,event:e}),we({gdprPrivacyValueAdvertising:i})]),f=S("analytics_storage")??V(o),C=S("ad_user_data")??V(i),P=S("ad_personalization")??V(i),v=S("ad_storage")??V(i);s||(n.integrations={...n.integrations??{},Personas:!1,Webhooks:!0,Webhook:!0});let h={analytics_storage:f,ad_user_data:C,ad_personalization:P,ad_storage:v};return{...n,...!s&&{ip:"0.0.0.0"},...An({context:n,xandrId:d}),analytics_storage:le(),clientVersion:"segment-wrapper@4.36.0-beta.4",gdpr_privacy:o,gdpr_privacy_advertising:i,google_consents:h,integrations:{...n.integrations,...c}}},Te=(e,n,t={},o)=>new Promise(i=>{(async()=>{let c=await B({context:t,event:e}),d={...Y(),...n},f=async(...P)=>{o&&o(...P);let[v]=await Promise.all([I()]);T(v),i()};r("googleAnalyticsConsentManagement")&&e===K&&b("update",c.google_consents),window.analytics.track(e,d,{...c,context:{integrations:{...c.integrations}}},f)})()}),Sn=async(e,n,t,o)=>{let i=await I(),s=_n(e);return ge(s),window.analytics.identify(s,T(i)?n:{},t,o)},In=(e,n,t={},o)=>(t.isPageTrack=!0,Te(e??"",n,t,o)),Cn=()=>Promise.resolve(window.analytics.reset()),O={page:In,identify:Sn,track:Te,reset:Cn};var Se="__mpi_patch";function Ae(){let{track:e}=window.analytics;window.analytics.track=(...n)=>{let[t,o,i,s]=n,c={...Y(),...o};return B({context:i,event:t}).then(d=>{e.call(window.analytics,t,c,d,s)}),window.analytics},window.analytics[Se]=!0}g&&(window.analytics?window.analytics[Se]||(window.analytics.initialized?Ae():window.analytics.ready(Ae)):console.warn("[segment-wrapper] Segment Analytics is not loaded so patch is not applied."));var Ie=({payload:e,next:n})=>{if(r("googleAnalyticsMeasurementId")){let o=G();e.obj.context={...e.obj.context,...o}}n(e)};var Pn={platform:"web"},Ce=({payload:e,next:n})=>{let t=r("defaultContext")||{};e.obj.context={...Pn,...t,...e.obj.context},n(e)};var vn=()=>{let e=null;return({payload:n,next:t})=>{try{let{obj:o}=n,{event:i,type:s}=o;if(s!=="track"){t(n);return}if(typeof i=="string"&&i.endsWith("Viewed")){let{page_name:c,page_type:d}=o.properties||{};e={name:c,type:d},t(n);return}if(!e){t(n);return}t({...n,obj:{...o,properties:{...o.properties,page_name_origin:e.name,page_type:o.properties?.page_type||e.type}}})}catch(o){console.error(o),t(n)}}},Pe=vn();var ve=({payload:e,next:n})=>{e.obj.context={...e.obj.context,screen:{height:window.innerHeight,width:window.innerWidth,density:window.devicePixelRatio}},n(e)};var Rn=e=>{let n=r("isUserTraitsEnabled"),t=window.analytics.user?.(),o=T(e),i=t?.id();return{anonymousId:t?.anonymousId(),...i&&{userId:i},...o&&n&&t?.traits()||{}}},Re=async({payload:e,next:n})=>{let t=await I(),o;try{o=Rn(t)}catch(i){console.error(i)}e.obj.context={...e.obj.context,traits:{...e.obj.context.traits||{},...o}},n(e)};for(De=[],k=0;k<64;)De[k]=0|4294967296*Math.sin(++k%Math.PI);var De,k;for(u=18,M=[],z=[];u>1;u--)for(a=u;a<320;)M[a+=u]=1;var a,u,M,z;function l(e,n){return 4294967296*Math.pow(e,1/n)|0}for(a=0;a<64;)M[++u]||(z[a]=l(u,2),M[a++]=l(u,3));function y(e,n){return e>>>n|e<<-n}function Me(e){var n=z.slice(u=a=0,8),t=[],o=unescape(encodeURI(e))+"\x80",i=o.length;for(t[e=--i/4+2|15]=8*i;~i;)t[i>>2]|=o.charCodeAt(i)<<8*~i--;for(i=[];u<e;u+=16){for(l=n.slice();a<64;l.unshift(o+(y(o=l[0],2)^y(o,13)^y(o,22))+(o&l[1]^l[1]&l[2]^l[2]&o)))l[3]+=o=0|(i[a]=a<16?~~t[a+u]:(y(o=i[a-2],17)^y(o,19)^o>>>10)+i[a-7]+(y(o=i[a-15],7)^y(o,18)^o>>>3)+i[a-16])+l.pop()+(y(o=l[4],6)^y(o,11)^y(o,25))+(o&l[5]^~o&l[6])+M[a++];for(a=8;a;)n[--a]+=l[a]}for(o="";a<64;)o+=(n[a>>3]>>4*(7-a++)&15).toString(16);return o}var Dn=/\.|\+.*$/g;function Mn(e){if(typeof e!="string")return"";let t=e.toLowerCase().split(/@/);if(t.length!==2)return"";let[o,i]=t;return`${o.replace(Dn,"")}@${i}`}function Ne(e){let n=Mn(e);return n?Me(n):""}var Nn="USER_DATA_READY",xn=()=>r("universalId"),Gn=()=>{let e=xn();if(e)return X(),e;let n=r("userEmail");if(n)return e=Ne(n),bn(e),X(),e;X()},xe=()=>{if(!g)return;let e=Gn(),n=r("userEmail");if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let t=new CustomEvent(Nn,{detail:{universalId:e,userEmail:n}});window.dispatchEvent(t)}return{universalId:e,userEmail:n}},X=()=>{_("universalIdInitialized",!0)},bn=e=>{_("universalId",e)};var Ge=()=>{if(typeof window>"u")return;let e=window,n=e.analytics;if(!n){console.warn("[segment-wrapper] Analytics is not available");return}let t=e.__SEGMENT_WRAPPER?.SEGMENT_ID_USER_WITHOUT_CONSENTS??"anonymous_user";n.user?.()?.anonymousId()===t&&"setAnonymousId"in n&&typeof n.setAnonymousId=="function"&&n.setAnonymousId(null)};$();try{xe()}catch(e){console.error("[segment-wrapper] UniversalID could not be initialized",e)}var be=()=>{let e=r("experimentalPageDataMiddleware");window.analytics.addSourceMiddleware?.(Re),window.analytics.addSourceMiddleware?.(Ce),window.analytics.addSourceMiddleware?.(Ie),window.analytics.addSourceMiddleware?.(ve),window.analytics.addSourceMiddleware?.(te),e&&window.analytics.addSourceMiddleware?.(Pe)};if(g&&window.analytics){let e=r("googleAnalyticsMeasurementId"),n=r("googleAnalyticsDataLayer")||W,t=r("googleAnalyticsConsentManagement");if(e){let o=r("googleAnalyticsConfig");window[n]=window[n]||[],window.gtag=window.gtag||function(){window[n].push(arguments)},window.gtag("js",new Date),t&&b(),window.gtag("config",e,{cookie_prefix:"segment",send_page_view:!1,...o,...G()}),ie().catch(i=>{console.error("[segment-wrapper] Failed to load Google Analytics",i)})}window.analytics.ready(Ge),window.analytics.addSourceMiddleware?be():window.analytics.ready(be)}var H=O;var w=window;w.sui=w.sui||{};w.sui.analytics=w.sui.analytics||H;w.sui.analytics.getAdobeVisitorData=w.sui.analytics.getAdobeVisitorData||J;w.sui.analytics.getAdobeMCVisitorID=w.sui.analytics.getAdobeMCVisitorID||N;var $t=H;})();
|
|
1
|
+
"use strict";(()=>{var A="__mpi",g=typeof window<"u",Q=()=>g?window:void 0;function r(e){let t=Q()?.[A]?.segmentWrapper||{};return e?t[e]:t}var _=(e,n)=>{let t=Q();if(!t){console.warn("[segment-wrapper] Cannot set config in non-browser environment");return}t[A]=t[A]||{},t[A].segmentWrapper=t[A].segmentWrapper||{},t[A].segmentWrapper[e]=n};var R,U=()=>({ADOBE_ORG_ID:window.__SEGMENT_WRAPPER?.ADOBE_ORG_ID,DEFAULT_DEMDEX_VERSION:window.__SEGMENT_WRAPPER?.DEFAULT_DEMDEX_VERSION??"3.3.0",TIME_BETWEEN_RETRIES:window.__SEGMENT_WRAPPER?.TIME_BETWEEN_RETRIES??15,TIMES_TO_RETRY:window.__SEGMENT_WRAPPER?.TIMES_TO_RETRY??80,SERVERS:{trackingServer:window.__SEGMENT_WRAPPER?.TRACKING_SERVER,trackingServerSecure:window.__SEGMENT_WRAPPER?.TRACKING_SERVER}}),q=()=>{let e=U();if(window.Visitor&&e.ADOBE_ORG_ID)return window.Visitor.getInstance(e.ADOBE_ORG_ID,e.SERVERS)},Ve=e=>e?.getMarketingCloudVisitorID(),J=()=>{let e=q(),n=U(),t=e?.version??n.DEFAULT_DEMDEX_VERSION,{trackingServer:o}=n.SERVERS;return Promise.resolve({trackingServer:o,version:t})},Z=()=>{if(R)return Promise.resolve(R);let e=U();return new Promise(n=>{function t(o){if(o===0)return n("");let i=q();R=Ve(i),R?n(R):window.setTimeout(()=>t(--o),e.TIME_BETWEEN_RETRIES)}t(e.TIMES_TO_RETRY)})},ke=async()=>Z(),N=async()=>{let e=r("getCustomAdobeVisitorId");return typeof e=="function"?e():r("importAdobeVisitorId")===!0?ke():Z()};var ee={GA4_INIT_EVENT_SENT:"ga4InitEventSent"};var L={spaReferrer:"",referrer:""},x={getDocumentReferrer:()=>document.referrer,getActualLocation:()=>{let{origin:e,pathname:n}=window.location;return`${e}${n}`},getActualQueryString:()=>{let{search:e}=window.location;return e}},ne=({isPageTrack:e=!1}={})=>{let{referrer:n,spaReferrer:t}=L;return(e?n:t)||x.getDocumentReferrer()},he=()=>{L.spaReferrer=ne({isPageTrack:!0}),L.referrer=x.getActualLocation()},te=({payload:e,next:n})=>{let{obj:{context:t}}=e,{isPageTrack:o}=t,i=ne({isPageTrack:o});e.obj.context={...t,page:{...t.page,referrer:i}},o&&he(),n(e)};var oe={clientId:"client_id",sessionId:"session_id"},W="dataLayer",m={granted:"granted",denied:"denied"},Ue=1,Le=2,D={QUERY:"stc",SPLIT_SYMBOL:"-",CAMPAIGN_SPLIT_SYMBOL:":"},We="utm_campaign",Fe="utm_medium",Ke="utm_source",$e="utm_content",je="utm_id",Ye="utm_term",Be={aff:"affiliate",dis:"display",em:"email",met:"paid-metasearch",sem:"paid-search",rt:"display",sm:"social-media",sp:"paid-social",pn:"push-notification",cs:"cross-sites"},ze="na",Xe="sui",He={medium:null,source:null,campaign:null},Qe=async e=>new Promise(function(n,t){let o=document.createElement("script");o.src=e,o.onload=()=>n(),o.onerror=t,document.head.appendChild(o)}),ie=async()=>{let e=r("googleAnalyticsMeasurementId"),n=r("googleAnalyticsDataLayer")||W;if(!e)return Promise.resolve(!1);let t=`https://www.googletagmanager.com/gtag/js?id=${e}&l=${n}`;return Qe(t).then(()=>!0)},qe=e=>{let n=r("googleAnalyticsInitEvent")??Xe,t=`ga_event_${n}_`,o=`${t}${e}`;if(!(typeof window.gtag>"u")){if(!localStorage.getItem(o)&&(window.gtag("event",n),console.log(`Sending GA4 event "${n}" for the session "${e}"`),localStorage.setItem(o,"true"),typeof window.dispatchEvent=="function")){let i=new CustomEvent(ee.GA4_INIT_EVENT_SENT,{detail:{eventName:n,sessionId:e}});window.dispatchEvent(i)}Object.keys(localStorage).forEach(i=>{i.startsWith(t)&&i!==o&&localStorage.removeItem(i)})}},re=async e=>{let n=r("googleAnalyticsMeasurementId");return n?new Promise(t=>{window.gtag?.("get",n,e,t)}):Promise.resolve(void 0)},Je={STC:"stc",UTM:"utm"},G=({needsTransformation:e=!0}={})=>{let{medium:n,source:t,campaign:o,content:i,term:s}=Ze();if(!n||!t||!o)return null;let[c,d]=o.split(D.CAMPAIGN_SPLIT_SYMBOL);if(!c&&!d)return null;let f=typeof i<"u"&&i!==ze;return{campaign:{medium:e&&Be[n]||n,...typeof d<"u"&&{id:c},name:d??c,source:t,...f&&{content:i},...typeof s<"u"&&{term:s}}}};function Ze(){let e=x.getActualQueryString(),n=new URLSearchParams(e);return r("trackingTagsType")===Je.UTM?en(n):se(n)}function se(e){if(!ae(e))return He;let n=e.get(D.QUERY),[t,o,i,s,c]=n?.split(D.SPLIT_SYMBOL)||[];return{medium:t,source:o,campaign:i,content:s,term:c}}function ae(e){return e.has(D.QUERY)}function en(e){let n=e.get(je),t=e.get(We),o=e.get(Fe),i=e.get(Ke),s=e.get($e),c=e.get(Ye),d=n?`${n}${D.CAMPAIGN_SPLIT_SYMBOL}${t}`:t;return(!o||!i||!d)&&ae(e)?se(e):{campaign:d,medium:o,source:i,content:s??void 0,term:c??void 0}}var ce=async()=>re(oe.clientId),de=async()=>{let e=await re(oe.sessionId);return e&&qe(e),e};function S(e="analytics_storage"){try{let n=window.google_tag_data?.ics?.getConsentState?.(e);return n===Ue?m.granted:n===Le?m.denied:void 0}catch{return}}var le=()=>S()??m.denied,ge=e=>{!r("googleAnalyticsMeasurementId")||!e||window.gtag?.("set","user_id",e)},b=(e="default",n)=>{window.gtag?.("consent",e,n||{analytics_storage:m.denied,ad_user_data:m.denied,ad_personalization:m.denied,ad_storage:m.denied})};var nn="borosTcf",tn=2,on={channel:"GDPR"},ue={analytics:[1,8,10],advertising:[3]},F={LOADED:"tcloaded",USER_ACTION_COMPLETE:"useractioncomplete"},K="CMP Submitted",p={ACCEPTED:"accepted",DECLINED:"declined",UNKNOWN:"unknown"},E={listeners:[],value:void 0,addListener:e=>E.listeners.push(e),get:()=>E.value,set:e=>{let{analytics:n,advertising:t}=e||{};E.value={analytics:n,advertising:t},E.listeners.forEach(o=>o(e)),E.listeners=[]}};function rn(e){if(!g)return null;let t=new RegExp(e+"=([^;]+)").exec(document.cookie);return t!==null?unescape(t[1]):null}var sn=()=>{if(r("initialized"))return!1;let e=!!window.__tcfapi;return e||console.warn("[tcfTracking] window.__tcfapi is not available on client and TCF won't be tracked."),e},an=e=>ue.analytics.every(n=>e[`${n}`]),cn=e=>ue.advertising.every(n=>e[`${n}`]),dn=({gdprPrivacy:e})=>O.track(K,{...on,...r("tcfTrackDefaultProperties")||{}},{gdpr_privacy:e.analytics,gdpr_privacy_advertising:e.advertising}),I=()=>{let e=E.get();return e!==void 0?Promise.resolve(e):new Promise(n=>{E.addListener(t=>n(t))})},T=e=>e?.analytics===p.ACCEPTED,pe=e=>{let n=an(e),t=cn(e),o=n?p.ACCEPTED:p.DECLINED,i=t?p.ACCEPTED:p.DECLINED;return E.set({analytics:o,advertising:i}),{analytics:o,advertising:i}},fe=()=>{let e=rn(nn);if(e)try{let{purpose:n}=JSON.parse(window.atob(e)),{consents:t}=n;return t}catch(n){console.error(n);return}},ln=()=>{let e=fe();e&&pe(e)},gn=()=>{let e=fe();_("isFirstVisit",!e)};function $(){if(g){if(ln(),gn(),!sn()){E.get()?.analytics===void 0&&E.set({analytics:p.UNKNOWN,advertising:p.UNKNOWN});return}_("initialized",!0),window.__tcfapi?.("addEventListener",tn,({eventStatus:e,purpose:n},t)=>{if(!t)return Promise.resolve();if(e===F.USER_ACTION_COMPLETE||e===F.LOADED){let{consents:o}=n,i=pe(o);if(e===F.USER_ACTION_COMPLETE){let{analytics:s,advertising:c}=i,d={analytics:s,advertising:c};return!(g&&window.sessionStorage.getItem("didomi-migration"))&&dn({gdprPrivacy:d})}}})}}function me(e){if(typeof document>"u")return null;let t=new RegExp(`${e}=([^;]+)`).exec(document.cookie);return t!==null?unescape(t[1]):null}function Ee(e,n,t={}){if(typeof document>"u"||typeof window>"u")return;let{maxAge:o=31536e3,path:i="/",reduceDomain:s=!0,sameSite:c="Lax"}=t,d=s?_e():window.location.hostname,f=[`${e}=${n}`,`domain=${d}`,`path=${i}`,`max-age=${o}`,`SameSite=${c}`].join(";");document.cookie=f}function ye(e,n={}){if(typeof document>"u"||typeof window>"u")return;let{path:t="/",reduceDomain:o=!0}=n,i=o?_e():window.location.hostname;document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${i}`}var _e=e=>{let n=e!==void 0?e:typeof window<"u"?window.location.hostname:"",t=".",o=n.split(t).reverse();if(o.length===1)return o[0];let i=[];for(let s of o)if(i.push(s),s.length>3)break;return`${t}${i.reverse().join(t)}`};var un="https://secure.adnxs.com/getuidj?consent=1",j="adit-xandr-id",pn=0;function fn(){return g?window.fetch(un,{credentials:"include"}).then(e=>e.json()).then(e=>e?.uid).catch(()=>null):Promise.resolve(null)}function we({gdprPrivacyValueAdvertising:e}){if(!g)return null;if(e!==p.ACCEPTED)return ye(j),null;let n=i=>i!==null&&Number(i)>pn,t=me(j),o=n(t);return o||fn().then(i=>{typeof i=="string"&&Ee(j,i)}),_("xandrId",t),o?t:null}var mn={platform:"web"},En={All:!1},yn={All:!0},_n=e=>{let n=r("userIdPrefix");return n&&(typeof e=="number"||typeof e=="string"&&!e.startsWith(n))?`${n}${e}`:e},Y=()=>({...mn,...r("defaultProperties")}),wn=async({gdprPrivacyValue:e,event:n})=>{let t=T(e),o,i,s;try{t&&(o=await N()),i=await de(),s=await ce()}catch(d){console.error(d)}return{...Tn({isGdprAccepted:t,event:n}),"Adobe Analytics":o?{marketingCloudVisitorId:o}:!0,"Google Analytics 4":s&&i?{clientId:s,sessionId:i}:!0}},Tn=({isGdprAccepted:e,event:n})=>n==="CMP Submitted"?yn:e?{}:En,An=({context:e,xandrId:n})=>{let t=r("sendXandrId")!==!1,o=n&&parseInt(n)!==0;if(!t||!o)return{};let d=[...Array.isArray(e?.externalIds)?e.externalIds:[],{collection:"users",encoding:"none",id:n,type:"xandr_id"}];return{externalIds:d.filter(({id:C,type:P},v)=>v===d.findIndex(({id:h,type:Oe})=>C===h&&P===Oe))}},V=e=>e===p.ACCEPTED?m.granted:m.denied,B=async({event:e="",context:n={}})=>{let t=await I(),{analytics:o,advertising:i}=t||{},s=T(t),[c,d]=await Promise.all([wn({gdprPrivacyValue:t,event:e}),we({gdprPrivacyValueAdvertising:i})]),f=S("analytics_storage")??V(o),C=S("ad_user_data")??V(i),P=S("ad_personalization")??V(i),v=S("ad_storage")??V(i);s||(n.integrations={...n.integrations??{},Personas:!1,Webhooks:!0,Webhook:!0});let h={analytics_storage:f,ad_user_data:C,ad_personalization:P,ad_storage:v};return{...n,...!s&&{ip:"0.0.0.0"},...An({context:n,xandrId:d}),analytics_storage:le(),clientVersion:"segment-wrapper@4.36.0-beta.6",gdpr_privacy:o,gdpr_privacy_advertising:i,google_consents:h,integrations:{...n.integrations,...c}}},Te=(e,n,t={},o)=>new Promise(i=>{(async()=>{let c=await B({context:t,event:e}),d={...Y(),...n},f=async(...P)=>{o&&o(...P);let[v]=await Promise.all([I()]);T(v),i()};r("googleAnalyticsConsentManagement")&&e===K&&b("update",c.google_consents),window.analytics.track(e,d,{...c,context:{integrations:{...c.integrations}}},f)})()}),Sn=async(e,n,t,o)=>{let i=await I(),s=_n(e);return ge(s),window.analytics.identify(s,T(i)?n:{},t,o)},In=(e,n,t={},o)=>(t.isPageTrack=!0,Te(e??"",n,t,o)),Cn=()=>Promise.resolve(window.analytics.reset()),O={page:In,identify:Sn,track:Te,reset:Cn};var Se="__mpi_patch";function Ae(){let{track:e}=window.analytics;window.analytics.track=(...n)=>{let[t,o,i,s]=n,c={...Y(),...o};return B({context:i,event:t}).then(d=>{e.call(window.analytics,t,c,d,s)}),window.analytics},window.analytics[Se]=!0}g&&(window.analytics?window.analytics[Se]||(window.analytics.initialized?Ae():window.analytics.ready(Ae)):console.warn("[segment-wrapper] Segment Analytics is not loaded so patch is not applied."));var Ie=({payload:e,next:n})=>{if(r("googleAnalyticsMeasurementId")){let o=G();e.obj.context={...e.obj.context,...o}}n(e)};var Pn={platform:"web"},Ce=({payload:e,next:n})=>{let t=r("defaultContext")||{};e.obj.context={...Pn,...t,...e.obj.context},n(e)};var vn=()=>{let e=null;return({payload:n,next:t})=>{try{let{obj:o}=n,{event:i,type:s}=o;if(s!=="track"){t(n);return}if(typeof i=="string"&&i.endsWith("Viewed")){let{page_name:c,page_type:d}=o.properties||{};e={name:c,type:d},t(n);return}if(!e){t(n);return}t({...n,obj:{...o,properties:{...o.properties,page_name_origin:e.name,page_type:o.properties?.page_type||e.type}}})}catch(o){console.error(o),t(n)}}},Pe=vn();var ve=({payload:e,next:n})=>{e.obj.context={...e.obj.context,screen:{height:window.innerHeight,width:window.innerWidth,density:window.devicePixelRatio}},n(e)};var Rn=e=>{let n=r("isUserTraitsEnabled"),t=window.analytics.user?.(),o=T(e),i=t?.id();return{anonymousId:t?.anonymousId(),...i&&{userId:i},...o&&n&&t?.traits()||{}}},Re=async({payload:e,next:n})=>{let t=await I(),o;try{o=Rn(t)}catch(i){console.error(i)}e.obj.context={...e.obj.context,traits:{...e.obj.context.traits||{},...o}},n(e)};for(De=[],k=0;k<64;)De[k]=0|4294967296*Math.sin(++k%Math.PI);var De,k;for(u=18,M=[],z=[];u>1;u--)for(a=u;a<320;)M[a+=u]=1;var a,u,M,z;function l(e,n){return 4294967296*Math.pow(e,1/n)|0}for(a=0;a<64;)M[++u]||(z[a]=l(u,2),M[a++]=l(u,3));function y(e,n){return e>>>n|e<<-n}function Me(e){var n=z.slice(u=a=0,8),t=[],o=unescape(encodeURI(e))+"\x80",i=o.length;for(t[e=--i/4+2|15]=8*i;~i;)t[i>>2]|=o.charCodeAt(i)<<8*~i--;for(i=[];u<e;u+=16){for(l=n.slice();a<64;l.unshift(o+(y(o=l[0],2)^y(o,13)^y(o,22))+(o&l[1]^l[1]&l[2]^l[2]&o)))l[3]+=o=0|(i[a]=a<16?~~t[a+u]:(y(o=i[a-2],17)^y(o,19)^o>>>10)+i[a-7]+(y(o=i[a-15],7)^y(o,18)^o>>>3)+i[a-16])+l.pop()+(y(o=l[4],6)^y(o,11)^y(o,25))+(o&l[5]^~o&l[6])+M[a++];for(a=8;a;)n[--a]+=l[a]}for(o="";a<64;)o+=(n[a>>3]>>4*(7-a++)&15).toString(16);return o}var Dn=/\.|\+.*$/g;function Mn(e){if(typeof e!="string")return"";let t=e.toLowerCase().split(/@/);if(t.length!==2)return"";let[o,i]=t;return`${o.replace(Dn,"")}@${i}`}function Ne(e){let n=Mn(e);return n?Me(n):""}var Nn="USER_DATA_READY",xn=()=>r("universalId"),Gn=()=>{let e=xn();if(e)return X(),e;let n=r("userEmail");if(n)return e=Ne(n),bn(e),X(),e;X()},xe=()=>{if(!g)return;let e=Gn(),n=r("userEmail");if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let t=new CustomEvent(Nn,{detail:{universalId:e,userEmail:n}});window.dispatchEvent(t)}return{universalId:e,userEmail:n}},X=()=>{_("universalIdInitialized",!0)},bn=e=>{_("universalId",e)};var Ge=()=>{if(typeof window>"u")return;let e=window,n=e.analytics;if(!n){console.warn("[segment-wrapper] Analytics is not available");return}let t=e.__SEGMENT_WRAPPER?.SEGMENT_ID_USER_WITHOUT_CONSENTS??"anonymous_user";n.user?.()?.anonymousId()===t&&"setAnonymousId"in n&&typeof n.setAnonymousId=="function"&&n.setAnonymousId(null)};$();try{xe()}catch(e){console.error("[segment-wrapper] UniversalID could not be initialized",e)}var be=()=>{let e=r("experimentalPageDataMiddleware");window.analytics.addSourceMiddleware?.(Re),window.analytics.addSourceMiddleware?.(Ce),window.analytics.addSourceMiddleware?.(Ie),window.analytics.addSourceMiddleware?.(ve),window.analytics.addSourceMiddleware?.(te),e&&window.analytics.addSourceMiddleware?.(Pe)};if(g&&window.analytics){let e=r("googleAnalyticsMeasurementId"),n=r("googleAnalyticsDataLayer")||W,t=r("googleAnalyticsConsentManagement");if(e){let o=r("googleAnalyticsConfig");window[n]=window[n]||[],window.gtag=window.gtag||function(){window[n].push(arguments)},window.gtag("js",new Date),t&&b(),window.gtag("config",e,{cookie_prefix:"segment",send_page_view:!1,...o,...G()}),ie().catch(i=>{console.error("[segment-wrapper] Failed to load Google Analytics",i)})}window.analytics.ready(Ge),window.analytics.addSourceMiddleware?be():window.analytics.ready(be)}var H=O;var w=window;w.sui=w.sui||{};w.sui.analytics=w.sui.analytics||H;w.sui.analytics.getAdobeVisitorData=w.sui.analytics.getAdobeVisitorData||J;w.sui.analytics.getAdobeMCVisitorID=w.sui.analytics.getAdobeMCVisitorID||N;var $t=H;})();
|