Skip to content

Commit 8e2e7f9

Browse files
moving utm functionality outside of the useEffect
1 parent 0653c91 commit 8e2e7f9

File tree

1 file changed

+32
-34
lines changed

1 file changed

+32
-34
lines changed

dotcom-rendering/src/components/EnhanceAffiliateLinks.importable.tsx

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
2544
export 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

Comments
 (0)