{"webLayers":[{"_id":"6605277f00542f58365c59b6","date_filter":{"enabled":false,"from_date":null,"to_date":1771199999},"trigger":{"include_pages":[{"type":"any"}],"exclude_pages":[{"url":"checkout","type":"contains"},{"url":"success","type":"contains"}]},"device_target":{"type":"any"},"frequency":"once_per_visit","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"682f03b11819105240761956","date_filter":{"enabled":false,"from_date":null,"to_date":null},"trigger":{"include_pages":[{"url":"https://www.joebrowns.co.uk/text-signup","type":"contains"}],"exclude_pages":null},"device_target":{"type":"any"},"frequency":"always","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"68da510721be3ecb40148456","date_filter":{"enabled":false,"from_date":null,"to_date":null},"trigger":{"include_pages":[{"url":"https://www.joebrowns.co.uk/","type":"exact"}],"exclude_pages":null},"device_target":{"type":"any"},"frequency":"once_per_visit","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"68dfa23d3bf103f5dc8d7161","date_filter":{"enabled":false,"from_date":null,"to_date":null},"trigger":{"include_pages":[{"url":"https://www.joebrowns.co.uk/email-sign-up","type":"contains"}],"exclude_pages":null},"device_target":{"type":"any"},"frequency":"always","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"690ca228b418c824a4ad6287","date_filter":{"enabled":false,"from_date":1756362600,"to_date":null},"trigger":{"include_pages":[{"type":"any"}],"exclude_pages":[{"url":"checkout","type":"contains"},{"url":"success","type":"contains"}]},"device_target":{"type":"any"},"frequency":"once_per_visit","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"690cb734bdf575e93e2d1dfe","date_filter":{"enabled":false,"from_date":1756362600,"to_date":null},"trigger":{"include_pages":[{"type":"any"}],"exclude_pages":[{"url":"checkout","type":"contains"},{"url":"success","type":"contains"}]},"device_target":{"type":"any"},"frequency":"once_per_visit","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"69807280ad22c11c61881b89","date_filter":{"enabled":false,"from_date":null,"to_date":null},"trigger":{"include_pages":[{"url":"success","type":"contains"}],"exclude_pages":null},"device_target":{"type":"any"},"frequency":"always","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"69b3bd53ff0836c48d926ab2","date_filter":{"enabled":true,"from_date":null,"to_date":1774742340},"trigger":{"include_pages":[{"url":"https://www.joebrowns.co.uk/win","type":"contains"}],"exclude_pages":null},"device_target":{"type":"any"},"frequency":"always","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"69b3f0fbde70430aa857dea7","date_filter":{"enabled":true,"from_date":1773468000,"to_date":1774742399},"trigger":{"include_pages":[{"url":"https://www.joebrowns.co.uk/womens","type":"exact"}],"exclude_pages":[{"url":"checkout","type":"contains"}]},"device_target":{"type":"any"},"frequency":"once_per_visit","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"69b816a4c9a3fd6ffc3842ae","date_filter":{"enabled":false,"from_date":null,"to_date":1771199999},"trigger":{"include_pages":[{"url":"https://www.joebrowns.co.uk/womens-clothing/womens-new-in?utm_source=facebook\u0026utm_medium=cpc\u0026utm_campaign=JBL+%7C+Prospecting+%7C+Advantage++Shopping\u0026utm_content=ad+%7C+Sales+%7C+Video+15+%7C+HiFi+%7C+Women%27s+Hero+Campaign+/+Extended+Sizes+%7C+Women%27s+%7C+SS26+Main+%7C+22/01/26\u0026fbclid=IwdGRjcAQLuX5leHRuA2FlbQEwAGFkaWQAAAZLN_gRD3NydGMGYXBwX2lkCjY2Mjg1NjgzNzkAAR7TAY8eIPAMOf6T8dNg1R_azpwxHVUzjCSkytjqn8_TAMByz4IOhfWWf-qPKg_aem_YPJTv_JNQr5NS2UkZPySPA\u0026audience=new_audience\u0026utm_id=6381999860231_v2_s10_e7473\u0026utm_term=6381999860231","type":"exact"},{"url":"https://www.joebrowns.co.uk/womens-clothing/womens-new-in?utm_source=facebook\u0026utm_medium=cpc\u0026utm_campaign=JBL+%7C+Nursery+%7C+Sales\u0026utm_content=ad+%7C+Sales+%7C+Static+%7C+HiFi+%7C+WF484+%2F+Save+On+Your+Next+Order+%7C+Women%27s+%7C+HS26+Nursery+%7C+30%2F03%2F26\u0026utm_id=6930510690631_v2_s255\u0026utm_term=6930510690631\u0026fbclid=IwY2xjawQ5tFRleHRuA2FlbQEwAGFkaWQAAAZRxBUFf3NydGMGYXBwX2lkEDIyMjAzOTE3ODgyMDA4OTIAAR4CNoEJOSQOenT2emWI219I4p3U3C7VOGTXlgAUAscbnVUKA1Xcl1v_YdOnew_aem_WNHnvOVQVPc00Uy9twj2gQ","type":"exact"},{"url":"https://www.joebrowns.co.uk/mens-clothing/mens-new-in?utm_source=facebook\u0026utm_medium=cpc\u0026utm_campaign=JBL+%7C+Nursery+%7C+Sales\u0026utm_content=ad+%7C+Sales+%7C+Static+%7C+HiFi+%7C+JA828+%2F+Save+On+Your+Next+Order+%7C+Men%27s+%7C+HS26+Nursery+%7C+30%2F03%2F26\u0026utm_id=6930510690631_v2_s255\u0026utm_term=6930510690631\u0026fbclid=IwY2xjawQ5tMRleHRuA2FlbQEwAGFkaWQAAAZRxAU3Z3NydGMGYXBwX2lkEDIyMjAzOTE3ODgyMDA4OTIAAR5TUU7xBP4XTJ6Z7xCMcIeCIzq6XOuVxZrsRsrNaq6J4fv9edlV2pNewkj-bw_aem_ZRv9MbltUtPP1_uoMB8Wjg","type":"exact"},{"url":"https://www.joebrowns.co.uk/womens-clothing/womens-new-in?utm_source=facebook\u0026utm_medium=cpc\u0026utm_campaign=JBL+%7C+Nursery+%7C+Sales\u0026utm_content=ad+%7C+Sales+%7C+Static+%7C+HiFi+%7C+WF513+%2F+%C2%A310+Off+2nd+Order+%7C+Women%27s+%7C+HS26+Nursery+%7C+30%2F03%2F26\u0026utm_id=6930510690631_v2_s255\u0026utm_term=6930510690631\u0026fbclid=IwY2xjawQ5tQtleHRuA2FlbQEwAGFkaWQAAAZRxCCzV3NydGMGYXBwX2lkEDIyMjAzOTE3ODgyMDA4OTIAAR4V14xCN8fc29uZtK_CKdSTNbAs8EpLOTnHqKk6n6rpul_obo6C3r4Lwt2uYQ_aem_hA2DoG65Hv7qFKXf2LHNlw","type":"exact"},{"url":"https://www.joebrowns.co.uk/mens-clothing/mens-new-in?utm_source=facebook\u0026utm_medium=cpc\u0026utm_campaign=JBL+%7C+Nursery+%7C+Sales\u0026utm_content=ad+%7C+Sales+%7C+Static+%7C+HiFi+%7C+SM906+%2F+%C2%A310+Off+2nd+Order+%7C+Men%27s+%7C+HS26+Nursery+%7C+30%2F03%2F26\u0026utm_id=6930510690631_v2_s255\u0026utm_term=6930510690631\u0026fbclid=IwY2xjawQ5tIpleHRuA2FlbQEwAGFkaWQAAAZRxBh1L3NydGMGYXBwX2lkEDIyMjAzOTE3ODgyMDA4OTIAAR7jLYl0xVpoVsIMuni-V67f0D7Xt4hPSrEiyUOjgwWhGzEk0RDNcuAK-XrIFA_aem_eL7-ehylP6iI1WeNvndDJA","type":"exact"},{"url":"https://www.joebrowns.co.uk/womens-clothing/womens-new-in?utm_source=facebook\u0026utm_medium=cpc\u0026utm_campaign=JBL+%7C+Nursery+%7C+Sales\u0026utm_content=ad+%7C+Sales+%7C+Static+%7C+HiFi+%7C+WJ803+%2F+Reorder+%26+Save+%7C+Women%27s+%7C+HS26+Nursery+%7C+30%2F03%2F26\u0026utm_id=6930510690631_v2_s255\u0026utm_term=6930510690631\u0026fbclid=IwY2xjawQ5ta1leHRuA2FlbQEwAGFkaWQAAAZRxCkNn3NydGMGYXBwX2lkEDIyMjAzOTE3ODgyMDA4OTIAAR70iqicPhMsgCt84uBCUWGrwh3Pinb9pQMLQ2AUZdCQZwU4OzvRjcymlwiQDQ_aem_zlJdFm6To8fPTBHYszf3Zw","type":"exact"},{"url":"https://www.joebrowns.co.uk/mens-clothing/mens-new-in?utm_source=facebook\u0026utm_medium=cpc\u0026utm_campaign=JBL+%7C+Nursery+%7C+Sales\u0026utm_content=ad+%7C+Sales+%7C+Static+%7C+HiFi+%7C+CV089+%2F+Reorder+%26+Save+%7C+Men%27s+%7C+HS26+Nursery+%7C+30%2F03%2F26\u0026utm_id=6930510690631_v2_s255\u0026utm_term=6930510690631\u0026fbclid=IwY2xjawQ5tWxleHRuA2FlbQEwAGFkaWQAAAZRjPv2L3NydGMGYXBwX2lkEDIyMjAzOTE3ODgyMDA4OTIAAR66DcQCw7NrNB6CasJMPwrByX9xUlUKBR5y0TMlCxb7Od21dHNd8ftmmPdaVQ_aem__phbin-YJHrEnQaRPNq8aA","type":"exact"}],"exclude_pages":[{"url":"checkout","type":"contains"},{"url":"success","type":"contains"}]},"device_target":{"type":"any"},"frequency":"once_per_visit","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]},{"_id":"6a0ab01c7fe9a058d136d200","date_filter":{"enabled":false,"from_date":null,"to_date":null},"trigger":{"include_pages":[{"url":"?br-notify-me-test=true","type":"contains"}],"exclude_pages":null},"device_target":{"type":"any"},"frequency":"always","uses_personalization":false,"data":"return (function insertBanner(data) {\ninsertBanner.inPreview = false;\ninsertBanner.sdk = window.exponea;\ninsertBanner.data = data;\ninsertBanner.html = \"\u003ca\\n    class=\\\"weblayer--blank\\\"\\n    href=\\\"#\\\"\\n\u003e\\n    \u003cbutton aria-label=\\\"Close\\\" class=\\\"close\\\"\u003e\\n        \u003csvg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"\u003e\\n            \u003cpath d=\\\"M2.99867 13L12.998 3\\\" stroke=\\\"rgba(250,250,250,0.7)\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/\u003e\\n            \u003cpath d=\\\"M12.9987 13L2.998 3\\\" stroke=\\\"rgba(250,250,250,0.7)\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/\u003e\\n        \u003c/svg\u003e\\n    \u003c/button\u003e\\n    \u003cdiv class=\\\"inner\\\"\u003e\\n        \u003ch6 class=\\\"header\\\"\u003e\\n            Default header text\\n        \u003c/h6\u003e\\n        \u003cp class=\\\"text\\\"\u003e\\n            Default body text\\n        \u003c/p\u003e\\n    \u003c/div\u003e\\n\u003c/a\u003e\\n\";\ninsertBanner.style = \".weblayer--blank {\\n  display: block;\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  width: 100%;\\n  min-height: 70px;\\n  z-index: 2147483000; /* close to the highest possible z-index */\\n  font-family: Arial, Helvetica, sans-serif;\\n  font-size: 12px;\\n  line-height: normal;\\n  text-decoration: inherit;\\n  text-align: center;\\n  cursor: pointer;\\n  background: #00b7db;\\n}\\n.weblayer--blank:hover, .weblayer--blank:active {\\n  text-decoration: inherit;\\n}\\n.weblayer--blank \u003e .close {\\n  /* inherits fs of 1rem defined in base styles */\\n  font-size: inherit;\\n  line-height: 1px;\\n  /* resets browser styles for button */\\n  color: transparent;\\n  background-color: transparent;\\n  top: 0;\\n  right: 0;\\n  padding: 0.5em;\\n  /* resets browser styles for button */\\n  border: 0;\\n  position: absolute;\\n  /* base class + 1 to prevent colliding of layers of clickable elements */\\n  z-index: 2147483001;\\n}\\n.weblayer--blank \u003e .close:hover {\\n  cursor: pointer;\\n}\\n.weblayer--blank \u003e .close:focus {\\n  outline: none;\\n}\\n.weblayer--blank \u003e .inner {\\n  flex-wrap: wrap;\\n  display: flex;\\n  width: 100%;\\n  flex-direction: column;\\n  align-items: center;\\n  justify-content: center;\\n}\\n.weblayer--blank \u003e .inner \u003e .header {\\n  font-size: 10px;\\n  font-weight: bold;\\n  font-family: inherit;\\n  text-transform: uppercase;\\n  color: #1c1733;\\n  margin: 15px;\\n}\\n.weblayer--blank \u003e .inner \u003e .text {\\n  font-size: 24px;\\n  font-weight: 600;\\n  color: #ffffff;\\n  font-family: inherit;\\n  margin: 15px;\\n  margin-top: 0;\\n}\";\ninsertBanner.script = function() { /**\n * Universal parameters\n */\nvar PARAM_showAfter = parseInt(\"0\", 10);\nvar PARAM_removeAfter = parseInt(\"0\", 10);\nvar PARAM_trigger = \"On entry\";\nvar PARAM_parentElement = \"body\";\n\n/**\n * Initialization\n */\nvar self = this;\n\nvar webLayerID = self.data.banner_id;\nvar WEB_LAYER_EVENT_STORAGE_KEY_PREFIX = \"__exponea_banner_event__\";\nvar localStorageEnabled = false;\ntry {\n    if (!window.localStorage) {\n        localStorageEnabled = false;\n    } else {\n        var key = \"__\" + webLayerID + \"_storage_test__\";\n        window.localStorage.setItem(key, key);\n        window.localStorage.removeItem(key);\n        localStorageEnabled = true;\n    }\n} catch (e) {\n    localStorageEnabled = false;\n}\n\n// Helper Id used to identify the banner on the website, not actual ID of the banner\nvar bannerSemiId = Math.random().toString(36).substring(5);\n\n// Used in onExit banners to mark if the banner was triggered already\nwindow['__exp_triggered-' + bannerSemiId] = false;\n\n// Resetting some of the parameters while previewing the banner in the app to easily see its appearance\nif (self.inPreview) {\n    // reset the show delay while editing the banner in editor\n    PARAM_showAfter = 0;\n\n    // always show the banner right away\n    PARAM_trigger = 'On entry';\n}\n\n/**\n * Basic functions\n */\n\n/**\n * Function used to register listener for the trigger that will display the banner\n */\nfunction registerStartTrigger() {\n    if (PARAM_trigger === 'On exit') {\n        document.body.addEventListener('mouseout', onExitMouseOutHandler);\n    } else if (PARAM_trigger === 'On scroll') {\n        window.addEventListener('scroll', scheduleShowBanner);\n    } else {\n        // If 'On entry' or anything unknown start the banner right away\n        scheduleShowBanner();\n    }\n}\n\n/**\n * This function starts the showAfter timer and then displays the banner\n */\nfunction scheduleShowBanner() {\n    window.removeEventListener('scroll', scheduleShowBanner);\n\n    setTimeout(function() {\n        // Track show event after timer expired\n        // trackEvent('show', false);\n\n        // Create and display the banner\n        requestAnimationFrame(createBanner);\n\n        // If removeAfter is provided start the removal timer\n        if (PARAM_removeAfter \u003e 0) {\n            setTimeout(function() {\n                removeBanner();\n            }, PARAM_removeAfter);\n        }\n    }, PARAM_showAfter);\n}\n\n/**\n * Function used to insert the banner contents into the HTML and adding basic functionality\n */\nfunction createBanner() {\n    var placeholder = document.createElement('div');\n    placeholder.insertAdjacentHTML('afterbegin', self.html);\n\n    // get the banner reference\n    var banner = placeholder.firstElementChild;\n\n    // add close functionality to the close button\n    banner.querySelector('.close').onclick = handleCloseButtonClick;\n\n    // insert banner CSS into the website\n    banner.insertAdjacentHTML('afterbegin', '\u003cstyle\u003e' + self.style + '\u003c/style\u003e');\n\n    attachBannerToDom(banner);\n}\n\n/**\n * Function used to insert the banner HTML to the DOM\n * @param banner - html content of the banner\n */\nfunction attachBannerToDom(banner) {\n    var parentElement = document.querySelector(PARAM_parentElement);\n\n    // use shadow DOM if browser suports it\n    if (parentElement.attachShadow) {\n        createBannerInShadowDom(banner, parentElement);\n    } else {\n        parentElement.insertAdjacentElement('afterbegin', banner);\n        self.banner = banner;\n    }\n}\n\n/**\n * Creates banner in shadow dom\n * @param parentElement\n */\nfunction createBannerInShadowDom(banner, parentElement) {\n    var shadowHost = document.createElement('div');\n    shadowHost.innerHTML = getFontsImport();\n\n    var shadowRoot = shadowHost.attachShadow({ mode: 'open' });\n    shadowRoot.appendChild(banner);\n    parentElement.insertAdjacentElement('afterbegin', shadowHost);\n    self.banner = shadowHost;\n}\n\n/**\n * Function used to add fonts imports and font faces to element\n * The font import does not work inside shadow DOM, it has to be declared outside\n * @returns string - style tag with fonts import\n */\nfunction getFontsImport() {\n    var importsResult = self.style.match(/@import url\\([\"'].+?['\"]\\)/g);\n    var fontFacesResult = self.style.match(/@font-face( |\\n)*{(.|\\s)+?}/g);\n\n    var imports = importsResult \u0026\u0026 importsResult.length ? importsResult.join(';') : '';\n    var fontFaces = fontFacesResult \u0026\u0026 fontFacesResult.length ? fontFacesResult.join('') : '';\n    var fonts = (imports ? imports + ';' : '') + fontFaces;\n\n    return imports || fontFaces ? '\u003cstyle\u003e' + fonts + '\u003c/style\u003e' : '';\n}\n\n/**\n * Function used to remove the banner from the website\n */\nfunction removeBanner() {\n    if (self.banner \u0026\u0026 self.banner.parentNode) {\n        self.banner.parentNode.removeChild(self.banner);\n    }\n}\n\n/**\n * Function triggered when the closing button is clicked\n * @param event - browser click Event\n * @returns {boolean}\n */\nfunction handleCloseButtonClick(event) {\n    removeBanner();\n    // trackEvent('close', true);\n\n    // Stop the click event propagation onto parent HTML elements\n    event.preventDefault();\n    if (event.stopPropagation) {\n        event.stopPropagation();\n    } else {\n        event.cancelBubble = true;\n    }\n\n    return false;\n}\n\n/**\n * Function used to track single action\n * @param action - string\n * @param interactive - boolean\n */\nfunction trackEvent(action, interactive) {\n    if (action === 'show') {\n        trackAction('last_show');\n    }\n\n    if (interactive) {\n        trackAction('last_interaction')\n    }\n\n    self.sdk.track('banner', getEventProperties(action, interactive));\n}\n\n/**\n * Function used to add action tracking to element\n * @param link - element\n * @param action - string\n * @param interactive - boolean\n */\nfunction trackLink(link, action, interactive) {\n    var linkClickHandler = function() {\n        if (interactive) {\n            trackAction('last_interaction');\n        }\n    }\n    link.addEventListener('click', linkClickHandler);\n\n    var eventData = getEventProperties(action, interactive);\n    eventData.link = link.href;\n    self.sdk.trackLink(link, 'banner', eventData);\n}\n\n/**\n * Default attributes tracked with every banner event\n * @param action - string\n * @param interactive - boolean\n * @returns object - object to be tracked\n */\nfunction getEventProperties(action, interactive) {\n    return {\n        action: action,\n        action_id: self.data.node_id,\n        banner_id: self.data.banner_id,\n        banner_name: self.data.banner_name,\n        banner_type: self.data.banner_type,\n        campaign_id: self.data.campaign_id,\n        variant_id: self.data.variant_id,\n        variant_name: self.data.variant_name,\n        variant_origin: self.data.contextual_personalization != null ? 'contextual personalisation' : 'ABtest',\n        interaction: interactive !== false,\n    };\n}\n\n/**\n * Function used to start banners with onExit trigger\n * @param event - browser mouse event\n */\nfunction onExitMouseOutHandler(event) {\n    event = event ? event : window.event;\n    var vpWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    if (event.clientX \u003e= (vpWidth)) {\n        return;\n    }\n    if (event.clientY \u003e= 50) {\n        return;\n    }\n    var from = event.relatedTarget || event.toElement;\n\n    if (!from \u0026\u0026 !window['__exp_triggered-' + bannerSemiId]) {\n        window['__exp_triggered-' + bannerSemiId] = true;\n        scheduleShowBanner();\n    }\n}\n\n/**\n * Track an action with current time into localStorage if localStorage exists.\n * @param action - action name\n */\nfunction trackAction(action) {\n    if (!localStorageEnabled) {\n        return;\n    }\n\n    var actionKey = WEB_LAYER_EVENT_STORAGE_KEY_PREFIX + webLayerID + '_' + action;\n    window.localStorage.setItem(actionKey, new Date().valueOf().toString());\n}\n\n/**\n * Register the start trigger and return required removal function\n */\n\nregisterStartTrigger();\nreturn {\n    remove: removeBanner,\n};\n };\ninsertBanner.remove = (insertBanner.script.call(insertBanner) || {} ).remove;\ninsertBanner.contextual_personalization = {};\nreturn insertBanner;\n})({\"banner_id\": \"6a0ab01c7fe9a058d136d200\", \"banner_name\": null, \"banner_type\": \"medium_rectangle\", \"banner_group\": \"\", \"variant_id\": 0, \"variant_name\": \"Variant A\"});","variables_target":null,"page_vars":[]},{"_id":"6a0ee0951790dab11240b6e8","date_filter":{"enabled":true,"from_date":null,"to_date":1779749999},"trigger":{"include_pages":[{"type":"any"}],"exclude_pages":[{"url":"checkout","type":"contains"}]},"device_target":{"type":"any"},"frequency":"once_per_visit","uses_personalization":true,"data":"","variables_target":null,"page_vars":[]}],"experiments":[{"_id":"67d42acc0811d30f98245188","date_filter":{"enabled":false,"from_date":null,"to_date":null},"trigger":{"include_pages":[{"type":"regex","regex":"https:\\/\\/www\\.joebrowns\\.co\\.uk\\/[a-z\\-]+-([A-Za-z]{2}\\d{3})"}],"exclude_pages":null},"trigger_event":{"type":"page_load"},"device_target":{"type":"any"},"frequency":"always","variables_target":null,"page_vars":[]},{"_id":"67f66d24ac88aecc9b7e6957","date_filter":{"enabled":false,"from_date":null,"to_date":null},"trigger":{"include_pages":[{"url":"cw-recs-test=true","type":"contains"}],"exclude_pages":null},"trigger_event":{"type":"page_load"},"device_target":{"type":"any"},"frequency":"always","variables_target":null,"page_vars":[]}],"constantManagedTags":[{"uses_overlay":false,"type":"js","parametrized_definition":"// /* Action required: Paste your view-count weblayer identified into the \"Banner Id\" field above */\r\n\r\nvar m = location.href.match(/https:\\/\\/www\\.joebrowns\\.co\\.uk\\/[a-z\\-]+-([A-Za-z]{2}\\d{3})/i);\r\nvar product_id = m[1].toUpperCase();\r\nif (product_id) {\r\n    exponea.showBanner('68ad6adce43eb07c58b5b4f3', { \"product_id\": product_id });\r\n}\r\n","trigger":{"include_pages":[{"type":"any"}],"exclude_pages":null},"_id":"679b9ecb9cb5089efba21b98"},{"uses_overlay":false,"type":"js","parametrized_definition":"//6937e01f6d13dd02e1ea6d9c - Weblayer Banner ID\r\nlet products = [];\r\ndocument.querySelectorAll('#cart-drawer \u003e ul li \u003e a').forEach(el =\u003e {\r\n\tif (!products.includes(el.href.substring(el.href.length-5).toUpperCase())) {\r\n\t\tproducts.push(el.href.substring(el.href.length-5).toUpperCase());\r\n\t}\r\n});\r\nproducts.map(product =\u003e {\r\n\texponea.showBanner('69b7dd599ea4addd0db6801b', { \r\n    \t\"product_id\": `${product}` \r\n\t});\r\n})\r\n","trigger":{"include_pages":[{"type":"any"}],"exclude_pages":null},"_id":"69b7de71e3ed089e404e0e12"},{"uses_overlay":false,"type":"js","parametrized_definition":"// /* Action required: Paste your view-count weblayer identified into the \"Banner Id\" field above */\r\n\r\nvar m = location.href.match(/https:\\/\\/www\\.joebrowns\\.co\\.uk\\/[a-z\\-]+-([A-Za-z]{2}\\d{3})/i);\r\nvar product_id = m[1].toUpperCase();\r\nif (product_id) {\r\n    exponea.showBanner('69b90d0c9124d479b220488b', { \"product_id\": product_id });\r\n}\r\n","trigger":{"include_pages":[{"type":"any"}],"exclude_pages":null},"_id":"69b7deabe3ed089e404e1aa9"},{"uses_overlay":false,"type":"js","parametrized_definition":"var product_ids = window.checkoutConfig.exponea_items.product_ids;\r\nexponea.showBanner('69fb13df1ea5cb6bde0908a0', { \"product_ids\":product_ids , \"element_to_append\": 'Basket' })","trigger":{"include_pages":[{"url":"https://www.joebrowns.co.uk/checkout/cart/","type":"exact"}],"exclude_pages":null},"_id":"6a044c92af5c1eefd10d545a"}],"vars":{"data":[]}}