@@ -110,6 +110,24 @@ export function trackError(
110110 return track ( 'error' , { message, ...properties } ) ;
111111}
112112
113+ /**
114+ * Get anonymous ID from multiple sources
115+ * Priority: URL params > tracker instance > localStorage
116+ */
117+ export function getAnonymousId ( urlParams ?: URLSearchParams ) : string | null {
118+ if ( typeof window === 'undefined' ) return null ;
119+ return urlParams ?. get ( 'anonId' ) || window . databuddy ?. anonymousId || localStorage . getItem ( 'did' ) || null ;
120+ }
121+
122+ /**
123+ * Get session ID from multiple sources
124+ * Priority: URL params > tracker instance > sessionStorage
125+ */
126+ export function getSessionId ( urlParams ?: URLSearchParams ) : string | null {
127+ if ( typeof window === 'undefined' ) return null ;
128+ return urlParams ?. get ( 'sessionId' ) || window . databuddy ?. sessionId || sessionStorage . getItem ( 'did_session' ) || null ;
129+ }
130+
113131/**
114132 * Get tracking IDs (anonymous ID and session ID) from multiple sources
115133 * Priority: URL params > tracker instance > localStorage/sessionStorage
@@ -118,30 +136,18 @@ export function getTrackingIds(urlParams?: URLSearchParams): {
118136 anonId : string | null ;
119137 sessionId : string | null ;
120138} {
121- if ( typeof window === 'undefined' ) {
122- return { anonId : null , sessionId : null } ;
123- }
124-
125- const urlAnonId = urlParams ?. get ( 'anonId' ) ;
126- const urlSessionId = urlParams ?. get ( 'sessionId' ) ;
127-
128- const trackerAnonId = window . databuddy ?. anonymousId ;
129- const trackerSessionId = window . databuddy ?. sessionId ;
130-
131- const storageAnonId = localStorage . getItem ( 'did' ) ;
132- const storageSessionId = sessionStorage . getItem ( 'did_session' ) ;
133-
134139 return {
135- anonId : urlAnonId || trackerAnonId || storageAnonId || null ,
136- sessionId : urlSessionId || trackerSessionId || storageSessionId || null ,
140+ anonId : getAnonymousId ( urlParams ) ,
141+ sessionId : getSessionId ( urlParams ) ,
137142 } ;
138143}
139144
140145/**
141146 * Get tracking IDs as URL search params string
142147 */
143148export function getTrackingParams ( urlParams ?: URLSearchParams ) : string {
144- const { anonId, sessionId } = getTrackingIds ( urlParams ) ;
149+ const anonId = getAnonymousId ( urlParams ) ;
150+ const sessionId = getSessionId ( urlParams ) ;
145151 const params = new URLSearchParams ( ) ;
146152 if ( anonId ) params . set ( 'anonId' , anonId ) ;
147153 if ( sessionId ) params . set ( 'sessionId' , sessionId ) ;
0 commit comments