@@ -22,6 +22,25 @@ import { useBetaAB } from '../lib/useAB';
2222 *
2323 * (No visual story exists as this does not render anything)
2424 */
25+
26+ function getUtmString ( params : URLSearchParams , keys : string [ ] ) : string {
27+ return keys
28+ . map ( ( key ) => {
29+ const value = params . get ( key ) ;
30+ return value ? `${ key } |${ value } ` : null ;
31+ } )
32+ . filter ( Boolean )
33+ . join ( '|' ) ;
34+ }
35+
36+ const utmKeys = [
37+ 'utm_source' ,
38+ 'utm_medium' ,
39+ 'utm_campaign' ,
40+ 'utm_content' ,
41+ 'utm_term' ,
42+ ] ;
43+
2544export const EnhanceAffiliateLinks = ( ) => {
2645 const abTests = useBetaAB ( ) ;
2746
@@ -39,43 +58,22 @@ export const EnhanceAffiliateLinks = () => {
3958 const allLinksOnPage = [ ...document . querySelectorAll ( 'a' ) ] ;
4059
4160 const urlParams = new URLSearchParams ( window . location . search ) ;
61+ console . log ( 'urlParams:' , urlParams . toString ( ) ) ;
62+
4263 const referrerURLParams = new URLSearchParams (
4364 document . referrer . split ( '?' ) [ 1 ] || '' ,
4465 ) ;
66+ console . log ( 'referrerURLParams:' , referrerURLParams . toString ( ) ) ;
67+
68+ const utmParamsFromArticleURL = getUtmString ( urlParams , utmKeys ) ;
69+ console . log ( 'utmString:' , utmParamsFromArticleURL ) ;
70+
71+ const utmParamsFromReferrer = getUtmString ( referrerURLParams , utmKeys ) ;
72+ console . log ( 'utmFromReferrer:' , utmParamsFromReferrer ) ;
4573
46- const utmKeys = [
47- 'utm_source' ,
48- 'utm_medium' ,
49- 'utm_campaign' ,
50- 'utm_content' ,
51- 'utm_term' ,
52- ] ;
53-
54- const utmFromArticleURL = utmKeys
55- . map ( ( key ) => {
56- const value = urlParams . get ( key ) ;
57- return value ? `${ key } |${ value } ` : null ;
58- } )
59- . filter ( Boolean )
60- . join ( '|' ) ;
61-
62- console . log ( 'utmString:' , utmFromArticleURL ) ;
63-
64- const utmFromReferrer = utmKeys
65- . map ( ( key ) => {
66- const value = referrerURLParams . get ( key ) ;
67- return value ? `${ key } |${ value } ` : null ;
68- } )
69- . filter ( Boolean )
70- . join ( '|' ) ;
71-
72- console . log ( 'utmFromReferrer:' , utmFromReferrer ) ;
73-
74- const utmString = utmFromArticleURL
75- ? utmFromArticleURL
76- : utmFromReferrer
77- ? utmFromReferrer
78- : '' ;
74+ const utmParamsString =
75+ utmParamsFromArticleURL || utmParamsFromReferrer || '' ;
76+ console . log ( 'final utmParamsString:' , utmParamsString ) ;
7977
8078 for ( const link of allLinksOnPage ) {
8179 if ( isSkimlink ( link . href ) ) {
@@ -89,7 +87,7 @@ export const EnhanceAffiliateLinks = () => {
8987 // Skimlinks treats xcust as one long string, so we use | to separate values
9088 const xcustValue = `referrer|${ referrerDomain } |accountId|${ skimlinksAccountId } ${
9189 abTestString ? `|abTestParticipations|${ abTestString } ` : ''
92- } ${ utmString ? `|${ utmString } ` : '' } `;
90+ } ${ utmParamsString ? `|${ utmParamsString } ` : '' } `;
9391
9492 link . href = `${ link . href } &xcust=${ encodeURIComponent (
9593 xcustValue ,
0 commit comments