Examples

Delhaize API Example

API Data

Sponsored
Sponsored
Sponsored
Sponsored
[
  {
    "dm": "dmDMGo203g0cr264;ADV441",
    "adType": "flex",
    "adFormat": "flex",
    "timeStamp": "1740643936000",
    "share": "0",
    "priority": "2",
    "orderId": "203",
    "adspaceId": "680",
    "adspaceKey": "",
    "body": "",
    "trackingUrl": "",
    "tracker": "https://digitalcontent1.delhaize.be/track/12847//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "extraField1": "",
    "extraField2": "",
    "altText": "",
    "height": "1",
    "width": "1",
    "tag": "<!DOCTYPE html><html lang='en'><head>  <title>Awareness banner</title>  <meta charset='UTF-8' />  <meta name='viewport' content='width=device-width, initial-scale=1.0' />  <style id='styles'>    :root {      --attrSize: 1;    }    html,    body {      height: 100%;      width: 100%;    }    html,    body,    body * {      font-family: 'Lato', sans-serif;      margin: 0;      padding: 0;      box-sizing: border-box;      text-decoration: none;      overflow: hidden;    }    .banner {      border-radius: 8px;      background-color: #e2eaad;      color: #000;      width: 100%;      height: 100%;      display: flex;      position: relative;      overflow: hidden;      user-select: none;      -moz-user-select: none;      -khtml-user-select: none;      -webkit-user-select: none;      -o-user-select: none;    }    .banner:hover {      cursor: pointer;    }    .banner__left {      width: 40%;      display: flex;      flex-direction: column;      gap: 10px;      padding-top: 20px;      padding-bottom: 20px;      padding-left: 20px;      justify-content: space-between;    }    .banner__left__title {      line-height: 15px;      font-size: 14px;      font-weight: bold;      font-family: 'Breve Title';      overflow: visible;    }    .banner__left__title span {      font-family: 'Breve Title';    }    .chevron {      width: 1.2em;      height: 1.2em;      vertical-align: middle;    }    .banner__left__cta {      background-color: transparent;      outline: none;      border: none;      padding: 0;      border-radius: 4px;      color: #000;      align-self: flex-start;      font-size: 14px;      display: none;      font-weight: bold;      display: none;    }    .banner__left__legal {      font-size: 8px;      line-height: 10px;      font-weight: normal;      color: #000;      margin-top: 10px;    }    .banner__center {      width: 20%;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      position: relative;      gap: 10px;    }    .banner__center img {      max-width: 80%;      max-height: 60%;      width: auto;      height: auto;      object-fit: contain;    }    .banner__right {      width: 40%;      background-size: cover !important;      background-repeat: no-repeat;      background-position: center;    }    img.contain {      transform: scale(1) !important;    }    .banner__right img {      width: 100%;      height: 100%;      object-fit: contain;      transform: scale(1.4) translateX(18%) translateY(11%);    }    .banner__disclaimer {      display: none;      color: white;      background-color: black;      position: absolute;      bottom: 0;      width: 100%;      text-align: center;      font-size: 10px;      padding: 10px 0;    }    .banner__with_disclaimer {      padding-bottom: 25px;    }    /* > 361px */    @media (min-width: 361px) {      .banner__left {        justify-content: space-between;      }      .banner__left__title .chevron {        display: none;      }    }    /* > 488px */    @media (min-width: 488px) {      .banner__with_disclaimer {        padding-bottom: 30px;      }    }    /* 371px - 488px */    @media (min-width: 371px) and (max-width: 488px) {      .banner__left__title {        line-height: 20px;        font-size: 16px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }    }    @container (min-width: 371px) and (max-width: 488px) {      .banner__right img {        transform: scale(1.4) translateX(10%) translateY(11%);      }    }    /* 489px - 783px */    @media (min-width: 489px) and (max-width: 783px) {      .banner__left__title {        font-size: 22px;        line-height: 26px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }            .banner__left__cta {        display: block;        font-size: 15px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.4) translateX(18%);        object-fit: contain;      }    }    /* > 784px */    @media (min-width: 784px) {      .banner__left__title {        font-size: 28px;        line-height: 28px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__left__cta {        display: block;        font-size: 19px;      }      .banner__right img {        transform: scale(1.6) translateX(13%) translateY(11%);        object-fit: contain;      }    }    /* > 992px */    @media (min-width: 992px) {      .banner__center {        flex-direction: row;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.6) translateX(9%) translateY(11%);        object-fit: contain;      }    }  </style></head><body>  <a href='#' target='_top' id='banner' class='banner'>    <div class='banner__left'>      <h1 id='title' class='banner__left__title'></h1>      <div>        <div id='cta' class='banner__left__cta'></div>        <div id='legal' class='banner__left__legal'></div>      </div>    </div>    <div id='attributes' class='banner__center'></div>    <div class='banner__right'>      <img id='product' src='#' alt='Product Image' />    </div>    <div id='disclaimer' class='banner__disclaimer'></div>  </a>  <script>    function getAccessibleColor(hexColor) {      const r = parseInt(hexColor.slice(1, 3), 16);      const g = parseInt(hexColor.slice(3, 5), 16);      const b = parseInt(hexColor.slice(5, 7), 16);      const luminance = 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2;      const threshold = 0.179;      return luminance < threshold ? '#FFFFFF' : '#000000';    };    let productImage = 'https://digitalcontent2.delhaize.be/pool/lib/264_2nd_1.jpg';    let backgroundColor = '';    const customBackgroundColor = '#003970';    let textColor = '#000000';    if (customBackgroundColor && customBackgroundColor.length > 0) {      if (customBackgroundColor[0] !== '#') {        customBackgroundColor = '#' + customBackgroundColor;      };      backgroundColor = customBackgroundColor;    };    textColor = getAccessibleColor(backgroundColor);        const fonts = [      { name: 'Breve Title', file: 'BreveTitle-Bold.woff2', weight: 'bold' },      { name: 'Lato', file: 'Lato-Regular.woff2', weight: 'normal' },      { name: 'Lato', file: 'Lato-Bold.woff2', weight: 'bold' }    ];    const parentUrl = window?.parent?.location?.href;    const style = document.getElementById('styles');    fonts.forEach(font => {      let baseFontUrl = 'https://static.delhaize.be/static/next/fonts/';      if (parentUrl && parentUrl.includes('qa1')) {        baseFontUrl = 'https://static-qa1.delhaize.be/static/next/fonts/';      } else if (parentUrl && parentUrl.includes('qa2')) {        baseFontUrl = 'https://static-qa2.delhaize.be/static/next/fonts/';      }      const fontFace = `        @font-face {          font-family: \\'${font.name}\\';          src: url(${baseFontUrl + font.file});          font-weight: ${font.weight};        }      `;      style.appendChild(document.createTextNode(fontFace));    });    const textContent = {      'nl': {        'title': 'Win een diner ter waarde van &euro;150*',        'cta': 'Ik neem deel!',        'legal': '*Bij aankoop van een pack BRU&reg; PET 6x1.25L',        'disclaimer': 'Alcoholmisbruik schaadt de gezondheid.'      },      'fr': {        'title': 'Gagnez un d&icirc;ner d&rsquo;une valeur de 150&euro;*',        'cta': 'Je participe !',        'legal': '*&Agrave; l&rsquo;achat d&rsquo;un pack BRU&reg; PET 6x1.25L',        'disclaimer': 'L’abus d’alcool nuit à la santé.'      },      'en': {        'title': 'Gagnez un d&icirc;ner d&rsquo;une valeur de 150&euro;*',        'cta': 'Je participe !',        'legal': '*&Agrave; l&rsquo;achat d&rsquo;un pack BRU&reg; PET 6x1.25L',        'disclaimer': 'Alcohol abuse harms your health.'      }    };    const imageContent = {      'nl': {        'attribute': ''      },      'fr': {        'attribute': ''      },      'en': {        'attribute': ''      }    };    let urlContent = {      'nl': {        'web': 'https://www.delhaize.be/spadel-bru',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD17&amp;cmsPageTitle=Bru'      },      'fr': {        'web': 'https://www.delhaize.be/spadel-bru',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD17&amp;cmsPageTitle=Bru'      },      'en': {        'web': 'https://www.delhaize.be/spadel-bru',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD17&amp;cmsPageTitle=Bru'      }    };    if ('true' !== 'false') {      for (const [key, value] of Object.entries(urlContent)) {        urlContent[key] = {          'web': 'https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR' + value['web'],          'app': value['app']        };      }    };    const adheseLanguage = 'nl';    const language = adheseLanguage.includes('adheseReplace') ? parent?.window?.adobeDataLayer?.[0]?.page?.pageInfo?.language : adheseLanguage;    const title = (language && textContent[language]?.['title']) ? textContent[language]['title'] : textContent['fr']['title'];    const cta = (language && textContent[language]?.['cta']) ? textContent[language]['cta'] : textContent['fr']['cta'];    const legalLine = (language && textContent[language]?.['legal']) ?  textContent[language]['legal'] : textContent['fr']['legal'];    const clickUrlApp = (language && urlContent[language]?.['app']) ? urlContent[language]['app'] : urlContent['fr']['app'];    const clickUrlWeb = (language && urlContent[language]?.['web']) ? urlContent[language]['web'] : urlContent['fr']['web'];    const disclaimer = (language && textContent[language]?.['disclaimer']) ?  textContent[language]['disclaimer'] : textContent['fr']['disclaimer'];    let attribute = (language && imageContent[language]?.['attribute']) ? imageContent[language]['attribute'] : imageContent['fr']['attribute'];    if (attribute === '') {      attribute = imageContent['fr']['attribute'];    }    let attributes = [];    attributes.push(attribute);    const attributeSizes = {      attr1Size: 'large',    };    function updateImagePosition(position) {      if (containProductImage) return;      let translateY = '11';      if (position === 'top_focused') {        translateY = '20';      } else if (position === 'bottom_focused') {        translateY = '-20';      };      let transform = '';      let innerWidth = window.innerWidth;      if (innerWidth < 361) {        translateY = translateY / 2;        transform = 'scale(1.4) translateX(18%) translateY(' + translateY + '%)';      } else if (innerWidth < 489) {        transform = 'scale(1.4) translateX(10%) translateY(' + translateY + '%)';      } else if (innerWidth < 992) {        transform = 'scale(1.6) translateX(13%) translateY(' + translateY + '%)';      } else {        transform = 'scale(1.6) translateX(9%) translateY(' + translateY + '%)';      };      let productImg = document.querySelector('.banner__right img');      productImg.style.transform = transform;    }    let productImagePosition;    if ('' === 'top_focused') {      productImagePosition = 'top_focused';    } else if ('' === 'bottom_focused') {      productImagePosition = 'bottom_focused';    } else {      productImagePosition = 'centered';    }    const containProductImage = '' === 'full_view';    if (containProductImage) {      document.querySelector('#product').classList.add('contain');      document.querySelector('#product').style.transform = 'scale(1)';    }    for (const [key, value] of Object.entries(attributeSizes)) {      if (value === 'large') {        document.documentElement.style.setProperty(`--${key}`, '1');      } else {        document.documentElement.style.setProperty(`--${key}`, '1.25');      }    }    const banner = document.querySelector('#banner');    const titleEl = document.querySelector('#title');    const ctaEl = document.querySelector('#cta');    const legalLineEl = document.querySelector('#legal');    const disclaimerEl = document.querySelector('#disclaimer');    const productImageEl = document.querySelector('#product');    const attributesEl = document.querySelector('#attributes');    banner.style.backgroundColor = backgroundColor;    banner.style.color = textColor;    ctaEl.style.color = textColor;    legalLineEl.style.color = textColor;    productImageEl.src = productImage;    if (legalLine && legalLine.length > 0) legalLineEl.innerHTML = legalLine;    if ('' === 'true') {      banner.classList.add('banner__with_disclaimer');      disclaimerEl.style.cssText = 'display: block';      disclaimerEl.innerHTML = disclaimer;    }    const withoutLastWord = (word, text) => {      const lastIndex = text.lastIndexOf(word);      if (lastIndex === -1) return text;      const before = text.slice(0, lastIndex);      const after = text.slice(lastIndex + word.length);      return before + after;    };    const addChevron = (element) => {      const lastWord = element.innerHTML.split(' ').pop();      const spanEl = document.createElement('span');      spanEl.style.whiteSpace = 'nowrap';      spanEl.innerHTML = lastWord;      spanEl.innerHTML += `<svg class='chevron' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' ><path stroke-linecap='round' stroke-linejoin='round' d='M8.25 4.5l7.5 7.5-7.5 7.5' /></svg>`;      element.innerHTML = withoutLastWord(lastWord, element.innerHTML);      element.appendChild(spanEl);    };    ctaEl.innerHTML = cta;    addChevron(ctaEl);    titleEl.innerHTML = title;    addChevron(titleEl);    attributes.forEach((attribute, index) => {      if (attribute === '') return;      const attributeEl = document.createElement('img');      attributeEl.src = attribute;      attributeEl.alt = 'Promotion attribute';      attributesEl.appendChild(attributeEl);    });    let onWeb = window.top.location.href.includes('delhaize.be');    if (onWeb) {      document.getElementById('banner').href = clickUrlWeb;      document.getElementById('banner').addEventListener('click', function () {        const helper = window?.parent?.gambit?.helper;        const info = {           'slot': '12',          'clickUrl': clickUrlWeb,          'title': title,          'elementType': 'banner'        };        if (helper) helper.fireBrowserEvent('adheseAdClicked', info);      });    } else {      if (!productImage.includes('//pool/')) {        productImage = productImage + '.width.400';      }      const webView = window.ReactNativeWebView;      const bannerUrl = webView ? '#' : clickUrlApp;      const postMessage = false;      document.getElementById('banner').href = bannerUrl  || '#';      if ('true' !== 'false') {        document.getElementById('banner').addEventListener('click', function () {          if (webView && postMessage) {            data = { 'deeplink': clickUrlApp, 'clickTag': 'https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR', 'type': 'click' };            webView.postMessage(JSON.stringify(data));          } else {            var xhttp = new XMLHttpRequest();            xhttp.open('GET', 'https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR', true);            xhttp.send();          }        });      }    };    window.onload = function () {      updateImagePosition(productImagePosition);      if (attributes.length === 0 || attributes.every(attr => attr === '')) {        document.querySelector('.banner__center').style.cssText = 'display: none !important';        document.querySelector('.banner__left').style.cssText = 'width: 50%; padding-right: 8px';        document.querySelector('.banner__right').style.cssText = 'width: 50%;';      }      const imageIsBackground = 'true' === 'true';      if (imageIsBackground) {        document.querySelector('.banner__right').style.cssText += 'background-image: url(' + productImage + ');';        document.querySelector('#product').style.cssText = 'display: none';      }    };    window.addEventListener('resize', function () {      updateImagePosition(productImagePosition);    });  </script></body></html>",
    "tagUrl": "https://digitalcontent2.delhaize.be/pool/lib/264_0.advar",
    "heightLarge": "400",
    "widthLarge": "800",
    "libId": "264",
    "id": "12847",
    "advertiserId": "441",
    "orderProperty": "",
    "ext": "advar",
    "swfSrc": "https://digitalcontent2.delhaize.be/pool/lib/264_0.advar",
    "url": "https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR",
    "clickTag": "https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR",
    "swfSrc2nd": "https://digitalcontent2.delhaize.be/pool/lib/264_2nd_1.jpg",
    "swfSrc3rd": "",
    "swfSrc4th": "",
    "poolPath": "https://digitalcontent2.delhaize.be/pool/lib/",
    "comment": "",
    "adDuration": "0.0",
    "adDuration2nd": "0.0",
    "adDuration3rd": "0.0",
    "adDuration4th": "0.0",
    "orderName": "260.015.2025 - Spadel - Bru - Online Visibility Large ",
    "creativeName": "Brand display - Spadel",
    "deliveryMultiples": "exclusive_on_creative",
    "deliveryGroupId": "o203g0cr264",
    "adspaceStart": "1740610800000",
    "adspaceEnd": "1741820399000",
    "swfSrc5th": "",
    "swfSrc6th": "",
    "adDuration5th": "0.0",
    "adDuration6th": "0.0",
    "width3rd": "0",
    "width4th": "0",
    "width5th": "0",
    "width6th": "0",
    "height3rd": "0",
    "height4th": "0",
    "height5th": "0",
    "height6th": "0",
    "slotName": "delhaize-be_home-flex",
    "slotID": "12",
    "impressionCounter": "https://digitalcontent1.delhaize.be/track/12847//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "trackedImpressionCounter": "https://digitalcontent1.delhaize.be/track/12847//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "viewableImpressionCounter": "https://digitalcontent1.delhaize.be/track/12847-Adhese_IABview/sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "additionalCreatives": [
      {
        "dm": "dmDMGo203g0cr264;ADV441",
        "adType": "flex",
        "adFormat": "flex",
        "timeStamp": "1740643936000",
        "share": "0",
        "priority": "2",
        "orderId": "203",
        "adspaceId": "680",
        "adspaceKey": "",
        "body": "",
        "trackingUrl": "",
        "tracker": "https://digitalcontent1.delhaize.be/track/12847//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "extraField1": "",
        "extraField2": "",
        "altText": "",
        "height": "1",
        "width": "1",
        "tag": "<!DOCTYPE html><html lang='en'><head>  <title>Awareness banner</title>  <meta charset='UTF-8' />  <meta name='viewport' content='width=device-width, initial-scale=1.0' />  <style id='styles'>    :root {      --attrSize: 1;    }    html,    body {      height: 100%;      width: 100%;    }    html,    body,    body * {      font-family: 'Lato', sans-serif;      margin: 0;      padding: 0;      box-sizing: border-box;      text-decoration: none;      overflow: hidden;    }    .banner {      border-radius: 8px;      background-color: #e2eaad;      color: #000;      width: 100%;      height: 100%;      display: flex;      position: relative;      overflow: hidden;      user-select: none;      -moz-user-select: none;      -khtml-user-select: none;      -webkit-user-select: none;      -o-user-select: none;    }    .banner:hover {      cursor: pointer;    }    .banner__left {      width: 40%;      display: flex;      flex-direction: column;      gap: 10px;      padding-top: 20px;      padding-bottom: 20px;      padding-left: 20px;      justify-content: space-between;    }    .banner__left__title {      line-height: 15px;      font-size: 14px;      font-weight: bold;      font-family: 'Breve Title';      overflow: visible;    }    .banner__left__title span {      font-family: 'Breve Title';    }    .chevron {      width: 1.2em;      height: 1.2em;      vertical-align: middle;    }    .banner__left__cta {      background-color: transparent;      outline: none;      border: none;      padding: 0;      border-radius: 4px;      color: #000;      align-self: flex-start;      font-size: 14px;      display: none;      font-weight: bold;      display: none;    }    .banner__left__legal {      font-size: 8px;      line-height: 10px;      font-weight: normal;      color: #000;      margin-top: 10px;    }    .banner__center {      width: 20%;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      position: relative;      gap: 10px;    }    .banner__center img {      max-width: 80%;      max-height: 60%;      width: auto;      height: auto;      object-fit: contain;    }    .banner__right {      width: 40%;      background-size: cover !important;      background-repeat: no-repeat;      background-position: center;    }    img.contain {      transform: scale(1) !important;    }    .banner__right img {      width: 100%;      height: 100%;      object-fit: contain;      transform: scale(1.4) translateX(18%) translateY(11%);    }    .banner__disclaimer {      display: none;      color: white;      background-color: black;      position: absolute;      bottom: 0;      width: 100%;      text-align: center;      font-size: 10px;      padding: 10px 0;    }    .banner__with_disclaimer {      padding-bottom: 25px;    }    /* > 361px */    @media (min-width: 361px) {      .banner__left {        justify-content: space-between;      }      .banner__left__title .chevron {        display: none;      }    }    /* > 488px */    @media (min-width: 488px) {      .banner__with_disclaimer {        padding-bottom: 30px;      }    }    /* 371px - 488px */    @media (min-width: 371px) and (max-width: 488px) {      .banner__left__title {        line-height: 20px;        font-size: 16px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }    }    @container (min-width: 371px) and (max-width: 488px) {      .banner__right img {        transform: scale(1.4) translateX(10%) translateY(11%);      }    }    /* 489px - 783px */    @media (min-width: 489px) and (max-width: 783px) {      .banner__left__title {        font-size: 22px;        line-height: 26px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }            .banner__left__cta {        display: block;        font-size: 15px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.4) translateX(18%);        object-fit: contain;      }    }    /* > 784px */    @media (min-width: 784px) {      .banner__left__title {        font-size: 28px;        line-height: 28px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__left__cta {        display: block;        font-size: 19px;      }      .banner__right img {        transform: scale(1.6) translateX(13%) translateY(11%);        object-fit: contain;      }    }    /* > 992px */    @media (min-width: 992px) {      .banner__center {        flex-direction: row;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.6) translateX(9%) translateY(11%);        object-fit: contain;      }    }  </style></head><body>  <a href='#' target='_top' id='banner' class='banner'>    <div class='banner__left'>      <h1 id='title' class='banner__left__title'></h1>      <div>        <div id='cta' class='banner__left__cta'></div>        <div id='legal' class='banner__left__legal'></div>      </div>    </div>    <div id='attributes' class='banner__center'></div>    <div class='banner__right'>      <img id='product' src='#' alt='Product Image' />    </div>    <div id='disclaimer' class='banner__disclaimer'></div>  </a>  <script>    function getAccessibleColor(hexColor) {      const r = parseInt(hexColor.slice(1, 3), 16);      const g = parseInt(hexColor.slice(3, 5), 16);      const b = parseInt(hexColor.slice(5, 7), 16);      const luminance = 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2;      const threshold = 0.179;      return luminance < threshold ? '#FFFFFF' : '#000000';    };    let productImage = 'https://digitalcontent2.delhaize.be/pool/lib/264_2nd_1.jpg';    let backgroundColor = '';    const customBackgroundColor = '#003970';    let textColor = '#000000';    if (customBackgroundColor && customBackgroundColor.length > 0) {      if (customBackgroundColor[0] !== '#') {        customBackgroundColor = '#' + customBackgroundColor;      };      backgroundColor = customBackgroundColor;    };    textColor = getAccessibleColor(backgroundColor);        const fonts = [      { name: 'Breve Title', file: 'BreveTitle-Bold.woff2', weight: 'bold' },      { name: 'Lato', file: 'Lato-Regular.woff2', weight: 'normal' },      { name: 'Lato', file: 'Lato-Bold.woff2', weight: 'bold' }    ];    const parentUrl = window?.parent?.location?.href;    const style = document.getElementById('styles');    fonts.forEach(font => {      let baseFontUrl = 'https://static.delhaize.be/static/next/fonts/';      if (parentUrl && parentUrl.includes('qa1')) {        baseFontUrl = 'https://static-qa1.delhaize.be/static/next/fonts/';      } else if (parentUrl && parentUrl.includes('qa2')) {        baseFontUrl = 'https://static-qa2.delhaize.be/static/next/fonts/';      }      const fontFace = `        @font-face {          font-family: \\'${font.name}\\';          src: url(${baseFontUrl + font.file});          font-weight: ${font.weight};        }      `;      style.appendChild(document.createTextNode(fontFace));    });    const textContent = {      'nl': {        'title': 'Win een diner ter waarde van &euro;150*',        'cta': 'Ik neem deel!',        'legal': '*Bij aankoop van een pack BRU&reg; PET 6x1.25L',        'disclaimer': 'Alcoholmisbruik schaadt de gezondheid.'      },      'fr': {        'title': 'Gagnez un d&icirc;ner d&rsquo;une valeur de 150&euro;*',        'cta': 'Je participe !',        'legal': '*&Agrave; l&rsquo;achat d&rsquo;un pack BRU&reg; PET 6x1.25L',        'disclaimer': 'L’abus d’alcool nuit à la santé.'      },      'en': {        'title': 'Gagnez un d&icirc;ner d&rsquo;une valeur de 150&euro;*',        'cta': 'Je participe !',        'legal': '*&Agrave; l&rsquo;achat d&rsquo;un pack BRU&reg; PET 6x1.25L',        'disclaimer': 'Alcohol abuse harms your health.'      }    };    const imageContent = {      'nl': {        'attribute': ''      },      'fr': {        'attribute': ''      },      'en': {        'attribute': ''      }    };    let urlContent = {      'nl': {        'web': 'https://www.delhaize.be/spadel-bru',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD17&amp;cmsPageTitle=Bru'      },      'fr': {        'web': 'https://www.delhaize.be/spadel-bru',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD17&amp;cmsPageTitle=Bru'      },      'en': {        'web': 'https://www.delhaize.be/spadel-bru',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD17&amp;cmsPageTitle=Bru'      }    };    if ('true' !== 'false') {      for (const [key, value] of Object.entries(urlContent)) {        urlContent[key] = {          'web': 'https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR' + value['web'],          'app': value['app']        };      }    };    const adheseLanguage = 'nl';    const language = adheseLanguage.includes('adheseReplace') ? parent?.window?.adobeDataLayer?.[0]?.page?.pageInfo?.language : adheseLanguage;    const title = (language && textContent[language]?.['title']) ? textContent[language]['title'] : textContent['fr']['title'];    const cta = (language && textContent[language]?.['cta']) ? textContent[language]['cta'] : textContent['fr']['cta'];    const legalLine = (language && textContent[language]?.['legal']) ?  textContent[language]['legal'] : textContent['fr']['legal'];    const clickUrlApp = (language && urlContent[language]?.['app']) ? urlContent[language]['app'] : urlContent['fr']['app'];    const clickUrlWeb = (language && urlContent[language]?.['web']) ? urlContent[language]['web'] : urlContent['fr']['web'];    const disclaimer = (language && textContent[language]?.['disclaimer']) ?  textContent[language]['disclaimer'] : textContent['fr']['disclaimer'];    let attribute = (language && imageContent[language]?.['attribute']) ? imageContent[language]['attribute'] : imageContent['fr']['attribute'];    if (attribute === '') {      attribute = imageContent['fr']['attribute'];    }    let attributes = [];    attributes.push(attribute);    const attributeSizes = {      attr1Size: 'large',    };    function updateImagePosition(position) {      if (containProductImage) return;      let translateY = '11';      if (position === 'top_focused') {        translateY = '20';      } else if (position === 'bottom_focused') {        translateY = '-20';      };      let transform = '';      let innerWidth = window.innerWidth;      if (innerWidth < 361) {        translateY = translateY / 2;        transform = 'scale(1.4) translateX(18%) translateY(' + translateY + '%)';      } else if (innerWidth < 489) {        transform = 'scale(1.4) translateX(10%) translateY(' + translateY + '%)';      } else if (innerWidth < 992) {        transform = 'scale(1.6) translateX(13%) translateY(' + translateY + '%)';      } else {        transform = 'scale(1.6) translateX(9%) translateY(' + translateY + '%)';      };      let productImg = document.querySelector('.banner__right img');      productImg.style.transform = transform;    }    let productImagePosition;    if ('' === 'top_focused') {      productImagePosition = 'top_focused';    } else if ('' === 'bottom_focused') {      productImagePosition = 'bottom_focused';    } else {      productImagePosition = 'centered';    }    const containProductImage = '' === 'full_view';    if (containProductImage) {      document.querySelector('#product').classList.add('contain');      document.querySelector('#product').style.transform = 'scale(1)';    }    for (const [key, value] of Object.entries(attributeSizes)) {      if (value === 'large') {        document.documentElement.style.setProperty(`--${key}`, '1');      } else {        document.documentElement.style.setProperty(`--${key}`, '1.25');      }    }    const banner = document.querySelector('#banner');    const titleEl = document.querySelector('#title');    const ctaEl = document.querySelector('#cta');    const legalLineEl = document.querySelector('#legal');    const disclaimerEl = document.querySelector('#disclaimer');    const productImageEl = document.querySelector('#product');    const attributesEl = document.querySelector('#attributes');    banner.style.backgroundColor = backgroundColor;    banner.style.color = textColor;    ctaEl.style.color = textColor;    legalLineEl.style.color = textColor;    productImageEl.src = productImage;    if (legalLine && legalLine.length > 0) legalLineEl.innerHTML = legalLine;    if ('' === 'true') {      banner.classList.add('banner__with_disclaimer');      disclaimerEl.style.cssText = 'display: block';      disclaimerEl.innerHTML = disclaimer;    }    const withoutLastWord = (word, text) => {      const lastIndex = text.lastIndexOf(word);      if (lastIndex === -1) return text;      const before = text.slice(0, lastIndex);      const after = text.slice(lastIndex + word.length);      return before + after;    };    const addChevron = (element) => {      const lastWord = element.innerHTML.split(' ').pop();      const spanEl = document.createElement('span');      spanEl.style.whiteSpace = 'nowrap';      spanEl.innerHTML = lastWord;      spanEl.innerHTML += `<svg class='chevron' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' ><path stroke-linecap='round' stroke-linejoin='round' d='M8.25 4.5l7.5 7.5-7.5 7.5' /></svg>`;      element.innerHTML = withoutLastWord(lastWord, element.innerHTML);      element.appendChild(spanEl);    };    ctaEl.innerHTML = cta;    addChevron(ctaEl);    titleEl.innerHTML = title;    addChevron(titleEl);    attributes.forEach((attribute, index) => {      if (attribute === '') return;      const attributeEl = document.createElement('img');      attributeEl.src = attribute;      attributeEl.alt = 'Promotion attribute';      attributesEl.appendChild(attributeEl);    });    let onWeb = window.top.location.href.includes('localhost');    if (onWeb) {      document.getElementById('banner').href = clickUrlWeb;      document.getElementById('banner').addEventListener('click', function () {        const helper = window?.parent?.gambit?.helper;        const info = {           'slot': '12',          'clickUrl': clickUrlWeb,          'title': title,          'elementType': 'banner'        };        if (helper) helper.fireBrowserEvent('adheseAdClicked', info);      });    } else {      if (!productImage.includes('//pool/')) {        productImage = productImage + '.width.400';      }      const webView = window.ReactNativeWebView;      const bannerUrl = webView ? '#' : clickUrlApp;      const postMessage = false;      document.getElementById('banner').href = bannerUrl  || '#';      if ('true' !== 'false') {        document.getElementById('banner').addEventListener('click', function () {          if (webView && postMessage) {            data = { 'deeplink': clickUrlApp, 'clickTag': 'https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR', 'type': 'click' };            webView.postMessage(JSON.stringify(data));          } else {            var xhttp = new XMLHttpRequest();            xhttp.open('GET', 'https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR', true);            xhttp.send();          }        });      }    };    window.onload = function () {      updateImagePosition(productImagePosition);      if (attributes.length === 0 || attributes.every(attr => attr === '')) {        document.querySelector('.banner__center').style.cssText = 'display: none !important';        document.querySelector('.banner__left').style.cssText = 'width: 50%; padding-right: 8px';        document.querySelector('.banner__right').style.cssText = 'width: 50%;';      }      const imageIsBackground = 'true' === 'true';      if (imageIsBackground) {        document.querySelector('.banner__right').style.cssText += 'background-image: url(' + productImage + ');';        document.querySelector('#product').style.cssText = 'display: none';      }    };    window.addEventListener('resize', function () {      updateImagePosition(productImagePosition);    });  </script></body></html>",
        "tagUrl": "https://digitalcontent2.delhaize.be/pool/lib/264_0.advar",
        "heightLarge": "400",
        "widthLarge": "800",
        "libId": "264",
        "id": "12847",
        "advertiserId": "441",
        "orderProperty": "",
        "ext": "advar",
        "swfSrc": "https://digitalcontent2.delhaize.be/pool/lib/264_0.advar",
        "url": "https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR",
        "clickTag": "https://digitalcontent1.delhaize.be/raylene//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad12847-264/UR",
        "swfSrc2nd": "https://digitalcontent2.delhaize.be/pool/lib/264_2nd_1.jpg",
        "swfSrc3rd": "",
        "swfSrc4th": "",
        "poolPath": "https://digitalcontent2.delhaize.be/pool/lib/",
        "comment": "",
        "adDuration": "0.0",
        "adDuration2nd": "0.0",
        "adDuration3rd": "0.0",
        "adDuration4th": "0.0",
        "orderName": "260.015.2025 - Spadel - Bru - Online Visibility Large ",
        "creativeName": "Brand display - Spadel",
        "deliveryMultiples": "exclusive_on_creative",
        "deliveryGroupId": "o203g0cr264",
        "adspaceStart": "1740610800000",
        "adspaceEnd": "1741820399000",
        "swfSrc5th": "",
        "swfSrc6th": "",
        "adDuration5th": "0.0",
        "adDuration6th": "0.0",
        "width3rd": "0",
        "width4th": "0",
        "width5th": "0",
        "width6th": "0",
        "height3rd": "0",
        "height4th": "0",
        "height5th": "0",
        "height6th": "0",
        "slotName": "delhaize-be_home-flex",
        "slotID": "12",
        "impressionCounter": "https://digitalcontent1.delhaize.be/track/12847//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "trackedImpressionCounter": "https://digitalcontent1.delhaize.be/track/12847//sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "viewableImpressionCounter": "https://digitalcontent1.delhaize.be/track/12847-Adhese_IABview/sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "additionalCreatives": "<ADDITIONAL_CREATIVES_ARRAY>",
        "origin": "JERLICIA",
        "originData": {},
        "auctionable": "true",
        "additionalViewableTracker": "",
        "additionalCreativeTracker": "https://digitalcontent1.delhaize.be/track/12847-additional-264/sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826"
      }
    ],
    "origin": "JERLICIA",
    "originData": {},
    "auctionable": "true",
    "additionalViewableTracker": "",
    "additionalCreativeTracker": "https://digitalcontent1.delhaize.be/track/12847-additional-264/sl12/dtunknown/ogcontrol/II8c138ca9-3fa3-4964-a371-d8522870f032/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "extension": {
      "mediaType": "banner"
    }
  },
  {
    "dm": "dmDMGo210g0cr274;ADV380",
    "adType": "flex",
    "adFormat": "flex",
    "timeStamp": "1741164381000",
    "share": "0",
    "priority": "0",
    "orderId": "210",
    "adspaceId": "716",
    "adspaceKey": "",
    "body": "",
    "trackingUrl": "",
    "tracker": "https://digitalcontent1.delhaize.be/track/13398//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "extraField1": "",
    "extraField2": "",
    "altText": "",
    "height": "1",
    "width": "1",
    "tag": "<!DOCTYPE html><html lang='en'><head>  <title>Promo Display banner</title>  <meta charset='UTF-8' />  <meta name='viewport' content='width=device-width, initial-scale=1.0' />  <style id='styles'>    :root {      --attrSize: 1;    }    html,    body {      height: 100%;      width: 100%;    }    html,    body,    body * {      font-family: 'Lato', sans-serif;      margin: 0;      padding: 0;      box-sizing: border-box;      text-decoration: none;      overflow: hidden;    }    .banner {      border-radius: 8px;      background-color: #e2eaad;      color: #000;      width: 100%;      height: 100%;      display: flex;      position: relative;      overflow: hidden;      user-select: none;      -moz-user-select: none;      -khtml-user-select: none;      -webkit-user-select: none;      -o-user-select: none;    }    .banner:hover {      cursor: pointer;    }    .banner__left {      width: 40%;      display: flex;      flex-direction: column;      gap: 10px;      padding-top: 20px;      padding-bottom: 20px;      padding-left: 20px;      justify-content: space-between;    }    .banner__left__title {      line-height: 15px;      font-size: 14px;      font-weight: bold;      font-family: 'Breve Title';      overflow: visible;    }    .banner__left__title span {      font-family: 'Breve Title';    }    .chevron {      width: 1.2em;      height: 1.2em;      vertical-align: middle;    }    .banner__left__cta {      background-color: transparent;      outline: none;      border: none;      padding: 0;      border-radius: 4px;      color: #000;      align-self: flex-start;      font-size: 14px;      display: none;      font-weight: bold;      display: none;    }    .banner__left__legal {      font-size: 8px;      line-height: 10px;      font-weight: normal;      color: #000;      margin-top: 10px;    }    .banner__center {      width: 20%;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      position: relative;      gap: 10px;    }    .banner__center img {      max-width: 80%;      max-height: 60%;      width: auto;      height: auto;      object-fit: contain;    }    .banner__right {      width: 40%;    }    img.contain {      transform: scale(1) !important;    }    .banner__right img {      width: 100%;      height: 100%;      object-fit: contain;      transform: scale(1.4) translateX(18%) translateY(11%);    }     .banner__disclaimer {      display: none;      color: white;      background-color: black;      position: absolute;      bottom: 0;      width: 100%;      text-align: center;      font-size: 10px;      padding: 10px 0;    }    .banner__with_disclaimer {      padding-bottom: 30px;    }    /* > 361px */    @media (min-width: 361px) {      .banner__left {        justify-content: space-between;      }      .banner__left__title .chevron {        display: none;      }    }    /* 371px - 488px */    @media (min-width: 371px) and (max-width: 488px) {      .banner__left__title {        line-height: 20px;        font-size: 16px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }    }    @container (min-width: 371px) and (max-width: 488px) {      .banner__right img {        transform: scale(1.4) translateX(10%) translateY(11%);      }    }    /* 489px - 783px */    @media (min-width: 489px) and (max-width: 783px) {      .banner__left__title {        font-size: 22px;        line-height: 26px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }      .banner__left__cta {        display: block;        font-size: 15px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.4) translateX(18%);        object-fit: contain;      }    }    /* > 784px */    @media (min-width: 784px) {      .banner__left__title {        font-size: 28px;        line-height: 28px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }            .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__left__cta {        display: block;        font-size: 19px;      }      .banner__right img {        transform: scale(1.6) translateX(13%) translateY(11%);        object-fit: contain;      }    }    /* > 992px */    @media (min-width: 992px) {      .banner__center {        flex-direction: row;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.6) translateX(9%) translateY(11%);        object-fit: contain;      }            .balanced {        width: 90%;        text-wrap: balance;      }    }    .swapped {      order: 2;    }  </style></head><body>  <a href='#' target='_top' id='banner' class='banner'>    <div class='banner__left'>      <h1 id='title' class='banner__left__title'></h1>      <div>        <div id='cta' class='banner__left__cta'></div>        <div id='legal' class='banner__left__legal'></div>      </div>    </div>    <div id='attributes' class='banner__center'></div>    <div class='banner__right'>      <img id='product' src='#' alt='Product Image' />    </div>    <div id='disclaimer' class='banner__disclaimer'></div>  </a>  <script>    function getAccessibleColor(hexColor) {      const r = parseInt(hexColor.slice(1, 3), 16);      const g = parseInt(hexColor.slice(3, 5), 16);      const b = parseInt(hexColor.slice(5, 7), 16);      const luminance = 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2;      const threshold = 0.179;      return luminance < threshold ? '#FFFFFF' : '#000000';    };    const clickUrl = '';    let productImage = 'https://digitalcontent2.delhaize.be/pool/lib/274_2nd_1.png';    if (!productImage.includes('//pool/')) {      productImage = productImage + '.width.400';    }    let backgroundColor = '#EFC031';    let customBackgroundColor = '';    let textColor = '#000000';    if (customBackgroundColor && customBackgroundColor.length > 0) {      if (customBackgroundColor[0] !== '#') {        customBackgroundColor = '#' + customBackgroundColor;      };      backgroundColor = customBackgroundColor;    };    textColor = getAccessibleColor(backgroundColor);            const fonts = [      { name: 'Breve Title', file: 'BreveTitle-Bold.woff2', weight: 'bold' },      { name: 'Lato', file: 'Lato-Regular.woff2', weight: 'normal' },      { name: 'Lato', file: 'Lato-Bold.woff2', weight: 'bold' }    ];    const parentUrl = window?.parent?.location?.href;    const style = document.getElementById('styles');    fonts.forEach(font => {      let baseFontUrl = 'https://static.delhaize.be/static/next/fonts/';      if (parentUrl && parentUrl.includes('qa1')) {        baseFontUrl = 'https://static-qa1.delhaize.be/static/next/fonts/';      } else if (parentUrl && parentUrl.includes('qa2')) {        baseFontUrl = 'https://static-qa2.delhaize.be/static/next/fonts/';      }      const fontFace = `        @font-face {          font-family: '${font.name}';          src: url(${baseFontUrl + font.file});          font-weight: ${font.weight};        }      `;      style.appendChild(document.createTextNode(fontFace));    });    const textContent = {      'nl': {        'title': 'Lay&rsquo;s Max is nu in promo!',        'cta': 'Ontdek het hier',        'legal': '',        'disclaimer': 'Alcoholmisbruik schaadt de gezondheid.'      },      'fr': {        'title': 'Profitez des promos sur Lay&rsquo;s Max!',        'cta': 'Achetez maintenant',        'legal': '',        'disclaimer': 'L’abus d’alcool nuit à la santé.'      },      'en': {        'title': 'Get your discount on Lay&rsquo;s Max now!',        'cta': 'Buy here',        'legal': '',        'disclaimer': 'Alcohol abuse harms your health.'      }    };    const imageContent = {      'nl': {        'attribute': 'https://digitalcontent2.delhaize.be/pool/lib/274_3rd_1.png'      },      'fr': {        'attribute': 'https://digitalcontent2.delhaize.be/pool/lib/274_4th_1.png'      },      'en': {        'attribute': 'https://digitalcontent2.delhaize.be/pool/lib/274_5th_1.png'      }    };    let urlContent = {      'nl': {        'web': 'https://www.delhaize.be/pepsico-lays',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD20&amp;cmsPageTitle=Lays'      },      'fr': {        'web': 'https://www.delhaize.be/pepsico-lays',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD20&amp;cmsPageTitle=Lays'      },      'en': {        'web': 'https://www.delhaize.be/pepsico-lays',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD20&amp;cmsPageTitle=Lays'      }    };    if ('true' !== 'false') {      for (const [key, value] of Object.entries(urlContent)) {        urlContent[key] = {          'web': 'https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR' + value['web'],          'app': value['app']        };      }    };    const adheseLanguage = 'nl';    const language = adheseLanguage.includes('adheseReplace') ? parent?.window?.adobeDataLayer?.[0]?.page?.pageInfo?.language : adheseLanguage;    const title = (language && textContent[language]?.['title']) ? textContent[language]['title'] : textContent['fr']['title'];    const cta = (language && textContent[language]?.['cta']) ? textContent[language]['cta'] : textContent['fr']['cta'];    const legalLine = (language && textContent[language]?.['legal']) ?  textContent[language]['legal'] : textContent['fr']['legal'];    const clickUrlApp = (language && urlContent[language]?.['app']) ? urlContent[language]['app'] : urlContent['fr']['app'];    const clickUrlWeb = (language && urlContent[language]?.['web']) ? urlContent[language]['web'] : urlContent['fr']['web'];    const disclaimer = (language && textContent[language]?.['disclaimer']) ?  textContent[language]['disclaimer'] : textContent['fr']['disclaimer'];    let attribute = (language && imageContent[language]?.['attribute']) ? imageContent[language]['attribute'] : imageContent['fr']['attribute'];    if (attribute === '') {      attribute = imageContent['fr']['attribute'];    }    let attributes = [];    if ('' !== '') attributes.push('');    attributes.push(attribute);    const attributeSizes = {      attr1Size: 'large',      attr2Size: 'large',    };    function updateImagePosition(position) {      if (containProductImage) return;      let translateY = '11';      if (position === 'top_focused') {        translateY = '20';      } else if (position === 'bottom_focused') {        translateY = '-20';      };      let transform = '';      let innerWidth = window.innerWidth;      if (innerWidth < 361) {        translateY = translateY / 2;        transform = 'scale(1.4) translateX(18%) translateY(' + translateY + '%)';      } else if (innerWidth < 489) {        transform = 'scale(1.4) translateX(10%) translateY(' + translateY + '%)';      } else if (innerWidth < 992) {        transform = 'scale(1.6) translateX(13%) translateY(' + translateY + '%)';      } else {        transform = 'scale(1.6) translateX(9%) translateY(' + translateY + '%)';      };      let productImg = document.querySelector('.banner__right img');      productImg.style.transform = transform;    }    let productImagePosition;    if ('' === 'top_focused') {      productImagePosition = 'top_focused';    } else if ('' === 'bottom_focused') {      productImagePosition = 'bottom_focused';    } else {      productImagePosition = 'centered';    }    const containProductImage = '' === 'full_view';    if (containProductImage) {      document.querySelector('#product').classList.add('contain');      document.querySelector('#product').style.transform = 'scale(1)';    }    for (const [key, value] of Object.entries(attributeSizes)) {      if (value === 'large') {        document.documentElement.style.setProperty(`--${key}`, '1');      } else {        document.documentElement.style.setProperty(`--${key}`, '1.25');      }    }    const banner = document.querySelector('#banner');    const titleEl = document.querySelector('#title');    const ctaEl = document.querySelector('#cta');    const legalLineEl = document.querySelector('#legal');    const disclaimerEl = document.querySelector('#disclaimer');    const productImageEl = document.querySelector('#product');    const attributesEl = document.querySelector('#attributes');    banner.style.backgroundColor = backgroundColor;    banner.style.color = textColor;    ctaEl.style.color = textColor;    legalLineEl.style.color = textColor;    productImageEl.src = productImage;    if (legalLine && legalLine.length > 0) legalLineEl.innerHTML = legalLine;    if ('' === 'true') {      banner.classList.add('banner__with_disclaimer');      disclaimerEl.style.cssText = 'display: block';      disclaimerEl.innerHTML = disclaimer;    }    const withoutLastWord = (word, text) => {      const lastIndex = text.lastIndexOf(word);      if (lastIndex === -1) return text;      const before = text.slice(0, lastIndex);      const after = text.slice(lastIndex + word.length);      return before + after;    };    const addChevron = (element) => {      const lastWord = element.innerHTML.split(' ').pop();      const spanEl = document.createElement('span');      spanEl.style.whiteSpace = 'nowrap';      spanEl.innerHTML = lastWord;      spanEl.innerHTML += `<svg class='chevron' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' ><path stroke-linecap='round' stroke-linejoin='round' d='M8.25 4.5l7.5 7.5-7.5 7.5' /></svg>`;      element.innerHTML = withoutLastWord(lastWord, element.innerHTML);      element.appendChild(spanEl);    };    ctaEl.innerHTML = cta;    addChevron(ctaEl);    titleEl.innerHTML = title;    addChevron(titleEl);    attributes.forEach((attribute, index) => {      if (attribute === '') return;      const attributeEl = document.createElement('img');      attributeEl.src = attribute;      attributeEl.alt = 'Promotion attribute';      if (attributes.length > 1 && index === 0 && '' === 'bottom') {        attributeEl.classList.add('swapped');      }      attributesEl.appendChild(attributeEl);    });    if (attributes.length > 1) {      titleEl.classList.add('balanced');    }    let onWeb = window.top.location.href.includes('localhost');    if (onWeb) {      document.getElementById('banner').href = clickUrlWeb;      document.getElementById('banner').addEventListener('click', function () {        const helper = window?.parent?.gambit?.helper;        const info = {           'slot': '13',          'clickUrl': clickUrlWeb,          'title': title,          'elementType': 'banner'        };        if (helper) helper.fireBrowserEvent('adheseAdClicked', info);      });    } else {      const webView = window.ReactNativeWebView;      const bannerUrl = webView ? '#' : clickUrlApp;      const postMessage = false;      document.getElementById('banner').href = bannerUrl  || '#';      if ('true' !== 'false') {        document.getElementById('banner').addEventListener('click', function () {          if (webView && postMessage) {            data = { 'deeplink': clickUrlApp, 'clickTag': 'https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR', 'type': 'click' };            webView.postMessage(JSON.stringify(data));          } else {            var xhttp = new XMLHttpRequest();            xhttp.open('GET', 'https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR', true);            xhttp.send();          }        });      }    };    window.onload = function () {      updateImagePosition(productImagePosition);      if (attributes.length === 0 || attributes.every(attr => attr === '')) {        document.querySelector('.banner__center').style.cssText = 'display: none !important';        document.querySelector('.banner__left').style.cssText = 'width: 50%; padding-right: 8px';        document.querySelector('.banner__right').style.cssText = 'width: 50%';      }      const imageIsBackground = false;      if (imageIsBackground) {        document.querySelector('.banner__right').style.cssText = 'background-image: url(' + productImage + '); background-size: cover !important; background-repeat: no-repeat; background-position: center;';        document.querySelector('#product').style.cssText = 'display: none';      }    };    window.addEventListener('resize', function () {      updateImagePosition(productImagePosition);    });  </script></body></html>",
    "tagUrl": "https://digitalcontent2.delhaize.be/pool/lib/274_0.advar",
    "heightLarge": "500",
    "widthLarge": "500",
    "libId": "274",
    "id": "13398",
    "advertiserId": "380",
    "orderProperty": "",
    "ext": "advar",
    "swfSrc": "https://digitalcontent2.delhaize.be/pool/lib/274_0.advar",
    "url": "https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR",
    "clickTag": "https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR",
    "swfSrc2nd": "https://digitalcontent2.delhaize.be/pool/lib/274_2nd_1.png",
    "swfSrc3rd": "https://digitalcontent2.delhaize.be/pool/lib/274_3rd_1.png",
    "swfSrc4th": "https://digitalcontent2.delhaize.be/pool/lib/274_4th_1.png",
    "poolPath": "https://digitalcontent2.delhaize.be/pool/lib/",
    "comment": "",
    "adDuration": "0.0",
    "adDuration2nd": "0.0",
    "adDuration3rd": "0.0",
    "adDuration4th": "0.0",
    "orderName": "261.004.2025 - Pepsico - Lay's - Home Page Visibility",
    "creativeName": "Promo display - Pepsico",
    "deliveryMultiples": "exclusive_on_creative",
    "deliveryGroupId": "o210g0cr274",
    "adspaceStart": "1741215600000",
    "adspaceEnd": "1741820399000",
    "swfSrc5th": "https://digitalcontent2.delhaize.be/pool/lib/274_5th_1.png",
    "swfSrc6th": "",
    "adDuration5th": "0.0",
    "adDuration6th": "0.0",
    "width3rd": "3050",
    "width4th": "3050",
    "width5th": "3050",
    "width6th": "0",
    "height3rd": "3050",
    "height4th": "3050",
    "height5th": "3050",
    "height6th": "0",
    "slotName": "delhaize-be_home_2-flex",
    "slotID": "13",
    "impressionCounter": "https://digitalcontent1.delhaize.be/track/13398//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "trackedImpressionCounter": "https://digitalcontent1.delhaize.be/track/13398//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "viewableImpressionCounter": "https://digitalcontent1.delhaize.be/track/13398-Adhese_IABview/sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "additionalCreatives": [
      {
        "dm": "dmDMGo210g0cr274;ADV380",
        "adType": "flex",
        "adFormat": "flex",
        "timeStamp": "1741164381000",
        "share": "0",
        "priority": "0",
        "orderId": "210",
        "adspaceId": "716",
        "adspaceKey": "",
        "body": "",
        "trackingUrl": "",
        "tracker": "https://digitalcontent1.delhaize.be/track/13398//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "extraField1": "",
        "extraField2": "",
        "altText": "",
        "height": "1",
        "width": "1",
        "tag": "<!DOCTYPE html><html lang='en'><head>  <title>Promo Display banner</title>  <meta charset='UTF-8' />  <meta name='viewport' content='width=device-width, initial-scale=1.0' />  <style id='styles'>    :root {      --attrSize: 1;    }    html,    body {      height: 100%;      width: 100%;    }    html,    body,    body * {      font-family: 'Lato', sans-serif;      margin: 0;      padding: 0;      box-sizing: border-box;      text-decoration: none;      overflow: hidden;    }    .banner {      border-radius: 8px;      background-color: #e2eaad;      color: #000;      width: 100%;      height: 100%;      display: flex;      position: relative;      overflow: hidden;      user-select: none;      -moz-user-select: none;      -khtml-user-select: none;      -webkit-user-select: none;      -o-user-select: none;    }    .banner:hover {      cursor: pointer;    }    .banner__left {      width: 40%;      display: flex;      flex-direction: column;      gap: 10px;      padding-top: 20px;      padding-bottom: 20px;      padding-left: 20px;      justify-content: space-between;    }    .banner__left__title {      line-height: 15px;      font-size: 14px;      font-weight: bold;      font-family: 'Breve Title';      overflow: visible;    }    .banner__left__title span {      font-family: 'Breve Title';    }    .chevron {      width: 1.2em;      height: 1.2em;      vertical-align: middle;    }    .banner__left__cta {      background-color: transparent;      outline: none;      border: none;      padding: 0;      border-radius: 4px;      color: #000;      align-self: flex-start;      font-size: 14px;      display: none;      font-weight: bold;      display: none;    }    .banner__left__legal {      font-size: 8px;      line-height: 10px;      font-weight: normal;      color: #000;      margin-top: 10px;    }    .banner__center {      width: 20%;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      position: relative;      gap: 10px;    }    .banner__center img {      max-width: 80%;      max-height: 60%;      width: auto;      height: auto;      object-fit: contain;    }    .banner__right {      width: 40%;    }    img.contain {      transform: scale(1) !important;    }    .banner__right img {      width: 100%;      height: 100%;      object-fit: contain;      transform: scale(1.4) translateX(18%) translateY(11%);    }     .banner__disclaimer {      display: none;      color: white;      background-color: black;      position: absolute;      bottom: 0;      width: 100%;      text-align: center;      font-size: 10px;      padding: 10px 0;    }    .banner__with_disclaimer {      padding-bottom: 30px;    }    /* > 361px */    @media (min-width: 361px) {      .banner__left {        justify-content: space-between;      }      .banner__left__title .chevron {        display: none;      }    }    /* 371px - 488px */    @media (min-width: 371px) and (max-width: 488px) {      .banner__left__title {        line-height: 20px;        font-size: 16px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }    }    @container (min-width: 371px) and (max-width: 488px) {      .banner__right img {        transform: scale(1.4) translateX(10%) translateY(11%);      }    }    /* 489px - 783px */    @media (min-width: 489px) and (max-width: 783px) {      .banner__left__title {        font-size: 22px;        line-height: 26px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }      .banner__left__cta {        display: block;        font-size: 15px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.4) translateX(18%);        object-fit: contain;      }    }    /* > 784px */    @media (min-width: 784px) {      .banner__left__title {        font-size: 28px;        line-height: 28px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }            .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__left__cta {        display: block;        font-size: 19px;      }      .banner__right img {        transform: scale(1.6) translateX(13%) translateY(11%);        object-fit: contain;      }    }    /* > 992px */    @media (min-width: 992px) {      .banner__center {        flex-direction: row;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.6) translateX(9%) translateY(11%);        object-fit: contain;      }            .balanced {        width: 90%;        text-wrap: balance;      }    }    .swapped {      order: 2;    }  </style></head><body>  <a href='#' target='_top' id='banner' class='banner'>    <div class='banner__left'>      <h1 id='title' class='banner__left__title'></h1>      <div>        <div id='cta' class='banner__left__cta'></div>        <div id='legal' class='banner__left__legal'></div>      </div>    </div>    <div id='attributes' class='banner__center'></div>    <div class='banner__right'>      <img id='product' src='#' alt='Product Image' />    </div>    <div id='disclaimer' class='banner__disclaimer'></div>  </a>  <script>    function getAccessibleColor(hexColor) {      const r = parseInt(hexColor.slice(1, 3), 16);      const g = parseInt(hexColor.slice(3, 5), 16);      const b = parseInt(hexColor.slice(5, 7), 16);      const luminance = 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2;      const threshold = 0.179;      return luminance < threshold ? '#FFFFFF' : '#000000';    };    const clickUrl = '';    let productImage = 'https://digitalcontent2.delhaize.be/pool/lib/274_2nd_1.png';    if (!productImage.includes('//pool/')) {      productImage = productImage + '.width.400';    }    let backgroundColor = '#EFC031';    let customBackgroundColor = '';    let textColor = '#000000';    if (customBackgroundColor && customBackgroundColor.length > 0) {      if (customBackgroundColor[0] !== '#') {        customBackgroundColor = '#' + customBackgroundColor;      };      backgroundColor = customBackgroundColor;    };    textColor = getAccessibleColor(backgroundColor);            const fonts = [      { name: 'Breve Title', file: 'BreveTitle-Bold.woff2', weight: 'bold' },      { name: 'Lato', file: 'Lato-Regular.woff2', weight: 'normal' },      { name: 'Lato', file: 'Lato-Bold.woff2', weight: 'bold' }    ];    const parentUrl = window?.parent?.location?.href;    const style = document.getElementById('styles');    fonts.forEach(font => {      let baseFontUrl = 'https://static.delhaize.be/static/next/fonts/';      if (parentUrl && parentUrl.includes('qa1')) {        baseFontUrl = 'https://static-qa1.delhaize.be/static/next/fonts/';      } else if (parentUrl && parentUrl.includes('qa2')) {        baseFontUrl = 'https://static-qa2.delhaize.be/static/next/fonts/';      }      const fontFace = `        @font-face {          font-family: '${font.name}';          src: url(${baseFontUrl + font.file});          font-weight: ${font.weight};        }      `;      style.appendChild(document.createTextNode(fontFace));    });    const textContent = {      'nl': {        'title': 'Lay&rsquo;s Max is nu in promo!',        'cta': 'Ontdek het hier',        'legal': '',        'disclaimer': 'Alcoholmisbruik schaadt de gezondheid.'      },      'fr': {        'title': 'Profitez des promos sur Lay&rsquo;s Max!',        'cta': 'Achetez maintenant',        'legal': '',        'disclaimer': 'L’abus d’alcool nuit à la santé.'      },      'en': {        'title': 'Get your discount on Lay&rsquo;s Max now!',        'cta': 'Buy here',        'legal': '',        'disclaimer': 'Alcohol abuse harms your health.'      }    };    const imageContent = {      'nl': {        'attribute': 'https://digitalcontent2.delhaize.be/pool/lib/274_3rd_1.png'      },      'fr': {        'attribute': 'https://digitalcontent2.delhaize.be/pool/lib/274_4th_1.png'      },      'en': {        'attribute': 'https://digitalcontent2.delhaize.be/pool/lib/274_5th_1.png'      }    };    let urlContent = {      'nl': {        'web': 'https://www.delhaize.be/pepsico-lays',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD20&amp;cmsPageTitle=Lays'      },      'fr': {        'web': 'https://www.delhaize.be/pepsico-lays',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD20&amp;cmsPageTitle=Lays'      },      'en': {        'web': 'https://www.delhaize.be/pepsico-lays',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD20&amp;cmsPageTitle=Lays'      }    };    if ('true' !== 'false') {      for (const [key, value] of Object.entries(urlContent)) {        urlContent[key] = {          'web': 'https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR' + value['web'],          'app': value['app']        };      }    };    const adheseLanguage = 'nl';    const language = adheseLanguage.includes('adheseReplace') ? parent?.window?.adobeDataLayer?.[0]?.page?.pageInfo?.language : adheseLanguage;    const title = (language && textContent[language]?.['title']) ? textContent[language]['title'] : textContent['fr']['title'];    const cta = (language && textContent[language]?.['cta']) ? textContent[language]['cta'] : textContent['fr']['cta'];    const legalLine = (language && textContent[language]?.['legal']) ?  textContent[language]['legal'] : textContent['fr']['legal'];    const clickUrlApp = (language && urlContent[language]?.['app']) ? urlContent[language]['app'] : urlContent['fr']['app'];    const clickUrlWeb = (language && urlContent[language]?.['web']) ? urlContent[language]['web'] : urlContent['fr']['web'];    const disclaimer = (language && textContent[language]?.['disclaimer']) ?  textContent[language]['disclaimer'] : textContent['fr']['disclaimer'];    let attribute = (language && imageContent[language]?.['attribute']) ? imageContent[language]['attribute'] : imageContent['fr']['attribute'];    if (attribute === '') {      attribute = imageContent['fr']['attribute'];    }    let attributes = [];    if ('' !== '') attributes.push('');    attributes.push(attribute);    const attributeSizes = {      attr1Size: 'large',      attr2Size: 'large',    };    function updateImagePosition(position) {      if (containProductImage) return;      let translateY = '11';      if (position === 'top_focused') {        translateY = '20';      } else if (position === 'bottom_focused') {        translateY = '-20';      };      let transform = '';      let innerWidth = window.innerWidth;      if (innerWidth < 361) {        translateY = translateY / 2;        transform = 'scale(1.4) translateX(18%) translateY(' + translateY + '%)';      } else if (innerWidth < 489) {        transform = 'scale(1.4) translateX(10%) translateY(' + translateY + '%)';      } else if (innerWidth < 992) {        transform = 'scale(1.6) translateX(13%) translateY(' + translateY + '%)';      } else {        transform = 'scale(1.6) translateX(9%) translateY(' + translateY + '%)';      };      let productImg = document.querySelector('.banner__right img');      productImg.style.transform = transform;    }    let productImagePosition;    if ('' === 'top_focused') {      productImagePosition = 'top_focused';    } else if ('' === 'bottom_focused') {      productImagePosition = 'bottom_focused';    } else {      productImagePosition = 'centered';    }    const containProductImage = '' === 'full_view';    if (containProductImage) {      document.querySelector('#product').classList.add('contain');      document.querySelector('#product').style.transform = 'scale(1)';    }    for (const [key, value] of Object.entries(attributeSizes)) {      if (value === 'large') {        document.documentElement.style.setProperty(`--${key}`, '1');      } else {        document.documentElement.style.setProperty(`--${key}`, '1.25');      }    }    const banner = document.querySelector('#banner');    const titleEl = document.querySelector('#title');    const ctaEl = document.querySelector('#cta');    const legalLineEl = document.querySelector('#legal');    const disclaimerEl = document.querySelector('#disclaimer');    const productImageEl = document.querySelector('#product');    const attributesEl = document.querySelector('#attributes');    banner.style.backgroundColor = backgroundColor;    banner.style.color = textColor;    ctaEl.style.color = textColor;    legalLineEl.style.color = textColor;    productImageEl.src = productImage;    if (legalLine && legalLine.length > 0) legalLineEl.innerHTML = legalLine;    if ('' === 'true') {      banner.classList.add('banner__with_disclaimer');      disclaimerEl.style.cssText = 'display: block';      disclaimerEl.innerHTML = disclaimer;    }    const withoutLastWord = (word, text) => {      const lastIndex = text.lastIndexOf(word);      if (lastIndex === -1) return text;      const before = text.slice(0, lastIndex);      const after = text.slice(lastIndex + word.length);      return before + after;    };    const addChevron = (element) => {      const lastWord = element.innerHTML.split(' ').pop();      const spanEl = document.createElement('span');      spanEl.style.whiteSpace = 'nowrap';      spanEl.innerHTML = lastWord;      spanEl.innerHTML += `<svg class='chevron' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' ><path stroke-linecap='round' stroke-linejoin='round' d='M8.25 4.5l7.5 7.5-7.5 7.5' /></svg>`;      element.innerHTML = withoutLastWord(lastWord, element.innerHTML);      element.appendChild(spanEl);    };    ctaEl.innerHTML = cta;    addChevron(ctaEl);    titleEl.innerHTML = title;    addChevron(titleEl);    attributes.forEach((attribute, index) => {      if (attribute === '') return;      const attributeEl = document.createElement('img');      attributeEl.src = attribute;      attributeEl.alt = 'Promotion attribute';      if (attributes.length > 1 && index === 0 && '' === 'bottom') {        attributeEl.classList.add('swapped');      }      attributesEl.appendChild(attributeEl);    });    if (attributes.length > 1) {      titleEl.classList.add('balanced');    }    let onWeb = window.top.location.href.includes('localhost');    if (onWeb) {      document.getElementById('banner').href = clickUrlWeb;      document.getElementById('banner').addEventListener('click', function () {        const helper = window?.parent?.gambit?.helper;        const info = {           'slot': '13',          'clickUrl': clickUrlWeb,          'title': title,          'elementType': 'banner'        };        if (helper) helper.fireBrowserEvent('adheseAdClicked', info);      });    } else {      const webView = window.ReactNativeWebView;      const bannerUrl = webView ? '#' : clickUrlApp;      const postMessage = false;      document.getElementById('banner').href = bannerUrl  || '#';      if ('true' !== 'false') {        document.getElementById('banner').addEventListener('click', function () {          if (webView && postMessage) {            data = { 'deeplink': clickUrlApp, 'clickTag': 'https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR', 'type': 'click' };            webView.postMessage(JSON.stringify(data));          } else {            var xhttp = new XMLHttpRequest();            xhttp.open('GET', 'https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR', true);            xhttp.send();          }        });      }    };    window.onload = function () {      updateImagePosition(productImagePosition);      if (attributes.length === 0 || attributes.every(attr => attr === '')) {        document.querySelector('.banner__center').style.cssText = 'display: none !important';        document.querySelector('.banner__left').style.cssText = 'width: 50%; padding-right: 8px';        document.querySelector('.banner__right').style.cssText = 'width: 50%';      }      const imageIsBackground = false;      if (imageIsBackground) {        document.querySelector('.banner__right').style.cssText = 'background-image: url(' + productImage + '); background-size: cover !important; background-repeat: no-repeat; background-position: center;';        document.querySelector('#product').style.cssText = 'display: none';      }    };    window.addEventListener('resize', function () {      updateImagePosition(productImagePosition);    });  </script></body></html>",
        "tagUrl": "https://digitalcontent2.delhaize.be/pool/lib/274_0.advar",
        "heightLarge": "500",
        "widthLarge": "500",
        "libId": "274",
        "id": "13398",
        "advertiserId": "380",
        "orderProperty": "",
        "ext": "advar",
        "swfSrc": "https://digitalcontent2.delhaize.be/pool/lib/274_0.advar",
        "url": "https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR",
        "clickTag": "https://digitalcontent1.delhaize.be/raylene//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13398-274/UR",
        "swfSrc2nd": "https://digitalcontent2.delhaize.be/pool/lib/274_2nd_1.png",
        "swfSrc3rd": "https://digitalcontent2.delhaize.be/pool/lib/274_3rd_1.png",
        "swfSrc4th": "https://digitalcontent2.delhaize.be/pool/lib/274_4th_1.png",
        "poolPath": "https://digitalcontent2.delhaize.be/pool/lib/",
        "comment": "",
        "adDuration": "0.0",
        "adDuration2nd": "0.0",
        "adDuration3rd": "0.0",
        "adDuration4th": "0.0",
        "orderName": "261.004.2025 - Pepsico - Lay's - Home Page Visibility",
        "creativeName": "Promo display - Pepsico",
        "deliveryMultiples": "exclusive_on_creative",
        "deliveryGroupId": "o210g0cr274",
        "adspaceStart": "1741215600000",
        "adspaceEnd": "1741820399000",
        "swfSrc5th": "https://digitalcontent2.delhaize.be/pool/lib/274_5th_1.png",
        "swfSrc6th": "",
        "adDuration5th": "0.0",
        "adDuration6th": "0.0",
        "width3rd": "3050",
        "width4th": "3050",
        "width5th": "3050",
        "width6th": "0",
        "height3rd": "3050",
        "height4th": "3050",
        "height5th": "3050",
        "height6th": "0",
        "slotName": "delhaize-be_home_2-flex",
        "slotID": "13",
        "impressionCounter": "https://digitalcontent1.delhaize.be/track/13398//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "trackedImpressionCounter": "https://digitalcontent1.delhaize.be/track/13398//sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "viewableImpressionCounter": "https://digitalcontent1.delhaize.be/track/13398-Adhese_IABview/sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "additionalCreatives": "<ADDITIONAL_CREATIVES_ARRAY>",
        "origin": "JERLICIA",
        "originData": {},
        "auctionable": "true",
        "additionalViewableTracker": "",
        "additionalCreativeTracker": "https://digitalcontent1.delhaize.be/track/13398-additional-274/sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826"
      }
    ],
    "origin": "JERLICIA",
    "originData": {},
    "auctionable": "true",
    "additionalViewableTracker": "",
    "additionalCreativeTracker": "https://digitalcontent1.delhaize.be/track/13398-additional-274/sl13/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dtunknown/ogcontrol/II428136a6-00e1-46b4-a54b-fc7b978187d2/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "extension": {
      "mediaType": "banner"
    }
  },
  {
    "dm": "dmDMGo215g0cr278;ADV129",
    "adType": "flex",
    "adFormat": "flex",
    "timeStamp": "1738924827000",
    "share": "0",
    "priority": "2",
    "orderId": "215",
    "adspaceId": "736",
    "adspaceKey": "",
    "body": "",
    "trackingUrl": "",
    "tracker": "https://digitalcontent1.delhaize.be/track/13723//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "extraField1": "",
    "extraField2": "",
    "altText": "",
    "height": "1",
    "width": "1",
    "tag": "<!DOCTYPE html><html lang='en'><head>  <title>Awareness banner</title>  <meta charset='UTF-8' />  <meta name='viewport' content='width=device-width, initial-scale=1.0' />  <style id='styles'>    :root {      --attrSize: 1;    }    html,    body {      height: 100%;      width: 100%;    }    html,    body,    body * {      font-family: 'Lato', sans-serif;      margin: 0;      padding: 0;      box-sizing: border-box;      text-decoration: none;      overflow: hidden;    }    .banner {      border-radius: 8px;      background-color: #e2eaad;      color: #000;      width: 100%;      height: 100%;      display: flex;      position: relative;      overflow: hidden;      user-select: none;      -moz-user-select: none;      -khtml-user-select: none;      -webkit-user-select: none;      -o-user-select: none;    }    .banner:hover {      cursor: pointer;    }    .banner__left {      width: 40%;      display: flex;      flex-direction: column;      gap: 10px;      padding-top: 20px;      padding-bottom: 20px;      padding-left: 20px;      justify-content: space-between;    }    .banner__left__title {      line-height: 15px;      font-size: 14px;      font-weight: bold;      font-family: 'Breve Title';      overflow: visible;    }    .banner__left__title span {      font-family: 'Breve Title';    }    .chevron {      width: 1.2em;      height: 1.2em;      vertical-align: middle;    }    .banner__left__cta {      background-color: transparent;      outline: none;      border: none;      padding: 0;      border-radius: 4px;      color: #000;      align-self: flex-start;      font-size: 14px;      display: none;      font-weight: bold;      display: none;    }    .banner__left__legal {      font-size: 8px;      line-height: 10px;      font-weight: normal;      color: #000;      margin-top: 10px;    }    .banner__center {      width: 20%;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      position: relative;      gap: 10px;    }    .banner__center img {      max-width: 80%;      max-height: 60%;      width: auto;      height: auto;      object-fit: contain;    }    .banner__right {      width: 40%;      background-size: cover !important;      background-repeat: no-repeat;      background-position: center;    }    img.contain {      transform: scale(1) !important;    }    .banner__right img {      width: 100%;      height: 100%;      object-fit: contain;      transform: scale(1.4) translateX(18%) translateY(11%);    }    .banner__disclaimer {      display: none;      color: white;      background-color: black;      position: absolute;      bottom: 0;      width: 100%;      text-align: center;      font-size: 10px;      padding: 10px 0;    }    .banner__with_disclaimer {      padding-bottom: 25px;    }    /* > 361px */    @media (min-width: 361px) {      .banner__left {        justify-content: space-between;      }      .banner__left__title .chevron {        display: none;      }    }    /* > 488px */    @media (min-width: 488px) {      .banner__with_disclaimer {        padding-bottom: 30px;      }    }    /* 371px - 488px */    @media (min-width: 371px) and (max-width: 488px) {      .banner__left__title {        line-height: 20px;        font-size: 16px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }    }    @container (min-width: 371px) and (max-width: 488px) {      .banner__right img {        transform: scale(1.4) translateX(10%) translateY(11%);      }    }    /* 489px - 783px */    @media (min-width: 489px) and (max-width: 783px) {      .banner__left__title {        font-size: 22px;        line-height: 26px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }            .banner__left__cta {        display: block;        font-size: 15px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.4) translateX(18%);        object-fit: contain;      }    }    /* > 784px */    @media (min-width: 784px) {      .banner__left__title {        font-size: 28px;        line-height: 28px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__left__cta {        display: block;        font-size: 19px;      }      .banner__right img {        transform: scale(1.6) translateX(13%) translateY(11%);        object-fit: contain;      }    }    /* > 992px */    @media (min-width: 992px) {      .banner__center {        flex-direction: row;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.6) translateX(9%) translateY(11%);        object-fit: contain;      }    }  </style></head><body>  <a href='#' target='_top' id='banner' class='banner'>    <div class='banner__left'>      <h1 id='title' class='banner__left__title'></h1>      <div>        <div id='cta' class='banner__left__cta'></div>        <div id='legal' class='banner__left__legal'></div>      </div>    </div>    <div id='attributes' class='banner__center'></div>    <div class='banner__right'>      <img id='product' src='#' alt='Product Image' />    </div>    <div id='disclaimer' class='banner__disclaimer'></div>  </a>  <script>    function getAccessibleColor(hexColor) {      const r = parseInt(hexColor.slice(1, 3), 16);      const g = parseInt(hexColor.slice(3, 5), 16);      const b = parseInt(hexColor.slice(5, 7), 16);      const luminance = 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2;      const threshold = 0.179;      return luminance < threshold ? '#FFFFFF' : '#000000';    };    let productImage = 'https://digitalcontent2.delhaize.be/pool/lib/278_2nd_1.jpg';    let backgroundColor = '';    const customBackgroundColor = '#174F25';    let textColor = '#000000';    if (customBackgroundColor && customBackgroundColor.length > 0) {      if (customBackgroundColor[0] !== '#') {        customBackgroundColor = '#' + customBackgroundColor;      };      backgroundColor = customBackgroundColor;    };    textColor = getAccessibleColor(backgroundColor);        const fonts = [      { name: 'Breve Title', file: 'BreveTitle-Bold.woff2', weight: 'bold' },      { name: 'Lato', file: 'Lato-Regular.woff2', weight: 'normal' },      { name: 'Lato', file: 'Lato-Bold.woff2', weight: 'bold' }    ];    const parentUrl = window?.parent?.location?.href;    const style = document.getElementById('styles');    fonts.forEach(font => {      let baseFontUrl = 'https://static.delhaize.be/static/next/fonts/';      if (parentUrl && parentUrl.includes('qa1')) {        baseFontUrl = 'https://static-qa1.delhaize.be/static/next/fonts/';      } else if (parentUrl && parentUrl.includes('qa2')) {        baseFontUrl = 'https://static-qa2.delhaize.be/static/next/fonts/';      }      const fontFace = `        @font-face {          font-family: \\'${font.name}\\';          src: url(${baseFontUrl + font.file});          font-weight: ${font.weight};        }      `;      style.appendChild(document.createTextNode(fontFace));    });    const textContent = {      'nl': {        'title': 'Vezels voor een goede start!',        'cta': 'Proef nu',        'legal': '',        'disclaimer': 'Alcoholmisbruik schaadt de gezondheid.'      },      'fr': {        'title': 'Des fibres pour une bonne journ&eacute;e !',        'cta': 'Go&ucirc;tez ici',        'legal': '',        'disclaimer': 'L’abus d’alcool nuit à la santé.'      },      'en': {        'title': 'Fibres for a good start of the day!',        'cta': 'Try now',        'legal': '',        'disclaimer': 'Alcohol abuse harms your health.'      }    };    const imageContent = {      'nl': {        'attribute': ''      },      'fr': {        'attribute': ''      },      'en': {        'attribute': ''      }    };    let urlContent = {      'nl': {        'web': 'https://www.delhaize.be/danone-activia',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD18&amp;cmsPageTitle=Activia'      },      'fr': {        'web': 'https://www.delhaize.be/danone-activia',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD18&amp;cmsPageTitle=Activia'      },      'en': {        'web': 'https://www.delhaize.be/danone-activia',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD18&amp;cmsPageTitle=Activia'      }    };    if ('true' !== 'false') {      for (const [key, value] of Object.entries(urlContent)) {        urlContent[key] = {          'web': 'https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR' + value['web'],          'app': value['app']        };      }    };    const adheseLanguage = 'nl';    const language = adheseLanguage.includes('adheseReplace') ? parent?.window?.adobeDataLayer?.[0]?.page?.pageInfo?.language : adheseLanguage;    const title = (language && textContent[language]?.['title']) ? textContent[language]['title'] : textContent['fr']['title'];    const cta = (language && textContent[language]?.['cta']) ? textContent[language]['cta'] : textContent['fr']['cta'];    const legalLine = (language && textContent[language]?.['legal']) ?  textContent[language]['legal'] : textContent['fr']['legal'];    const clickUrlApp = (language && urlContent[language]?.['app']) ? urlContent[language]['app'] : urlContent['fr']['app'];    const clickUrlWeb = (language && urlContent[language]?.['web']) ? urlContent[language]['web'] : urlContent['fr']['web'];    const disclaimer = (language && textContent[language]?.['disclaimer']) ?  textContent[language]['disclaimer'] : textContent['fr']['disclaimer'];    let attribute = (language && imageContent[language]?.['attribute']) ? imageContent[language]['attribute'] : imageContent['fr']['attribute'];    if (attribute === '') {      attribute = imageContent['fr']['attribute'];    }    let attributes = [];    attributes.push(attribute);    const attributeSizes = {      attr1Size: 'large',    };    function updateImagePosition(position) {      if (containProductImage) return;      let translateY = '11';      if (position === 'top_focused') {        translateY = '20';      } else if (position === 'bottom_focused') {        translateY = '-20';      };      let transform = '';      let innerWidth = window.innerWidth;      if (innerWidth < 361) {        translateY = translateY / 2;        transform = 'scale(1.4) translateX(18%) translateY(' + translateY + '%)';      } else if (innerWidth < 489) {        transform = 'scale(1.4) translateX(10%) translateY(' + translateY + '%)';      } else if (innerWidth < 992) {        transform = 'scale(1.6) translateX(13%) translateY(' + translateY + '%)';      } else {        transform = 'scale(1.6) translateX(9%) translateY(' + translateY + '%)';      };      let productImg = document.querySelector('.banner__right img');      productImg.style.transform = transform;    }    let productImagePosition;    if ('' === 'top_focused') {      productImagePosition = 'top_focused';    } else if ('' === 'bottom_focused') {      productImagePosition = 'bottom_focused';    } else {      productImagePosition = 'centered';    }    const containProductImage = '' === 'full_view';    if (containProductImage) {      document.querySelector('#product').classList.add('contain');      document.querySelector('#product').style.transform = 'scale(1)';    }    for (const [key, value] of Object.entries(attributeSizes)) {      if (value === 'large') {        document.documentElement.style.setProperty(`--${key}`, '1');      } else {        document.documentElement.style.setProperty(`--${key}`, '1.25');      }    }    const banner = document.querySelector('#banner');    const titleEl = document.querySelector('#title');    const ctaEl = document.querySelector('#cta');    const legalLineEl = document.querySelector('#legal');    const disclaimerEl = document.querySelector('#disclaimer');    const productImageEl = document.querySelector('#product');    const attributesEl = document.querySelector('#attributes');    banner.style.backgroundColor = backgroundColor;    banner.style.color = textColor;    ctaEl.style.color = textColor;    legalLineEl.style.color = textColor;    productImageEl.src = productImage;    if (legalLine && legalLine.length > 0) legalLineEl.innerHTML = legalLine;    if ('' === 'true') {      banner.classList.add('banner__with_disclaimer');      disclaimerEl.style.cssText = 'display: block';      disclaimerEl.innerHTML = disclaimer;    }    const withoutLastWord = (word, text) => {      const lastIndex = text.lastIndexOf(word);      if (lastIndex === -1) return text;      const before = text.slice(0, lastIndex);      const after = text.slice(lastIndex + word.length);      return before + after;    };    const addChevron = (element) => {      const lastWord = element.innerHTML.split(' ').pop();      const spanEl = document.createElement('span');      spanEl.style.whiteSpace = 'nowrap';      spanEl.innerHTML = lastWord;      spanEl.innerHTML += `<svg class='chevron' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' ><path stroke-linecap='round' stroke-linejoin='round' d='M8.25 4.5l7.5 7.5-7.5 7.5' /></svg>`;      element.innerHTML = withoutLastWord(lastWord, element.innerHTML);      element.appendChild(spanEl);    };    ctaEl.innerHTML = cta;    addChevron(ctaEl);    titleEl.innerHTML = title;    addChevron(titleEl);    attributes.forEach((attribute, index) => {      if (attribute === '') return;      const attributeEl = document.createElement('img');      attributeEl.src = attribute;      attributeEl.alt = 'Promotion attribute';      attributesEl.appendChild(attributeEl);    });    let onWeb = window.top.location.href.includes('localhost');    if (onWeb) {      document.getElementById('banner').href = clickUrlWeb;      document.getElementById('banner').addEventListener('click', function () {        const helper = window?.parent?.gambit?.helper;        const info = {           'slot': '14',          'clickUrl': clickUrlWeb,          'title': title,          'elementType': 'banner'        };        if (helper) helper.fireBrowserEvent('adheseAdClicked', info);      });    } else {      if (!productImage.includes('//pool/')) {        productImage = productImage + '.width.400';      }      const webView = window.ReactNativeWebView;      const bannerUrl = webView ? '#' : clickUrlApp;      const postMessage = false;      document.getElementById('banner').href = bannerUrl  || '#';      if ('true' !== 'false') {        document.getElementById('banner').addEventListener('click', function () {          if (webView && postMessage) {            data = { 'deeplink': clickUrlApp, 'clickTag': 'https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR', 'type': 'click' };            webView.postMessage(JSON.stringify(data));          } else {            var xhttp = new XMLHttpRequest();            xhttp.open('GET', 'https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR', true);            xhttp.send();          }        });      }    };    window.onload = function () {      updateImagePosition(productImagePosition);      if (attributes.length === 0 || attributes.every(attr => attr === '')) {        document.querySelector('.banner__center').style.cssText = 'display: none !important';        document.querySelector('.banner__left').style.cssText = 'width: 50%; padding-right: 8px';        document.querySelector('.banner__right').style.cssText = 'width: 50%;';      }      const imageIsBackground = 'true' === 'true';      if (imageIsBackground) {        document.querySelector('.banner__right').style.cssText += 'background-image: url(' + productImage + ');';        document.querySelector('#product').style.cssText = 'display: none';      }    };    window.addEventListener('resize', function () {      updateImagePosition(productImagePosition);    });  </script></body></html>",
    "tagUrl": "https://digitalcontent2.delhaize.be/pool/lib/278_0.advar",
    "heightLarge": "400",
    "widthLarge": "800",
    "libId": "278",
    "id": "13723",
    "advertiserId": "129",
    "orderProperty": "",
    "ext": "advar",
    "swfSrc": "https://digitalcontent2.delhaize.be/pool/lib/278_0.advar",
    "url": "https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR",
    "clickTag": "https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR",
    "swfSrc2nd": "https://digitalcontent2.delhaize.be/pool/lib/278_2nd_1.jpg",
    "swfSrc3rd": "",
    "swfSrc4th": "",
    "poolPath": "https://digitalcontent2.delhaize.be/pool/lib/",
    "comment": "",
    "adDuration": "0.0",
    "adDuration2nd": "0.0",
    "adDuration3rd": "0.0",
    "adDuration4th": "0.0",
    "orderName": "260.006.2025 - Danone - Activia - Online Visibility Large",
    "creativeName": "Brand display - danone activia",
    "deliveryMultiples": "exclusive_on_creative",
    "deliveryGroupId": "o215g0cr278",
    "adspaceStart": "1741215600000",
    "adspaceEnd": "1742425199000",
    "swfSrc5th": "",
    "swfSrc6th": "",
    "adDuration5th": "0.0",
    "adDuration6th": "0.0",
    "width3rd": "0",
    "width4th": "0",
    "width5th": "0",
    "width6th": "0",
    "height3rd": "0",
    "height4th": "0",
    "height5th": "0",
    "height6th": "0",
    "slotName": "delhaize-be_home_3-flex",
    "slotID": "14",
    "impressionCounter": "https://digitalcontent1.delhaize.be/track/13723//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "trackedImpressionCounter": "https://digitalcontent1.delhaize.be/track/13723//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "viewableImpressionCounter": "https://digitalcontent1.delhaize.be/track/13723-Adhese_IABview/sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "additionalCreatives": [
      {
        "dm": "dmDMGo215g0cr278;ADV129",
        "adType": "flex",
        "adFormat": "flex",
        "timeStamp": "1738924827000",
        "share": "0",
        "priority": "2",
        "orderId": "215",
        "adspaceId": "736",
        "adspaceKey": "",
        "body": "",
        "trackingUrl": "",
        "tracker": "https://digitalcontent1.delhaize.be/track/13723//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "extraField1": "",
        "extraField2": "",
        "altText": "",
        "height": "1",
        "width": "1",
        "tag": "<!DOCTYPE html><html lang='en'><head>  <title>Awareness banner</title>  <meta charset='UTF-8' />  <meta name='viewport' content='width=device-width, initial-scale=1.0' />  <style id='styles'>    :root {      --attrSize: 1;    }    html,    body {      height: 100%;      width: 100%;    }    html,    body,    body * {      font-family: 'Lato', sans-serif;      margin: 0;      padding: 0;      box-sizing: border-box;      text-decoration: none;      overflow: hidden;    }    .banner {      border-radius: 8px;      background-color: #e2eaad;      color: #000;      width: 100%;      height: 100%;      display: flex;      position: relative;      overflow: hidden;      user-select: none;      -moz-user-select: none;      -khtml-user-select: none;      -webkit-user-select: none;      -o-user-select: none;    }    .banner:hover {      cursor: pointer;    }    .banner__left {      width: 40%;      display: flex;      flex-direction: column;      gap: 10px;      padding-top: 20px;      padding-bottom: 20px;      padding-left: 20px;      justify-content: space-between;    }    .banner__left__title {      line-height: 15px;      font-size: 14px;      font-weight: bold;      font-family: 'Breve Title';      overflow: visible;    }    .banner__left__title span {      font-family: 'Breve Title';    }    .chevron {      width: 1.2em;      height: 1.2em;      vertical-align: middle;    }    .banner__left__cta {      background-color: transparent;      outline: none;      border: none;      padding: 0;      border-radius: 4px;      color: #000;      align-self: flex-start;      font-size: 14px;      display: none;      font-weight: bold;      display: none;    }    .banner__left__legal {      font-size: 8px;      line-height: 10px;      font-weight: normal;      color: #000;      margin-top: 10px;    }    .banner__center {      width: 20%;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      position: relative;      gap: 10px;    }    .banner__center img {      max-width: 80%;      max-height: 60%;      width: auto;      height: auto;      object-fit: contain;    }    .banner__right {      width: 40%;      background-size: cover !important;      background-repeat: no-repeat;      background-position: center;    }    img.contain {      transform: scale(1) !important;    }    .banner__right img {      width: 100%;      height: 100%;      object-fit: contain;      transform: scale(1.4) translateX(18%) translateY(11%);    }    .banner__disclaimer {      display: none;      color: white;      background-color: black;      position: absolute;      bottom: 0;      width: 100%;      text-align: center;      font-size: 10px;      padding: 10px 0;    }    .banner__with_disclaimer {      padding-bottom: 25px;    }    /* > 361px */    @media (min-width: 361px) {      .banner__left {        justify-content: space-between;      }      .banner__left__title .chevron {        display: none;      }    }    /* > 488px */    @media (min-width: 488px) {      .banner__with_disclaimer {        padding-bottom: 30px;      }    }    /* 371px - 488px */    @media (min-width: 371px) and (max-width: 488px) {      .banner__left__title {        line-height: 20px;        font-size: 16px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }    }    @container (min-width: 371px) and (max-width: 488px) {      .banner__right img {        transform: scale(1.4) translateX(10%) translateY(11%);      }    }    /* 489px - 783px */    @media (min-width: 489px) and (max-width: 783px) {      .banner__left__title {        font-size: 22px;        line-height: 26px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }            .banner__left__cta {        display: block;        font-size: 15px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.4) translateX(18%);        object-fit: contain;      }    }    /* > 784px */    @media (min-width: 784px) {      .banner__left__title {        font-size: 28px;        line-height: 28px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__left__cta {        display: block;        font-size: 19px;      }      .banner__right img {        transform: scale(1.6) translateX(13%) translateY(11%);        object-fit: contain;      }    }    /* > 992px */    @media (min-width: 992px) {      .banner__center {        flex-direction: row;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.6) translateX(9%) translateY(11%);        object-fit: contain;      }    }  </style></head><body>  <a href='#' target='_top' id='banner' class='banner'>    <div class='banner__left'>      <h1 id='title' class='banner__left__title'></h1>      <div>        <div id='cta' class='banner__left__cta'></div>        <div id='legal' class='banner__left__legal'></div>      </div>    </div>    <div id='attributes' class='banner__center'></div>    <div class='banner__right'>      <img id='product' src='#' alt='Product Image' />    </div>    <div id='disclaimer' class='banner__disclaimer'></div>  </a>  <script>    function getAccessibleColor(hexColor) {      const r = parseInt(hexColor.slice(1, 3), 16);      const g = parseInt(hexColor.slice(3, 5), 16);      const b = parseInt(hexColor.slice(5, 7), 16);      const luminance = 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2;      const threshold = 0.179;      return luminance < threshold ? '#FFFFFF' : '#000000';    };    let productImage = 'https://digitalcontent2.delhaize.be/pool/lib/278_2nd_1.jpg';    let backgroundColor = '';    const customBackgroundColor = '#174F25';    let textColor = '#000000';    if (customBackgroundColor && customBackgroundColor.length > 0) {      if (customBackgroundColor[0] !== '#') {        customBackgroundColor = '#' + customBackgroundColor;      };      backgroundColor = customBackgroundColor;    };    textColor = getAccessibleColor(backgroundColor);        const fonts = [      { name: 'Breve Title', file: 'BreveTitle-Bold.woff2', weight: 'bold' },      { name: 'Lato', file: 'Lato-Regular.woff2', weight: 'normal' },      { name: 'Lato', file: 'Lato-Bold.woff2', weight: 'bold' }    ];    const parentUrl = window?.parent?.location?.href;    const style = document.getElementById('styles');    fonts.forEach(font => {      let baseFontUrl = 'https://static.delhaize.be/static/next/fonts/';      if (parentUrl && parentUrl.includes('qa1')) {        baseFontUrl = 'https://static-qa1.delhaize.be/static/next/fonts/';      } else if (parentUrl && parentUrl.includes('qa2')) {        baseFontUrl = 'https://static-qa2.delhaize.be/static/next/fonts/';      }      const fontFace = `        @font-face {          font-family: \\'${font.name}\\';          src: url(${baseFontUrl + font.file});          font-weight: ${font.weight};        }      `;      style.appendChild(document.createTextNode(fontFace));    });    const textContent = {      'nl': {        'title': 'Vezels voor een goede start!',        'cta': 'Proef nu',        'legal': '',        'disclaimer': 'Alcoholmisbruik schaadt de gezondheid.'      },      'fr': {        'title': 'Des fibres pour une bonne journ&eacute;e !',        'cta': 'Go&ucirc;tez ici',        'legal': '',        'disclaimer': 'L’abus d’alcool nuit à la santé.'      },      'en': {        'title': 'Fibres for a good start of the day!',        'cta': 'Try now',        'legal': '',        'disclaimer': 'Alcohol abuse harms your health.'      }    };    const imageContent = {      'nl': {        'attribute': ''      },      'fr': {        'attribute': ''      },      'en': {        'attribute': ''      }    };    let urlContent = {      'nl': {        'web': 'https://www.delhaize.be/danone-activia',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD18&amp;cmsPageTitle=Activia'      },      'fr': {        'web': 'https://www.delhaize.be/danone-activia',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD18&amp;cmsPageTitle=Activia'      },      'en': {        'web': 'https://www.delhaize.be/danone-activia',        'app': 'be.delhaize.my://www.delhaize.be/content-selling-page?cmsPageId=MMD18&amp;cmsPageTitle=Activia'      }    };    if ('true' !== 'false') {      for (const [key, value] of Object.entries(urlContent)) {        urlContent[key] = {          'web': 'https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR' + value['web'],          'app': value['app']        };      }    };    const adheseLanguage = 'nl';    const language = adheseLanguage.includes('adheseReplace') ? parent?.window?.adobeDataLayer?.[0]?.page?.pageInfo?.language : adheseLanguage;    const title = (language && textContent[language]?.['title']) ? textContent[language]['title'] : textContent['fr']['title'];    const cta = (language && textContent[language]?.['cta']) ? textContent[language]['cta'] : textContent['fr']['cta'];    const legalLine = (language && textContent[language]?.['legal']) ?  textContent[language]['legal'] : textContent['fr']['legal'];    const clickUrlApp = (language && urlContent[language]?.['app']) ? urlContent[language]['app'] : urlContent['fr']['app'];    const clickUrlWeb = (language && urlContent[language]?.['web']) ? urlContent[language]['web'] : urlContent['fr']['web'];    const disclaimer = (language && textContent[language]?.['disclaimer']) ?  textContent[language]['disclaimer'] : textContent['fr']['disclaimer'];    let attribute = (language && imageContent[language]?.['attribute']) ? imageContent[language]['attribute'] : imageContent['fr']['attribute'];    if (attribute === '') {      attribute = imageContent['fr']['attribute'];    }    let attributes = [];    attributes.push(attribute);    const attributeSizes = {      attr1Size: 'large',    };    function updateImagePosition(position) {      if (containProductImage) return;      let translateY = '11';      if (position === 'top_focused') {        translateY = '20';      } else if (position === 'bottom_focused') {        translateY = '-20';      };      let transform = '';      let innerWidth = window.innerWidth;      if (innerWidth < 361) {        translateY = translateY / 2;        transform = 'scale(1.4) translateX(18%) translateY(' + translateY + '%)';      } else if (innerWidth < 489) {        transform = 'scale(1.4) translateX(10%) translateY(' + translateY + '%)';      } else if (innerWidth < 992) {        transform = 'scale(1.6) translateX(13%) translateY(' + translateY + '%)';      } else {        transform = 'scale(1.6) translateX(9%) translateY(' + translateY + '%)';      };      let productImg = document.querySelector('.banner__right img');      productImg.style.transform = transform;    }    let productImagePosition;    if ('' === 'top_focused') {      productImagePosition = 'top_focused';    } else if ('' === 'bottom_focused') {      productImagePosition = 'bottom_focused';    } else {      productImagePosition = 'centered';    }    const containProductImage = '' === 'full_view';    if (containProductImage) {      document.querySelector('#product').classList.add('contain');      document.querySelector('#product').style.transform = 'scale(1)';    }    for (const [key, value] of Object.entries(attributeSizes)) {      if (value === 'large') {        document.documentElement.style.setProperty(`--${key}`, '1');      } else {        document.documentElement.style.setProperty(`--${key}`, '1.25');      }    }    const banner = document.querySelector('#banner');    const titleEl = document.querySelector('#title');    const ctaEl = document.querySelector('#cta');    const legalLineEl = document.querySelector('#legal');    const disclaimerEl = document.querySelector('#disclaimer');    const productImageEl = document.querySelector('#product');    const attributesEl = document.querySelector('#attributes');    banner.style.backgroundColor = backgroundColor;    banner.style.color = textColor;    ctaEl.style.color = textColor;    legalLineEl.style.color = textColor;    productImageEl.src = productImage;    if (legalLine && legalLine.length > 0) legalLineEl.innerHTML = legalLine;    if ('' === 'true') {      banner.classList.add('banner__with_disclaimer');      disclaimerEl.style.cssText = 'display: block';      disclaimerEl.innerHTML = disclaimer;    }    const withoutLastWord = (word, text) => {      const lastIndex = text.lastIndexOf(word);      if (lastIndex === -1) return text;      const before = text.slice(0, lastIndex);      const after = text.slice(lastIndex + word.length);      return before + after;    };    const addChevron = (element) => {      const lastWord = element.innerHTML.split(' ').pop();      const spanEl = document.createElement('span');      spanEl.style.whiteSpace = 'nowrap';      spanEl.innerHTML = lastWord;      spanEl.innerHTML += `<svg class='chevron' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' ><path stroke-linecap='round' stroke-linejoin='round' d='M8.25 4.5l7.5 7.5-7.5 7.5' /></svg>`;      element.innerHTML = withoutLastWord(lastWord, element.innerHTML);      element.appendChild(spanEl);    };    ctaEl.innerHTML = cta;    addChevron(ctaEl);    titleEl.innerHTML = title;    addChevron(titleEl);    attributes.forEach((attribute, index) => {      if (attribute === '') return;      const attributeEl = document.createElement('img');      attributeEl.src = attribute;      attributeEl.alt = 'Promotion attribute';      attributesEl.appendChild(attributeEl);    });    let onWeb = window.top.location.href.includes('localhost');    if (onWeb) {      document.getElementById('banner').href = clickUrlWeb;      document.getElementById('banner').addEventListener('click', function () {        const helper = window?.parent?.gambit?.helper;        const info = {           'slot': '14',          'clickUrl': clickUrlWeb,          'title': title,          'elementType': 'banner'        };        if (helper) helper.fireBrowserEvent('adheseAdClicked', info);      });    } else {      if (!productImage.includes('//pool/')) {        productImage = productImage + '.width.400';      }      const webView = window.ReactNativeWebView;      const bannerUrl = webView ? '#' : clickUrlApp;      const postMessage = false;      document.getElementById('banner').href = bannerUrl  || '#';      if ('true' !== 'false') {        document.getElementById('banner').addEventListener('click', function () {          if (webView && postMessage) {            data = { 'deeplink': clickUrlApp, 'clickTag': 'https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR', 'type': 'click' };            webView.postMessage(JSON.stringify(data));          } else {            var xhttp = new XMLHttpRequest();            xhttp.open('GET', 'https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR', true);            xhttp.send();          }        });      }    };    window.onload = function () {      updateImagePosition(productImagePosition);      if (attributes.length === 0 || attributes.every(attr => attr === '')) {        document.querySelector('.banner__center').style.cssText = 'display: none !important';        document.querySelector('.banner__left').style.cssText = 'width: 50%; padding-right: 8px';        document.querySelector('.banner__right').style.cssText = 'width: 50%;';      }      const imageIsBackground = 'true' === 'true';      if (imageIsBackground) {        document.querySelector('.banner__right').style.cssText += 'background-image: url(' + productImage + ');';        document.querySelector('#product').style.cssText = 'display: none';      }    };    window.addEventListener('resize', function () {      updateImagePosition(productImagePosition);    });  </script></body></html>",
        "tagUrl": "https://digitalcontent2.delhaize.be/pool/lib/278_0.advar",
        "heightLarge": "400",
        "widthLarge": "800",
        "libId": "278",
        "id": "13723",
        "advertiserId": "129",
        "orderProperty": "",
        "ext": "advar",
        "swfSrc": "https://digitalcontent2.delhaize.be/pool/lib/278_0.advar",
        "url": "https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR",
        "clickTag": "https://digitalcontent1.delhaize.be/raylene//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad13723-278/UR",
        "swfSrc2nd": "https://digitalcontent2.delhaize.be/pool/lib/278_2nd_1.jpg",
        "swfSrc3rd": "",
        "swfSrc4th": "",
        "poolPath": "https://digitalcontent2.delhaize.be/pool/lib/",
        "comment": "",
        "adDuration": "0.0",
        "adDuration2nd": "0.0",
        "adDuration3rd": "0.0",
        "adDuration4th": "0.0",
        "orderName": "260.006.2025 - Danone - Activia - Online Visibility Large",
        "creativeName": "Brand display - danone activia",
        "deliveryMultiples": "exclusive_on_creative",
        "deliveryGroupId": "o215g0cr278",
        "adspaceStart": "1741215600000",
        "adspaceEnd": "1742425199000",
        "swfSrc5th": "",
        "swfSrc6th": "",
        "adDuration5th": "0.0",
        "adDuration6th": "0.0",
        "width3rd": "0",
        "width4th": "0",
        "width5th": "0",
        "width6th": "0",
        "height3rd": "0",
        "height4th": "0",
        "height5th": "0",
        "height6th": "0",
        "slotName": "delhaize-be_home_3-flex",
        "slotID": "14",
        "impressionCounter": "https://digitalcontent1.delhaize.be/track/13723//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "trackedImpressionCounter": "https://digitalcontent1.delhaize.be/track/13723//sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "viewableImpressionCounter": "https://digitalcontent1.delhaize.be/track/13723-Adhese_IABview/sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "additionalCreatives": "<ADDITIONAL_CREATIVES_ARRAY>",
        "origin": "JERLICIA",
        "originData": {},
        "auctionable": "true",
        "additionalViewableTracker": "",
        "additionalCreativeTracker": "https://digitalcontent1.delhaize.be/track/13723-additional-278/sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826"
      }
    ],
    "origin": "JERLICIA",
    "originData": {},
    "auctionable": "true",
    "additionalViewableTracker": "",
    "additionalCreativeTracker": "https://digitalcontent1.delhaize.be/track/13723-additional-278/sl14/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dtunknown/ogcontrol/IIe6aed5eb-d02e-445d-a116-7e4813007404/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "extension": {
      "mediaType": "banner"
    }
  },
  {
    "dm": "dmDMGo30g0cr41;ADV0",
    "adType": "flex",
    "adFormat": "flex",
    "timeStamp": "1723798650000",
    "share": "0",
    "priority": "4",
    "orderId": "30",
    "adspaceId": "78",
    "adspaceKey": "",
    "body": "",
    "trackingUrl": "",
    "tracker": "https://digitalcontent1.delhaize.be/track/1170//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "extraField1": "",
    "extraField2": "",
    "altText": "",
    "height": "1",
    "width": "1",
    "tag": "<!DOCTYPE html><html lang='en'><head>  <title>Awareness banner</title>  <meta charset='UTF-8' />  <meta name='viewport' content='width=device-width, initial-scale=1.0' />  <style id='styles'>    :root {      --attrSize: 1;    }    html,    body {      height: 100%;      width: 100%;    }    html,    body,    body * {      font-family: 'Lato', sans-serif;      margin: 0;      padding: 0;      box-sizing: border-box;      text-decoration: none;      overflow: hidden;    }    .banner {      border-radius: 8px;      background-color: #e2eaad;      color: #000;      width: 100%;      height: 100%;      display: flex;      position: relative;      overflow: hidden;      user-select: none;      -moz-user-select: none;      -khtml-user-select: none;      -webkit-user-select: none;      -o-user-select: none;    }    .banner:hover {      cursor: pointer;    }    .banner__left {      width: 40%;      display: flex;      flex-direction: column;      gap: 10px;      padding-top: 20px;      padding-bottom: 20px;      padding-left: 20px;      justify-content: space-between;    }    .banner__left__title {      line-height: 15px;      font-size: 14px;      font-weight: bold;      font-family: 'Breve Title';      overflow: visible;    }    .banner__left__title span {      font-family: 'Breve Title';    }    .chevron {      width: 1.2em;      height: 1.2em;      vertical-align: middle;    }    .banner__left__cta {      background-color: transparent;      outline: none;      border: none;      padding: 0;      border-radius: 4px;      color: #000;      align-self: flex-start;      font-size: 14px;      display: none;      font-weight: bold;      display: none;    }    .banner__left__legal {      font-size: 8px;      line-height: 10px;      font-weight: normal;      color: #000;      margin-top: 10px;    }    .banner__center {      width: 20%;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      position: relative;      gap: 10px;    }    .banner__center img {      max-width: 80%;      max-height: 60%;      width: auto;      height: auto;      object-fit: contain;    }    .banner__right {      width: 40%;      background-size: cover !important;      background-repeat: no-repeat;      background-position: center;    }    img.contain {      transform: scale(1) !important;    }    .banner__right img {      width: 100%;      height: 100%;      object-fit: contain;      transform: scale(1.4) translateX(18%) translateY(11%);    }    .banner__disclaimer {      display: none;      color: white;      background-color: black;      position: absolute;      bottom: 0;      width: 100%;      text-align: center;      font-size: 10px;      padding: 10px 0;    }    .banner__with_disclaimer {      padding-bottom: 25px;    }    /* > 361px */    @media (min-width: 361px) {      .banner__left {        justify-content: space-between;      }      .banner__left__title .chevron {        display: none;      }    }    /* > 488px */    @media (min-width: 488px) {      .banner__with_disclaimer {        padding-bottom: 30px;      }    }    /* 371px - 488px */    @media (min-width: 371px) and (max-width: 488px) {      .banner__left__title {        line-height: 20px;        font-size: 16px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }    }    @container (min-width: 371px) and (max-width: 488px) {      .banner__right img {        transform: scale(1.4) translateX(10%) translateY(11%);      }    }    /* 489px - 783px */    @media (min-width: 489px) and (max-width: 783px) {      .banner__left__title {        font-size: 22px;        line-height: 26px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }            .banner__left__cta {        display: block;        font-size: 15px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.4) translateX(18%);        object-fit: contain;      }    }    /* > 784px */    @media (min-width: 784px) {      .banner__left__title {        font-size: 28px;        line-height: 28px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__left__cta {        display: block;        font-size: 19px;      }      .banner__right img {        transform: scale(1.6) translateX(13%) translateY(11%);        object-fit: contain;      }    }    /* > 992px */    @media (min-width: 992px) {      .banner__center {        flex-direction: row;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.6) translateX(9%) translateY(11%);        object-fit: contain;      }    }  </style></head><body>  <a href='#' target='_top' id='banner' class='banner'>    <div class='banner__left'>      <h1 id='title' class='banner__left__title'></h1>      <div>        <div id='cta' class='banner__left__cta'></div>        <div id='legal' class='banner__left__legal'></div>      </div>    </div>    <div id='attributes' class='banner__center'></div>    <div class='banner__right'>      <img id='product' src='#' alt='Product Image' />    </div>    <div id='disclaimer' class='banner__disclaimer'></div>  </a>  <script>    function getAccessibleColor(hexColor) {      const r = parseInt(hexColor.slice(1, 3), 16);      const g = parseInt(hexColor.slice(3, 5), 16);      const b = parseInt(hexColor.slice(5, 7), 16);      const luminance = 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2;      const threshold = 0.179;      return luminance < threshold ? '#FFFFFF' : '#000000';    };    let productImage = 'https://digitalcontent2.delhaize.be/pool/lib/41_2nd_3.png';    let backgroundColor = '';    const customBackgroundColor = '#EFA7B6';    let textColor = '#000000';    if (customBackgroundColor && customBackgroundColor.length > 0) {      if (customBackgroundColor[0] !== '#') {        customBackgroundColor = '#' + customBackgroundColor;      };      backgroundColor = customBackgroundColor;    };    textColor = getAccessibleColor(backgroundColor);        const fonts = [      { name: 'Breve Title', file: 'BreveTitle-Bold.woff2', weight: 'bold' },      { name: 'Lato', file: 'Lato-Regular.woff2', weight: 'normal' },      { name: 'Lato', file: 'Lato-Bold.woff2', weight: 'bold' }    ];    const parentUrl = window?.parent?.location?.href;    const style = document.getElementById('styles');    fonts.forEach(font => {      let baseFontUrl = 'https://static.delhaize.be/static/next/fonts/';      if (parentUrl && parentUrl.includes('qa1')) {        baseFontUrl = 'https://static-qa1.delhaize.be/static/next/fonts/';      } else if (parentUrl && parentUrl.includes('qa2')) {        baseFontUrl = 'https://static-qa2.delhaize.be/static/next/fonts/';      }      const fontFace = `        @font-face {          font-family: \\'${font.name}\\';          src: url(${baseFontUrl + font.file});          font-weight: ${font.weight};        }      `;      style.appendChild(document.createTextNode(fontFace));    });    const textContent = {      'nl': {        'title': 'Activeer jouw e-Deals en verzamel extra SuperPlus-punten !',        'cta': 'Naar mijn e-Deals',        'legal': '',        'disclaimer': 'Alcoholmisbruik schaadt de gezondheid.'      },      'fr': {        'title': 'Activez vos e-Deals et gagnez des points SuperPlus',        'cta': 'Vers mes e-Deals',        'legal': '',        'disclaimer': 'L’abus d’alcool nuit à la santé.'      },      'en': {        'title': '',        'cta': '',        'legal': '',        'disclaimer': 'Alcohol abuse harms your health.'      }    };    const imageContent = {      'nl': {        'attribute': ''      },      'fr': {        'attribute': ''      },      'en': {        'attribute': ''      }    };    let urlContent = {      'nl': {        'web': 'https://www.delhaize.be/my-account/personal-offers',        'app': ''      },      'fr': {        'web': 'https://www.delhaize.be/my-account/personal-offers',        'app': ''      },      'en': {        'web': 'https://www.delhaize.be/my-account/personal-offers',        'app': ''      }    };    if ('true' !== 'false') {      for (const [key, value] of Object.entries(urlContent)) {        urlContent[key] = {          'web': 'https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR' + value['web'],          'app': value['app']        };      }    };    const adheseLanguage = 'nl';    const language = adheseLanguage.includes('adheseReplace') ? parent?.window?.adobeDataLayer?.[0]?.page?.pageInfo?.language : adheseLanguage;    const title = (language && textContent[language]?.['title']) ? textContent[language]['title'] : textContent['fr']['title'];    const cta = (language && textContent[language]?.['cta']) ? textContent[language]['cta'] : textContent['fr']['cta'];    const legalLine = (language && textContent[language]?.['legal']) ?  textContent[language]['legal'] : textContent['fr']['legal'];    const clickUrlApp = (language && urlContent[language]?.['app']) ? urlContent[language]['app'] : urlContent['fr']['app'];    const clickUrlWeb = (language && urlContent[language]?.['web']) ? urlContent[language]['web'] : urlContent['fr']['web'];    const disclaimer = (language && textContent[language]?.['disclaimer']) ?  textContent[language]['disclaimer'] : textContent['fr']['disclaimer'];    let attribute = (language && imageContent[language]?.['attribute']) ? imageContent[language]['attribute'] : imageContent['fr']['attribute'];    if (attribute === '') {      attribute = imageContent['fr']['attribute'];    }    let attributes = [];    attributes.push(attribute);    const attributeSizes = {      attr1Size: 'large',    };    function updateImagePosition(position) {      if (containProductImage) return;      let translateY = '11';      if (position === 'top_focused') {        translateY = '20';      } else if (position === 'bottom_focused') {        translateY = '-20';      };      let transform = '';      let innerWidth = window.innerWidth;      if (innerWidth < 361) {        translateY = translateY / 2;        transform = 'scale(1.4) translateX(18%) translateY(' + translateY + '%)';      } else if (innerWidth < 489) {        transform = 'scale(1.4) translateX(10%) translateY(' + translateY + '%)';      } else if (innerWidth < 992) {        transform = 'scale(1.6) translateX(13%) translateY(' + translateY + '%)';      } else {        transform = 'scale(1.6) translateX(9%) translateY(' + translateY + '%)';      };      let productImg = document.querySelector('.banner__right img');      productImg.style.transform = transform;    }    let productImagePosition;    if ('' === 'top_focused') {      productImagePosition = 'top_focused';    } else if ('' === 'bottom_focused') {      productImagePosition = 'bottom_focused';    } else {      productImagePosition = 'centered';    }    const containProductImage = '' === 'full_view';    if (containProductImage) {      document.querySelector('#product').classList.add('contain');      document.querySelector('#product').style.transform = 'scale(1)';    }    for (const [key, value] of Object.entries(attributeSizes)) {      if (value === 'large') {        document.documentElement.style.setProperty(`--${key}`, '1');      } else {        document.documentElement.style.setProperty(`--${key}`, '1.25');      }    }    const banner = document.querySelector('#banner');    const titleEl = document.querySelector('#title');    const ctaEl = document.querySelector('#cta');    const legalLineEl = document.querySelector('#legal');    const disclaimerEl = document.querySelector('#disclaimer');    const productImageEl = document.querySelector('#product');    const attributesEl = document.querySelector('#attributes');    banner.style.backgroundColor = backgroundColor;    banner.style.color = textColor;    ctaEl.style.color = textColor;    legalLineEl.style.color = textColor;    productImageEl.src = productImage;    if (legalLine && legalLine.length > 0) legalLineEl.innerHTML = legalLine;    if ('' === 'true') {      banner.classList.add('banner__with_disclaimer');      disclaimerEl.style.cssText = 'display: block';      disclaimerEl.innerHTML = disclaimer;    }    const withoutLastWord = (word, text) => {      const lastIndex = text.lastIndexOf(word);      if (lastIndex === -1) return text;      const before = text.slice(0, lastIndex);      const after = text.slice(lastIndex + word.length);      return before + after;    };    const addChevron = (element) => {      const lastWord = element.innerHTML.split(' ').pop();      const spanEl = document.createElement('span');      spanEl.style.whiteSpace = 'nowrap';      spanEl.innerHTML = lastWord;      spanEl.innerHTML += `<svg class='chevron' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' ><path stroke-linecap='round' stroke-linejoin='round' d='M8.25 4.5l7.5 7.5-7.5 7.5' /></svg>`;      element.innerHTML = withoutLastWord(lastWord, element.innerHTML);      element.appendChild(spanEl);    };    ctaEl.innerHTML = cta;    addChevron(ctaEl);    titleEl.innerHTML = title;    addChevron(titleEl);    attributes.forEach((attribute, index) => {      if (attribute === '') return;      const attributeEl = document.createElement('img');      attributeEl.src = attribute;      attributeEl.alt = 'Promotion attribute';      attributesEl.appendChild(attributeEl);    });    let onWeb = window.top.location.href.includes('localhost');    if (onWeb) {      document.getElementById('banner').href = clickUrlWeb;      document.getElementById('banner').addEventListener('click', function () {        const helper = window?.parent?.gambit?.helper;        const info = {           'slot': '15',          'clickUrl': clickUrlWeb,          'title': title,          'elementType': 'banner'        };        if (helper) helper.fireBrowserEvent('adheseAdClicked', info);      });    } else {      if (!productImage.includes('//pool/')) {        productImage = productImage + '.width.400';      }      const webView = window.ReactNativeWebView;      const bannerUrl = webView ? '#' : clickUrlApp;      const postMessage = false;      document.getElementById('banner').href = bannerUrl  || '#';      if ('true' !== 'false') {        document.getElementById('banner').addEventListener('click', function () {          if (webView && postMessage) {            data = { 'deeplink': clickUrlApp, 'clickTag': 'https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR', 'type': 'click' };            webView.postMessage(JSON.stringify(data));          } else {            var xhttp = new XMLHttpRequest();            xhttp.open('GET', 'https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR', true);            xhttp.send();          }        });      }    };    window.onload = function () {      updateImagePosition(productImagePosition);      if (attributes.length === 0 || attributes.every(attr => attr === '')) {        document.querySelector('.banner__center').style.cssText = 'display: none !important';        document.querySelector('.banner__left').style.cssText = 'width: 50%; padding-right: 8px';        document.querySelector('.banner__right').style.cssText = 'width: 50%;';      }      const imageIsBackground = 'false' === 'true';      if (imageIsBackground) {        document.querySelector('.banner__right').style.cssText += 'background-image: url(' + productImage + ');';        document.querySelector('#product').style.cssText = 'display: none';      }    };    window.addEventListener('resize', function () {      updateImagePosition(productImagePosition);    });  </script></body></html>",
    "tagUrl": "https://digitalcontent2.delhaize.be/pool/lib/41_0.advar",
    "heightLarge": "500",
    "widthLarge": "500",
    "libId": "41",
    "id": "1170",
    "advertiserId": "0",
    "orderProperty": "",
    "ext": "advar",
    "swfSrc": "https://digitalcontent2.delhaize.be/pool/lib/41_0.advar",
    "url": "https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR",
    "clickTag": "https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR",
    "swfSrc2nd": "https://digitalcontent2.delhaize.be/pool/lib/41_2nd_3.png",
    "swfSrc3rd": "",
    "swfSrc4th": "",
    "poolPath": "https://digitalcontent2.delhaize.be/pool/lib/",
    "comment": "",
    "adDuration": "0.0",
    "adDuration2nd": "0.0",
    "adDuration3rd": "0.0",
    "adDuration4th": "0.0",
    "orderName": "e-com - Filler Campaign 2 - e-deal",
    "creativeName": "filler campaign e-deal",
    "deliveryMultiples": "exclusive_on_creative",
    "deliveryGroupId": "o30g0cr41",
    "adspaceStart": "1741215600000",
    "adspaceEnd": "1751493599000",
    "swfSrc5th": "",
    "swfSrc6th": "",
    "adDuration5th": "0.0",
    "adDuration6th": "0.0",
    "width3rd": "0",
    "width4th": "0",
    "width5th": "0",
    "width6th": "0",
    "height3rd": "0",
    "height4th": "0",
    "height5th": "0",
    "height6th": "0",
    "slotName": "delhaize-be_home_4-flex",
    "slotID": "15",
    "impressionCounter": "https://digitalcontent1.delhaize.be/track/1170//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "trackedImpressionCounter": "https://digitalcontent1.delhaize.be/track/1170//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "viewableImpressionCounter": "https://digitalcontent1.delhaize.be/track/1170-Adhese_IABview/sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "additionalCreatives": [
      {
        "dm": "dmDMGo30g0cr41;ADV0",
        "adType": "flex",
        "adFormat": "flex",
        "timeStamp": "1723798650000",
        "share": "0",
        "priority": "4",
        "orderId": "30",
        "adspaceId": "78",
        "adspaceKey": "",
        "body": "",
        "trackingUrl": "",
        "tracker": "https://digitalcontent1.delhaize.be/track/1170//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "extraField1": "",
        "extraField2": "",
        "altText": "",
        "height": "1",
        "width": "1",
        "tag": "<!DOCTYPE html><html lang='en'><head>  <title>Awareness banner</title>  <meta charset='UTF-8' />  <meta name='viewport' content='width=device-width, initial-scale=1.0' />  <style id='styles'>    :root {      --attrSize: 1;    }    html,    body {      height: 100%;      width: 100%;    }    html,    body,    body * {      font-family: 'Lato', sans-serif;      margin: 0;      padding: 0;      box-sizing: border-box;      text-decoration: none;      overflow: hidden;    }    .banner {      border-radius: 8px;      background-color: #e2eaad;      color: #000;      width: 100%;      height: 100%;      display: flex;      position: relative;      overflow: hidden;      user-select: none;      -moz-user-select: none;      -khtml-user-select: none;      -webkit-user-select: none;      -o-user-select: none;    }    .banner:hover {      cursor: pointer;    }    .banner__left {      width: 40%;      display: flex;      flex-direction: column;      gap: 10px;      padding-top: 20px;      padding-bottom: 20px;      padding-left: 20px;      justify-content: space-between;    }    .banner__left__title {      line-height: 15px;      font-size: 14px;      font-weight: bold;      font-family: 'Breve Title';      overflow: visible;    }    .banner__left__title span {      font-family: 'Breve Title';    }    .chevron {      width: 1.2em;      height: 1.2em;      vertical-align: middle;    }    .banner__left__cta {      background-color: transparent;      outline: none;      border: none;      padding: 0;      border-radius: 4px;      color: #000;      align-self: flex-start;      font-size: 14px;      display: none;      font-weight: bold;      display: none;    }    .banner__left__legal {      font-size: 8px;      line-height: 10px;      font-weight: normal;      color: #000;      margin-top: 10px;    }    .banner__center {      width: 20%;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      position: relative;      gap: 10px;    }    .banner__center img {      max-width: 80%;      max-height: 60%;      width: auto;      height: auto;      object-fit: contain;    }    .banner__right {      width: 40%;      background-size: cover !important;      background-repeat: no-repeat;      background-position: center;    }    img.contain {      transform: scale(1) !important;    }    .banner__right img {      width: 100%;      height: 100%;      object-fit: contain;      transform: scale(1.4) translateX(18%) translateY(11%);    }    .banner__disclaimer {      display: none;      color: white;      background-color: black;      position: absolute;      bottom: 0;      width: 100%;      text-align: center;      font-size: 10px;      padding: 10px 0;    }    .banner__with_disclaimer {      padding-bottom: 25px;    }    /* > 361px */    @media (min-width: 361px) {      .banner__left {        justify-content: space-between;      }      .banner__left__title .chevron {        display: none;      }    }    /* > 488px */    @media (min-width: 488px) {      .banner__with_disclaimer {        padding-bottom: 30px;      }    }    /* 371px - 488px */    @media (min-width: 371px) and (max-width: 488px) {      .banner__left__title {        line-height: 20px;        font-size: 16px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }    }    @container (min-width: 371px) and (max-width: 488px) {      .banner__right img {        transform: scale(1.4) translateX(10%) translateY(11%);      }    }    /* 489px - 783px */    @media (min-width: 489px) and (max-width: 783px) {      .banner__left__title {        font-size: 22px;        line-height: 26px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }            .banner__left__cta {        display: block;        font-size: 15px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.4) translateX(18%);        object-fit: contain;      }    }    /* > 784px */    @media (min-width: 784px) {      .banner__left__title {        font-size: 28px;        line-height: 28px;      }      .banner__left__legal {        font-size: 10px;        line-height: 12px;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__left__cta {        display: block;        font-size: 19px;      }      .banner__right img {        transform: scale(1.6) translateX(13%) translateY(11%);        object-fit: contain;      }    }    /* > 992px */    @media (min-width: 992px) {      .banner__center {        flex-direction: row;      }      .banner__center img {        max-width: 80%;        max-height: 80%;        width: auto;        height: auto;        object-fit: contain;      }      .banner__right img {        transform: scale(1.6) translateX(9%) translateY(11%);        object-fit: contain;      }    }  </style></head><body>  <a href='#' target='_top' id='banner' class='banner'>    <div class='banner__left'>      <h1 id='title' class='banner__left__title'></h1>      <div>        <div id='cta' class='banner__left__cta'></div>        <div id='legal' class='banner__left__legal'></div>      </div>    </div>    <div id='attributes' class='banner__center'></div>    <div class='banner__right'>      <img id='product' src='#' alt='Product Image' />    </div>    <div id='disclaimer' class='banner__disclaimer'></div>  </a>  <script>    function getAccessibleColor(hexColor) {      const r = parseInt(hexColor.slice(1, 3), 16);      const g = parseInt(hexColor.slice(3, 5), 16);      const b = parseInt(hexColor.slice(5, 7), 16);      const luminance = 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2;      const threshold = 0.179;      return luminance < threshold ? '#FFFFFF' : '#000000';    };    let productImage = 'https://digitalcontent2.delhaize.be/pool/lib/41_2nd_3.png';    let backgroundColor = '';    const customBackgroundColor = '#EFA7B6';    let textColor = '#000000';    if (customBackgroundColor && customBackgroundColor.length > 0) {      if (customBackgroundColor[0] !== '#') {        customBackgroundColor = '#' + customBackgroundColor;      };      backgroundColor = customBackgroundColor;    };    textColor = getAccessibleColor(backgroundColor);        const fonts = [      { name: 'Breve Title', file: 'BreveTitle-Bold.woff2', weight: 'bold' },      { name: 'Lato', file: 'Lato-Regular.woff2', weight: 'normal' },      { name: 'Lato', file: 'Lato-Bold.woff2', weight: 'bold' }    ];    const parentUrl = window?.parent?.location?.href;    const style = document.getElementById('styles');    fonts.forEach(font => {      let baseFontUrl = 'https://static.delhaize.be/static/next/fonts/';      if (parentUrl && parentUrl.includes('qa1')) {        baseFontUrl = 'https://static-qa1.delhaize.be/static/next/fonts/';      } else if (parentUrl && parentUrl.includes('qa2')) {        baseFontUrl = 'https://static-qa2.delhaize.be/static/next/fonts/';      }      const fontFace = `        @font-face {          font-family: \\'${font.name}\\';          src: url(${baseFontUrl + font.file});          font-weight: ${font.weight};        }      `;      style.appendChild(document.createTextNode(fontFace));    });    const textContent = {      'nl': {        'title': 'Activeer jouw e-Deals en verzamel extra SuperPlus-punten !',        'cta': 'Naar mijn e-Deals',        'legal': '',        'disclaimer': 'Alcoholmisbruik schaadt de gezondheid.'      },      'fr': {        'title': 'Activez vos e-Deals et gagnez des points SuperPlus',        'cta': 'Vers mes e-Deals',        'legal': '',        'disclaimer': 'L’abus d’alcool nuit à la santé.'      },      'en': {        'title': '',        'cta': '',        'legal': '',        'disclaimer': 'Alcohol abuse harms your health.'      }    };    const imageContent = {      'nl': {        'attribute': ''      },      'fr': {        'attribute': ''      },      'en': {        'attribute': ''      }    };    let urlContent = {      'nl': {        'web': 'https://www.delhaize.be/my-account/personal-offers',        'app': ''      },      'fr': {        'web': 'https://www.delhaize.be/my-account/personal-offers',        'app': ''      },      'en': {        'web': 'https://www.delhaize.be/my-account/personal-offers',        'app': ''      }    };    if ('true' !== 'false') {      for (const [key, value] of Object.entries(urlContent)) {        urlContent[key] = {          'web': 'https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR' + value['web'],          'app': value['app']        };      }    };    const adheseLanguage = 'nl';    const language = adheseLanguage.includes('adheseReplace') ? parent?.window?.adobeDataLayer?.[0]?.page?.pageInfo?.language : adheseLanguage;    const title = (language && textContent[language]?.['title']) ? textContent[language]['title'] : textContent['fr']['title'];    const cta = (language && textContent[language]?.['cta']) ? textContent[language]['cta'] : textContent['fr']['cta'];    const legalLine = (language && textContent[language]?.['legal']) ?  textContent[language]['legal'] : textContent['fr']['legal'];    const clickUrlApp = (language && urlContent[language]?.['app']) ? urlContent[language]['app'] : urlContent['fr']['app'];    const clickUrlWeb = (language && urlContent[language]?.['web']) ? urlContent[language]['web'] : urlContent['fr']['web'];    const disclaimer = (language && textContent[language]?.['disclaimer']) ?  textContent[language]['disclaimer'] : textContent['fr']['disclaimer'];    let attribute = (language && imageContent[language]?.['attribute']) ? imageContent[language]['attribute'] : imageContent['fr']['attribute'];    if (attribute === '') {      attribute = imageContent['fr']['attribute'];    }    let attributes = [];    attributes.push(attribute);    const attributeSizes = {      attr1Size: 'large',    };    function updateImagePosition(position) {      if (containProductImage) return;      let translateY = '11';      if (position === 'top_focused') {        translateY = '20';      } else if (position === 'bottom_focused') {        translateY = '-20';      };      let transform = '';      let innerWidth = window.innerWidth;      if (innerWidth < 361) {        translateY = translateY / 2;        transform = 'scale(1.4) translateX(18%) translateY(' + translateY + '%)';      } else if (innerWidth < 489) {        transform = 'scale(1.4) translateX(10%) translateY(' + translateY + '%)';      } else if (innerWidth < 992) {        transform = 'scale(1.6) translateX(13%) translateY(' + translateY + '%)';      } else {        transform = 'scale(1.6) translateX(9%) translateY(' + translateY + '%)';      };      let productImg = document.querySelector('.banner__right img');      productImg.style.transform = transform;    }    let productImagePosition;    if ('' === 'top_focused') {      productImagePosition = 'top_focused';    } else if ('' === 'bottom_focused') {      productImagePosition = 'bottom_focused';    } else {      productImagePosition = 'centered';    }    const containProductImage = '' === 'full_view';    if (containProductImage) {      document.querySelector('#product').classList.add('contain');      document.querySelector('#product').style.transform = 'scale(1)';    }    for (const [key, value] of Object.entries(attributeSizes)) {      if (value === 'large') {        document.documentElement.style.setProperty(`--${key}`, '1');      } else {        document.documentElement.style.setProperty(`--${key}`, '1.25');      }    }    const banner = document.querySelector('#banner');    const titleEl = document.querySelector('#title');    const ctaEl = document.querySelector('#cta');    const legalLineEl = document.querySelector('#legal');    const disclaimerEl = document.querySelector('#disclaimer');    const productImageEl = document.querySelector('#product');    const attributesEl = document.querySelector('#attributes');    banner.style.backgroundColor = backgroundColor;    banner.style.color = textColor;    ctaEl.style.color = textColor;    legalLineEl.style.color = textColor;    productImageEl.src = productImage;    if (legalLine && legalLine.length > 0) legalLineEl.innerHTML = legalLine;    if ('' === 'true') {      banner.classList.add('banner__with_disclaimer');      disclaimerEl.style.cssText = 'display: block';      disclaimerEl.innerHTML = disclaimer;    }    const withoutLastWord = (word, text) => {      const lastIndex = text.lastIndexOf(word);      if (lastIndex === -1) return text;      const before = text.slice(0, lastIndex);      const after = text.slice(lastIndex + word.length);      return before + after;    };    const addChevron = (element) => {      const lastWord = element.innerHTML.split(' ').pop();      const spanEl = document.createElement('span');      spanEl.style.whiteSpace = 'nowrap';      spanEl.innerHTML = lastWord;      spanEl.innerHTML += `<svg class='chevron' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' ><path stroke-linecap='round' stroke-linejoin='round' d='M8.25 4.5l7.5 7.5-7.5 7.5' /></svg>`;      element.innerHTML = withoutLastWord(lastWord, element.innerHTML);      element.appendChild(spanEl);    };    ctaEl.innerHTML = cta;    addChevron(ctaEl);    titleEl.innerHTML = title;    addChevron(titleEl);    attributes.forEach((attribute, index) => {      if (attribute === '') return;      const attributeEl = document.createElement('img');      attributeEl.src = attribute;      attributeEl.alt = 'Promotion attribute';      attributesEl.appendChild(attributeEl);    });    let onWeb = window.top.location.href.includes('localhost');    if (onWeb) {      document.getElementById('banner').href = clickUrlWeb;      document.getElementById('banner').addEventListener('click', function () {        const helper = window?.parent?.gambit?.helper;        const info = {           'slot': '15',          'clickUrl': clickUrlWeb,          'title': title,          'elementType': 'banner'        };        if (helper) helper.fireBrowserEvent('adheseAdClicked', info);      });    } else {      if (!productImage.includes('//pool/')) {        productImage = productImage + '.width.400';      }      const webView = window.ReactNativeWebView;      const bannerUrl = webView ? '#' : clickUrlApp;      const postMessage = false;      document.getElementById('banner').href = bannerUrl  || '#';      if ('true' !== 'false') {        document.getElementById('banner').addEventListener('click', function () {          if (webView && postMessage) {            data = { 'deeplink': clickUrlApp, 'clickTag': 'https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR', 'type': 'click' };            webView.postMessage(JSON.stringify(data));          } else {            var xhttp = new XMLHttpRequest();            xhttp.open('GET', 'https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR', true);            xhttp.send();          }        });      }    };    window.onload = function () {      updateImagePosition(productImagePosition);      if (attributes.length === 0 || attributes.every(attr => attr === '')) {        document.querySelector('.banner__center').style.cssText = 'display: none !important';        document.querySelector('.banner__left').style.cssText = 'width: 50%; padding-right: 8px';        document.querySelector('.banner__right').style.cssText = 'width: 50%;';      }      const imageIsBackground = 'false' === 'true';      if (imageIsBackground) {        document.querySelector('.banner__right').style.cssText += 'background-image: url(' + productImage + ');';        document.querySelector('#product').style.cssText = 'display: none';      }    };    window.addEventListener('resize', function () {      updateImagePosition(productImagePosition);    });  </script></body></html>",
        "tagUrl": "https://digitalcontent2.delhaize.be/pool/lib/41_0.advar",
        "heightLarge": "500",
        "widthLarge": "500",
        "libId": "41",
        "id": "1170",
        "advertiserId": "0",
        "orderProperty": "",
        "ext": "advar",
        "swfSrc": "https://digitalcontent2.delhaize.be/pool/lib/41_0.advar",
        "url": "https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR",
        "clickTag": "https://digitalcontent1.delhaize.be/raylene//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/ad1170-41/UR",
        "swfSrc2nd": "https://digitalcontent2.delhaize.be/pool/lib/41_2nd_3.png",
        "swfSrc3rd": "",
        "swfSrc4th": "",
        "poolPath": "https://digitalcontent2.delhaize.be/pool/lib/",
        "comment": "",
        "adDuration": "0.0",
        "adDuration2nd": "0.0",
        "adDuration3rd": "0.0",
        "adDuration4th": "0.0",
        "orderName": "e-com - Filler Campaign 2 - e-deal",
        "creativeName": "filler campaign e-deal",
        "deliveryMultiples": "exclusive_on_creative",
        "deliveryGroupId": "o30g0cr41",
        "adspaceStart": "1741215600000",
        "adspaceEnd": "1751493599000",
        "swfSrc5th": "",
        "swfSrc6th": "",
        "adDuration5th": "0.0",
        "adDuration6th": "0.0",
        "width3rd": "0",
        "width4th": "0",
        "width5th": "0",
        "width6th": "0",
        "height3rd": "0",
        "height4th": "0",
        "height5th": "0",
        "height6th": "0",
        "slotName": "delhaize-be_home_4-flex",
        "slotID": "15",
        "impressionCounter": "https://digitalcontent1.delhaize.be/track/1170//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "trackedImpressionCounter": "https://digitalcontent1.delhaize.be/track/1170//sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "viewableImpressionCounter": "https://digitalcontent1.delhaize.be/track/1170-Adhese_IABview/sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
        "additionalCreatives": "<ADDITIONAL_CREATIVES_ARRAY>",
        "origin": "JERLICIA",
        "originData": {},
        "auctionable": "true",
        "additionalViewableTracker": "",
        "additionalCreativeTracker": "https://digitalcontent1.delhaize.be/track/1170-additional-41/sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826"
      }
    ],
    "origin": "JERLICIA",
    "originData": {},
    "auctionable": "true",
    "additionalViewableTracker": "",
    "additionalCreativeTracker": "https://digitalcontent1.delhaize.be/track/1170-additional-41/sl15/dmDMGo203g0cr264/dmADV441/dmDMGo203g0cr264/dmADV441/dmDMGo210g0cr274/dmADV380/dmDMGo210g0cr274/dmADV380/dmDMGo215g0cr278/dmADV129/dmDMGo215g0cr278/dmADV129/dtunknown/ogcontrol/II811f5d73-01c0-47aa-8050-3d6473af4484/tlall/pthome/pstop/umanonymous/midb439d09_fd47_78e6_0de4_1aaa6f8f50ff/pp_/ydDesktop/ybSafari/lnnl/tctrue/tetrue/A2127.68.78.84/?t=1741619435826",
    "extension": {
      "mediaType": "banner"
    }
  }
]