diff --git a/src/index.js b/src/index.js index 05b4c13..dda2cc7 100644 --- a/src/index.js +++ b/src/index.js @@ -18,6 +18,8 @@ const fflags = { enabled: (flag, callback) => this.has(flag) && callback(), disabled: (flag, callback) => !this.has(flag) && callback(), onetrust: [543, 770, 1136], + ads: [1339], + email: [1339], }; sampleRUM.baseURL = sampleRUM.baseURL || new URL('https://rum.hlx.page'); @@ -238,3 +240,32 @@ fflags.enabled('onetrust', () => { } } }); + +fflags.enabled('ads', () => { + const networks = { + google: /gclid|gclsrc|wbraid|gbraid/, + doubleclick: /dclid/, + microsoft: /msclkid/, + facebook: /fb(cl|ad_|pxl_)id/, + twitter: /tw(clid|src|term)/, + linkedin: /li_fat_id/, + pinterest: /epik/, + tiktok: /ttclid/, + }; + const params = Array.from(new URLSearchParams(window.location.search).keys()); + Object.entries(networks).forEach(([network, regex]) => { + params.filter((param) => regex.test(param)).forEach((param) => sampleRUM('paid', { source: network, target: param })); + }); +}); + +fflags.enabled('email', () => { + const networks = { + mailchimp: /mc_(c|e)id/, + marketo: /mkt_tok/, + + }; + const params = Array.from(new URLSearchParams(window.location.search).keys()); + Object.entries(networks).forEach(([network, regex]) => { + params.filter((param) => regex.test(param)).forEach((param) => sampleRUM('email', { source: network, target: param })); + }); +});