Utilizza il nostro Campaign Booster per ottenere il massimo dal Black Friday

In questo video ti mostriamo come testare gli snippet di codice.

Tre semplici passaggi per configurare il tuo Black Friday

Per molti marketer, il Black Friday è uno dei giorni più redditizi dell'anno. Gli obiettivi sono ambiziosi, la concorrenza ancora più agguerrita. Ciononostante, i risultati spesso rimangono al di sotto delle aspettative.

Il motivo principale: le campagne e le offerte non sono sufficientemente evidenti sul sito web. Gli utenti non notano gli sconti, le promozioni si perdono nel layout e preziosi potenziali di conversione rimangono inutilizzati.

  • Importante: attiva il rispettivo Booster della campagna nel tuo editor visivo.

  • Copia il JavaScript e il CSS personalizzati e controllali nella tua configurazione.

  • Aggiorna i tuoi contenuti e, dopo aver superato il controllo qualità, pubblica il test.

Nota: Varify non si assume alcuna responsabilità per il funzionamento del codice e delle informazioni. È responsabilità dell'utente verificare accuratamente il codice di prova e implementarlo correttamente.

Ecco come i nostri clienti utilizzano Varify durante il Black Friday

Flessibilità senza sviluppatori

Modifica lo stile e aggiungi rapidamente i booster della campagna senza dover ricorrere al reparto sviluppo. In questo modo risparmierai tempo e potrai reagire immediatamente.

Test rapidi della landing page

Grazie al nostro script minimale, puoi progettare landing page nel tuo CMS e testarle direttamente con i reindirizzamenti: in modo rapido, semplice e senza lunghi tempi di attesa. 

Styling semplice per il Black Friday

Vuoi personalizzare il tuo negozio in occasione del Black Friday o mettere in risalto determinati elementi spostandoli? Con l'editor visivo puoi modificare il design in un batter d'occhio senza dover intervenire sul codice.

Targeting preciso per le campagne

Verifica come determinati gruppi target reagiscono alle tue modifiche rivolgendoti a loro in modo mirato, utilizzando parametri UTM, profili dei dispositivi o paesi. In questo modo saprai esattamente cosa funziona e per chi.

JS e CSS personalizzati per le campagne Varify Booster

Intento di uscita

Puoi visualizzare un popup con un'immagine che appare in un determinato momento. Puoi personalizzare tu stesso quando apparirà esattamente.

JavaScript aggiuntivo


window.varify.helpers.onDomLoaded(() => {
  // === BASIC SETTINGS (adjust if needed) ===
  const POPUP_SESSION_KEY = 'varifyExitPopupSeen'; // sessionStorage key
  const targetUrl = 'https://varify.io/webinars'; // landing page URL
  const imageSrc = 'https://images.varify.io/bb686c8cd78a3cad7c19b26d7df61c2b634f336481bd52130e1c1d570343f346/example_bf.jpg'; // popup image
  const imageAlt = 'Black Friday Deal'; // image alt text
  const popupDelayMs = 1000; // delay before popup opens (in ms)

    function isInEditor() {
    const p = new URLSearchParams(location.search);
    return p.has('varify-variation-name') || p.has('varify-variation-id');
  }
  if (isInEditor()) return;

  window.varify.helpers.waitFor('.varify-exitIntent-content', (contentDiv) => {
    const wrapper = document.querySelector('.varify-exitIntent-wrapper');
    const backdrop = document.querySelector('.varify-exitIntent-backdrop');
    const modal = document.querySelector('.varify-exitIntent');
    const closeBtn = document.querySelector('.varify-exitIntent-close');

    if (!wrapper || !backdrop || !modal || !contentDiv) return;

    const alreadySeen = sessionStorage.getItem(POPUP_SESSION_KEY) === '1';

    // move close button into modal so it overlays the image
    if (closeBtn && closeBtn.parentElement !== modal) {
      modal.appendChild(closeBtn);
    }

    // === replace popup content with clickable image ===
    contentDiv.innerHTML = '';
    const link = document.createElement('a');
    link.href = targetUrl;
    link.target = '_blank';
    link.rel = 'noopener noreferrer';

    const img = document.createElement('img');
    img.src = imageSrc;
    img.alt = imageAlt;
    img.style.display = 'block';
    img.style.width = '100%';
    img.style.height = 'auto';

    link.appendChild(img);
    contentDiv.appendChild(link);

    // === always block existing exit-intent triggers ===
    const stopExitIntent = (evt) => {
      if (
        (evt.type === 'mouseleave' || evt.type === 'mouseout') &&
        (evt.relatedTarget === null || evt.clientY  {
      sessionStorage.setItem(POPUP_SESSION_KEY, '1');
      wrapper.classList.add('vf-show');
    };
    setTimeout(openPopup, popupDelayMs);

    // === close helpers ===
    const closePopup = () => {
      wrapper.classList.remove('vf-show');
    };

    // close via X button
    if (closeBtn) {
      closeBtn.addEventListener('click', (e) => {
        e.preventDefault();
        closePopup();
      });
    }

    // close via click outside modal
    backdrop.addEventListener('click', (e) => {
      if (!modal.contains(e.target)) {
        closePopup();
      }
    });

    // close via ESC key
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape') {
        closePopup();
      }
    });
  });
});


    
/* Wrapper con lo sfondo */ .varify-code-block { sfondo: #f5f2f0; raggio del bordo: 8px; bordo: 1px solido #e0ddd9; padding: 0; posizione: relativa; font-family: Consolas, Menlo, Monaco, "Fira Code", monospace; margin-bottom: 24px; } /* Area del codice */ .varify-code-block pre { margine: 0; padding: 16px 18px; overflow: auto; spazio bianco: pre; } .varify-code-block code { colore: #333; font-size: 13px; line-height: 1.55; display: block; } /* Pulsante di copia - completamente neutralizzato, non più blu */ .varify-copy-btn { all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */ display: inline-block !important; position: absolute !important; top: 10px !important; right: 10px !important; padding: 6px 10px !important; bordo-raggio: 6px !importante; sfondo: rgba(255,255,255,0.4) !importante; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; bordo: 1px solido rgba(255,255,255,0.35) !importante; colore: #333 !importante; font-size: 11px !important; peso del carattere: 600 !importante; Decorazione del testo: nessuna !importante; cursore: puntatore !importante; box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important; } /* Feedback opzionale dopo la copia */ .varify-copy-btn.copied { sfondo: rgba(80, 200, 120, 0.55) !important; colore: #fff !important; } document.addEventListener("click", function (e) { const btn = e.target.closest(".varify-copy-btn"); if (!btn) return; const codeEl = btn.parentElement.querySelector("code"); se (!codeEl) return; const code = codeEl.innerText; se (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(codice); } else { const ta = document.createElement("textarea"); ta.value = codice; document.body.appendChild(ta); ta.select(); document.execCommand("copy"); ta.remove(); } btn.classList.add("copiato"); btn.textContent = "Copiato!"; setTimeout(() => { btn.classList.remove("copiato"); btn.textContent = "Copiato"; }, 1400); });
CSS aggiuntivo



/* wrapper: nascosto per impostazione predefinita, visibile quando viene aggiunto vf-show */ .varify-exitIntent-wrapper { display: none; } .varify-exitIntent-wrapper.vf-show { display: block; } /* backdrop: sovrapposizione a schermo intero */
.varify-exitIntent-wrapper.vf-show .varify-exitIntent-backdrop { posizione: fissa; inset: 0; visualizzazione: flex !importante; allinea elementi: centro; giustifica contenuto: centro; colore sfondo: rgba(0, 0, 0, 0.8);
  z-index: 2147483647; } /* modale: contenitore puro attorno all'immagine */ .varify-exitIntent { posizione: relativa; larghezza massima: 90vw; altezza massima: 90vh; sfondo: trasparente; bordo: nessuno; ombra: nessuna; }

/* rimuovi padding: immagine pura modale */ .varify-exitIntent-content { padding: 0 !important; } /* l'immagine non deve mai essere più grande dell'altezza della finestra */ .varify-exitIntent-content img { display: block; width: 100%; height: auto;
  max-height: 90vh; object-fit: contain; } /* nascondi barra di intestazione originale se presente */ .varify-exitIntent-header { display: none !important; } /* pulsante di chiusura sovrapposto sopra l'immagine */ .varify-exitIntent-close { position: absolute !important; top: 12px;
  right: 12px; width: 24px; height: 24px; display: flex !important; align-items: center; justify-content: center; background: transparent; color: #fff !important; cursor: pointer; z-index: 2147483647; }


    
/* Wrapper con lo sfondo */ .varify-code-block { sfondo: #f5f2f0; raggio del bordo: 8px; bordo: 1px solido #e0ddd9; padding: 0; posizione: relativa; font-family: Consolas, Menlo, Monaco, "Fira Code", monospace; margin-bottom: 24px; } /* Area del codice */ .varify-code-block pre { margine: 0; padding: 16px 18px; overflow: auto; spazio bianco: pre; } .varify-code-block code { colore: #333; font-size: 13px; line-height: 1.55; display: block; } /* Pulsante di copia - completamente neutralizzato, non più blu */ .varify-copy-btn { all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */ display: inline-block !important; position: absolute !important; top: 10px !important; right: 10px !important; padding: 6px 10px !important; bordo-raggio: 6px !importante; sfondo: rgba(255,255,255,0.4) !importante; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; bordo: 1px solido rgba(255,255,255,0.35) !importante; colore: #333 !importante; font-size: 11px !important; peso del carattere: 600 !importante; Decorazione del testo: nessuna !importante; cursore: puntatore !importante; box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important; } /* Feedback opzionale dopo la copia */ .varify-copy-btn.copied { sfondo: rgba(80, 200, 120, 0.55) !important; colore: #fff !important; } document.addEventListener("click", function (e) { const btn = e.target.closest(".varify-copy-btn"); if (!btn) return; const codeEl = btn.parentElement.querySelector("code"); se (!codeEl) return; const code = codeEl.innerText; se (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(codice); } else { const ta = document.createElement("textarea"); ta.value = codice; document.body.appendChild(ta); ta.select(); document.execCommand("copy"); ta.remove(); } btn.classList.add("copiato"); btn.textContent = "Copiato!"; setTimeout(() => { btn.classList.remove("copiato"); btn.textContent = "Copiato"; }, 1400); });

Affidatevi alla più grande piattaforma di test A/B sviluppata in Germania

Cifre da BuiltWith.com: sono state confrontate le piattaforme tedesche di A/B testing. A partire da ottobre 2025

Intento di uscita

Questo popup contiene testo, elenchi puntati e un pulsante. Puoi personalizzare il testo a tuo piacimento e stabilire quando deve apparire il popup per informare in modo mirato i tuoi utenti.

JavaScript aggiuntivo


window.varify.helpers.onDomLoaded(() => {
  // ================================
  // CONFIG – YOU CAN EDIT THIS
  // ================================

  // Unique key for this popup. If you duplicate the test, change this key.
  const POPUP_SESSION_KEY = 'varifyBFContentPopupSeen';

  // When should the popup appear after page load (in milliseconds)?
  const POPUP_DELAY_MS = 1000;

  // Popup texts
  const POPUP_HEADLINE = 'Black Friday Mega Deal!';
  const POPUP_SUBHEADLINE = 'Don\'t miss our biggest discounts';

  // Bullet points (each entry = one bullet line)
  const POPUP_BULLETS = [
    'Up to 50% off everything',
    'Free shipping on all orders',
    'Limited time offer'
  ];

  // CTA button
  const POPUP_CTA_URL = 'https://example.com/black-friday'; // landing page URL
  const POPUP_CTA_TEXT = 'Save Now →';                       // CTA label

  // ================================
  // RUNTIME LOGIC – DO NOT TOUCH :)
  // ================================

  // Do not run inside Varify editor
  function isInEditor() {
    const p = new URLSearchParams(location.search);
    return p.has('varify-variation-name') || p.has('varify-variation-id');
  }
  if (isInEditor()) return;

  window.varify.helpers.waitFor('.varify-exitIntent-content', (contentDiv) => {
    const wrapper  = document.querySelector('.varify-exitIntent-wrapper');
    const backdrop = document.querySelector('.varify-exitIntent-backdrop');
    const modal    = document.querySelector('.varify-exitIntent');
    const closeBtn = document.querySelector('.varify-exitIntent-close');

    if (!wrapper || !backdrop || !modal || !contentDiv) return;

    const alreadySeen = sessionStorage.getItem(POPUP_SESSION_KEY) === '1';

    // Always block the original exit-intent logic of the site
    const stopExitIntent = (evt) => {
      if (
        (evt.type === 'mouseleave' || evt.type === 'mouseout') &&
        (evt.relatedTarget === null || evt.clientY <= 0) ) { evt.stopImmediatePropagation(); if (evt.preventDefault) evt.preventDefault(); } }; document.addEventListener('mouseleave', stopExitIntent, true); document.addEventListener('mouseout', stopExitIntent, true); // If shown once in this session: hide wrapper and stop everything if (alreadySeen) { wrapper.classList.remove('vf-show'); wrapper.style.display = 'none'; return; } // Ensure close button is inside the modal so it overlays the content if (closeBtn && closeBtn.parentElement !== modal) { modal.appendChild(closeBtn); } // Build popup content contentDiv.innerHTML = ''; contentDiv.style.textAlign = 'left'; const headline = document.createElement('p'); headline.className = 'bf-exit-intent-headline'; headline.textContent = POPUP_HEADLINE; const subheadline = document.createElement('p'); subheadline.className = 'bf-exit-intent-subheadline'; subheadline.textContent = POPUP_SUBHEADLINE; const ul = document.createElement('ul'); ul.className = 'bf-exit-intent-bullets'; POPUP_BULLETS.forEach((txt) => {
      const li = document.createElement('li');
      li.textContent = txt;
      ul.appendChild(li);
    });

    const cta = document.createElement('a');
    cta.className = 'bf-exit-intent-cta';
    cta.href = POPUP_CTA_URL;
    cta.target = '_blank';
    cta.rel = 'noopener noreferrer';
    cta.textContent = POPUP_CTA_TEXT;

    contentDiv.appendChild(headline);
    contentDiv.appendChild(subheadline);
    contentDiv.appendChild(ul);
    contentDiv.appendChild(cta);

    // Open popup after delay (once per session)
    const openPopup = () => {
      sessionStorage.setItem(POPUP_SESSION_KEY, '1');
      wrapper.classList.add('vf-show');
    };
    setTimeout(openPopup, POPUP_DELAY_MS);

    // Close helpers
    const closePopup = () => {
      wrapper.classList.remove('vf-show');
    };

    // Close via X button
    if (closeBtn) {
      closeBtn.addEventListener('click', (e) => {
        e.preventDefault();
        closePopup();
      });
    }

    // Close via click outside modal
    backdrop.addEventListener('click', (e) => {
      if (!modal.contains(e.target)) {
        closePopup();
      }
    });

    // Close via ESC key
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape') {
        closePopup();
      }
    });
  });
});

    
/* Wrapper con lo sfondo */
.varify-code-block {
sfondo: #f5f2f0;
raggio del bordo: 8px;
bordo: 1px solido #e0ddd9;
imbottitura: 0;
posizione: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
margine inferiore: 24px;
}

/* Area del codice */
.varify-code-block pre {
margine: 0;
imbottitura: 16px 18px;
overflow: auto;
spazio bianco: pre;
}

.varify-code-block code {
colore: #333;
dimensione del carattere: 13px;
altezza delle linee: 1,55;
visualizzazione: blocco;
}

/* Pulsante Copia - completamente neutralizzato, non più blu */
.varify-copy-btn {
all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */

display: inline-block !important;
posizione: assoluta !importante;
top: 10px !important;
destra: 10px !importante;

padding: 6px 10px !important;
bordo: 6px !importante;

sfondo: rgba(255,255,255,0.4) !important;
filtro di sfondo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;

bordo: 1px solido rgba(255,255,255,0.35) !importante;

colore: #333 !importante;
font-size: 11px !important;
font-weight: 600 !important;
Decorazione del testo: nessuna !importante;

cursore: puntatore !importante;
box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}

/* Feedback opzionale dopo la copia */
.varify-copy-btn.copied {
sfondo: rgba(80, 200, 120, 0.55) !important;
colore: #fff !importante;
}
document.addEventListener(„click“, function (e) { const btn = e.target.closest(„.varify-copy-btn“); if (!btn) return; const codeEl = btn.parentElement.querySelector(„code“); if (!codeEl) return; const code = codeEl.innerText; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(code); } else { const ta = document.createElement(„textarea“); ta.value = code; document.body.appendChild(ta); ta.select(); document.execCommand(„copy“); ta.remove(); } btn.classList.add(„copied“); btn.textContent = „Copied!“; setTimeout(() => { btn.classList.remove(„copied“); btn.textContent = „Copy“; }, 1400); });

CSS aggiuntivo


/* ================================ COMPORTAMENTO POPUP DI BASE ================================ */ /* Wrapper nascosto per impostazione predefinita, visibile quando .vf-show viene aggiunto tramite JS */ .varify-exitIntent-wrapper { display: none; }

.varify-exitIntent-wrapper.vf-show { display: block; } /* Sfondo: sovrapposizione scura, solo quando il wrapper ha .vf-show */ .varify-exitIntent-backdrop { display: none !important; background-color: rgba(0, 0, 0, 0.8) !important; }

.varify-exitIntent-wrapper.vf-show .varify-exitIntent-backdrop { display: flex !important; align-items: center !important; justify-content: center !important; position: fixed; inset: 0; z-index: 2147483646; }

/* Opzionale: se desideri bloccare lo scorrimento della pagina: .vf-no-scroll { overflow: hidden !important; } */ /* Intestazione non necessaria per questo design */ .varify-exitIntent-header { display: none !important; }

/* ================================ MODAL STYLING (BLACK FRIDAY LOOK) ================================ */ .varify-exitIntent { background-color: #000 !important; color: #fff !important; border-radius: 10px !important;
  box-shadow: 0 0 8px rgb(68 64 64 / 30%) !important; width: 540px !important; max-width: 80% !important; max-height: 80% !important; position: relative !important;
  z-index: 2147483647 !important; /* sopra lo sfondo, sotto il pulsante di chiusura */ overflow: visible !important; /* non tagliare il pulsante di chiusura */ } /* Se il tuo HTML ha un .varify-exitIntent-inner: scorri solo all'interno */
.varify-exitIntent-inner { max-height: 80vh; overflow: auto; } /* Blocco contenuto */ .varify-exitIntent-content { padding: 30px !important; text-align: left !important; }

/* ================================ STILI DI TESTO ================================ */ .bf-exit-intent-headline { font-size: 22px; font-weight: 800; margin: 0 0 10px; color: #fff; }

.bf-exit-intent-subheadline { font-size: 18px; margin: 0 0 15px; color: #fff; } .bf-exit-intent-bullets { list-style: none; padding: 0; margin: 0 0 20px; }

.bf-exit-intent-bullets li { margine inferiore: 6px; riempimento sinistro: 20px; posizione: relativa; colore: #fff; } .bf-exit-intent-bullets li:before { contenuto: "•"; colore: #d32c2c;
  position: absolute; left: 0; top: 0; } /* Pulsante CTA */ .bf-exit-intent-cta { display: inline-block; background-color: #d32c2c; color: #fff !important; padding: 10px 20px;
  border-radius: 4px; font-size: 16px; font-weight: 600; text-decoration: none !important; } .bf-exit-intent-cta:hover { background-color: #b71c1c; }

/* ================================ PULSANTE CHIUDI (X) – SEMPRE IN PRIMO PIANO ================================ */ .varify-exitIntent-close { posizione: assoluta !importante; alto: 12px !importante; destra: 12px !importante; larghezza: 28px !importante; altezza: 28px !importante;
  display: flex !important; align-items: center !important; justify-content: center !important; background: transparent !important; border: none !important; cursor: pointer !important; z-index: 2147483648 !important; /* above everything */ color: #fff !important; }

.varify-exitIntent-close-icon { width: 16px; height: 16px; color: #fff !important; }



    
/* Wrapper con lo sfondo */ .varify-code-block { sfondo: #f5f2f0; raggio del bordo: 8px; bordo: 1px solido #e0ddd9; padding: 0; posizione: relativa; font-family: Consolas, Menlo, Monaco, "Fira Code", monospace; margin-bottom: 24px; } /* Area del codice */ .varify-code-block pre { margine: 0; padding: 16px 18px; overflow: auto; spazio bianco: pre; } .varify-code-block code { colore: #333; font-size: 13px; line-height: 1.55; display: block; } /* Pulsante di copia - completamente neutralizzato, non più blu */ .varify-copy-btn { all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */ display: inline-block !important; position: absolute !important; top: 10px !important; right: 10px !important; padding: 6px 10px !important; bordo-raggio: 6px !importante; sfondo: rgba(255,255,255,0.4) !importante; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; bordo: 1px solido rgba(255,255,255,0.35) !importante; colore: #333 !importante; font-size: 11px !important; peso del carattere: 600 !importante; Decorazione del testo: nessuna !importante; cursore: puntatore !importante; box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important; } /* Feedback opzionale dopo la copia */ .varify-copy-btn.copied { sfondo: rgba(80, 200, 120, 0.55) !important; colore: #fff !important; } document.addEventListener("click", function (e) { const btn = e.target.closest(".varify-copy-btn"); if (!btn) return; const codeEl = btn.parentElement.querySelector("code"); se (!codeEl) return; const code = codeEl.innerText; se (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(codice); } else { const ta = document.createElement("textarea"); ta.value = codice; document.body.appendChild(ta); ta.select(); document.execCommand("copy"); ta.remove(); } btn.classList.add("copiato"); btn.textContent = "Copiato!"; setTimeout(() => { btn.classList.remove("copiato"); btn.textContent = "Copiato"; }, 1400); });

Black Friday Notifica sottile

Notifica

Una notifica discreta che appare in basso a sinistra. Ti consente di reindirizzare l'utente a un'altra pagina di azione senza disturbarlo: perfetta per call-to-action sottili.

JavaScript aggiuntivo



window.varify.helpers.onDomLoaded(() => {
  // ================================
  // CONFIG – YOU CAN EDIT THIS
  // ================================

  // Notification should be shown only once per browser session
  const SESSION_KEY = 'varifyBFNotificationSeen';

  // Text content
  const INFO_TEXT = 'Black Friday Deal';                      // small badge
  const HEADLINE_TEXT = 'Black Friday Special';               // main title
  const SUBHEADLINE_TEXT = 'Save 30% on everything today';    // sub text
  const CTA_TEXT = 'Save now →';                              // CTA label

  // Link for CTA and full notification
  const CTA_LINK = 'https://example.com/black-friday';

  // ================================
  // RUNTIME LOGIC – DO NOT TOUCH :)
  // ================================

  function isInEditor() {
    const p = new URLSearchParams(location.search);
    return p.has('varify-variation-name') || p.has('varify-variation-id');
  }
  if (isInEditor()) return;

  window.varify.helpers.waitFor('.varify-notification-content', () => {
    const contentDiv = document.querySelector('.varify-notification-content');
    const wrapper = document.querySelector('.varify-notification-wrapper');
    const notification = document.querySelector('.varify-notification');
    const closeBtn = document.querySelector('.varify-notification-close');
    const wrapperLink = document.querySelector('.varify-notification-link');

    if (!contentDiv || !notification) return;

    const alreadySeen = sessionStorage.getItem(SESSION_KEY) === '1';

    // === If already seen: hide everything immediately and do nothing further ===
    if (alreadySeen) {
      if (wrapper) wrapper.style.display = 'none';
      notification.style.display = 'none';
      return;
    }

    // === First session review – set content ===

    // Info badge
    let infoDiv = contentDiv.querySelector('.webinar-info');
    if (!infoDiv) {
      infoDiv = document.createElement('div');
      infoDiv.className = 'webinar-info';
      contentDiv.insertBefore(infoDiv, contentDiv.firstChild);
    }
    infoDiv.textContent = INFO_TEXT;

    // Headline
    const headlineEl = contentDiv.querySelector('.varify-notification-headline');
    if (headlineEl) {
      headlineEl.textContent = HEADLINE_TEXT;
    }

    // Subheadline
    const subEl = contentDiv.querySelector('.varify-notification-text');
    if (subEl) {
      subEl.textContent = SUBHEADLINE_TEXT;
    }

    // CTA inside notification
    let ctaEl = contentDiv.querySelector('.webinar-signup');
    if (!ctaEl) {
      ctaEl = document.createElement('a');
      ctaEl.className = 'webinar-signup';
      contentDiv.appendChild(ctaEl);
    }
    ctaEl.textContent = CTA_TEXT;
    ctaEl.href = CTA_LINK;
    ctaEl.target = '_blank';
    ctaEl.rel = 'noopener noreferrer';

    // whole notification clickable
    if (wrapperLink) {
      wrapperLink.href = CTA_LINK;
      wrapperLink.target = '_blank';
      wrapperLink.rel = 'noopener noreferrer';
    }

    // Mark as 'seen' from now on
    sessionStorage.setItem(SESSION_KEY, '1');

    // Close-Button: versteckt Notification komplett (Session-Flag bleibt)
    if (closeBtn) {
      closeBtn.addEventListener('click', (e) => {
        e.preventDefault();
        if (wrapper) wrapper.style.display = 'none';
        notification.style.display = 'none';
      });
    }
  });
});



    
/* Wrapper con lo sfondo */
.varify-code-block {
sfondo: #f5f2f0;
raggio del bordo: 8px;
bordo: 1px solido #e0ddd9;
imbottitura: 0;
posizione: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
margine inferiore: 24px;
}

/* Area del codice */
.varify-code-block pre {
margine: 0;
imbottitura: 16px 18px;
overflow: auto;
spazio bianco: pre;
}

.varify-code-block code {
colore: #333;
dimensione del carattere: 13px;
altezza delle linee: 1,55;
visualizzazione: blocco;
}

/* Pulsante Copia - completamente neutralizzato, non più blu */
.varify-copy-btn {
all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */

display: inline-block !important;
posizione: assoluta !importante;
top: 10px !important;
destra: 10px !importante;

padding: 6px 10px !important;
bordo: 6px !importante;

sfondo: rgba(255,255,255,0.4) !important;
filtro di sfondo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;

bordo: 1px solido rgba(255,255,255,0.35) !importante;

colore: #333 !importante;
font-size: 11px !important;
font-weight: 600 !important;
Decorazione del testo: nessuna !importante;

cursore: puntatore !importante;
box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}

/* Feedback opzionale dopo la copia */
.varify-copy-btn.copied {
sfondo: rgba(80, 200, 120, 0.55) !important;
colore: #fff !importante;
}
document.addEventListener(„click“, function (e) { const btn = e.target.closest(„.varify-copy-btn“); if (!btn) return; const codeEl = btn.parentElement.querySelector(„code“); if (!codeEl) return; const code = codeEl.innerText; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(code); } else { const ta = document.createElement(„textarea“); ta.value = code; document.body.appendChild(ta); ta.select(); document.execCommand(„copy“); ta.remove(); } btn.classList.add(„copied“); btn.textContent = „Copied!“; setTimeout(() => { btn.classList.remove(„copied“); btn.textContent = „Copy“; }, 1400); });

CSS aggiuntivo


/* Riquadro nero con testo bianco */ .varify-notification.v_animated.v_animation.varify-init { background-color: #000 !important; color: #fff !important; }

/* Titolo e testo in bianco */ .varify-notification-headline, .varify-notification-text { color: #fff !important; } /* Margine del testo in basso */ .varify-notification-text { margin-bottom: 5px !important; }

/* Stile testo CTA */ .webinar-signup { color: #fff !important; font-size: 14px !important; font-weight: 600 !important; text-decoration: none !important; } .webinar-signup:hover { text-decoration: underline !important; }

/* Rendi visibile l'icona di chiusura (X) */ .varify-notification-close { color: #fff !important; } /* Design a bolla per "Offerta del Black Friday" */ .webinar-info { background-color: #d32c2c !important; /* bolla rossa */
  color: #fff !important; /* testo bianco */ border-radius: var(--border-radius--200) !important; font-weight: 600 !important; font-size: 12px !important; padding: 2px 6px !important; max-width: 160px !important;
  text-align: center !important; margin-bottom: 8px !important; margin-top: 6px !important; } /* ---------- MOBILE ADJUSTMENTS ---------- */ @media (max-width: 767px) {
  .varify-notification-headline { font-size: 14px !important; } .varify-notification-text { font-size: 12px !important; margin-bottom: 4px !important; } .webinar-info { font-size: 10px !important;
    padding: 1px 4px !important; max-width: 120px !important; margin-bottom: 6px !important; } .webinar-signup { font-size: 12px !important; } } @media (max-width: 576px) { /* Smaller overall box */
  .varify-notification { padding: 8px 10px !important; min-width: 200px !important; max-width: 260px !important; border-radius: 3px !important; bottom: 20px !important; left: 20px !important; }

  /* Titolo più piccolo */ .varify-notification-headline { font-size: 13px !important; line-height: 1.2 !important; margin-bottom: 2px !important; } /* Sottotitolo più piccolo */ .varify-notification-text { font-size: 11px !important;
    line-height: 1.2 !important; } /* Badge più piccolo */ .webinar-info { font-size: 10px !important; padding: 1px 4px !important; max-width: 100px !important; margin-bottom: 4px !important; }

  /* Chiudi-X più piccolo */ .varify-notification-close { font-size: 16px !important; width: 12px !important; height: 12px !important; right: 10px !important; margin-top: -6px !important; } }



    
/* Wrapper con lo sfondo */ .varify-code-block { sfondo: #f5f2f0; raggio del bordo: 8px; bordo: 1px solido #e0ddd9; padding: 0; posizione: relativa; font-family: Consolas, Menlo, Monaco, "Fira Code", monospace; margin-bottom: 24px; } /* Area del codice */ .varify-code-block pre { margine: 0; padding: 16px 18px; overflow: auto; spazio bianco: pre; } .varify-code-block code { colore: #333; font-size: 13px; line-height: 1.55; display: block; } /* Pulsante di copia - completamente neutralizzato, non più blu */ .varify-copy-btn { all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */ display: inline-block !important; position: absolute !important; top: 10px !important; right: 10px !important; padding: 6px 10px !important; bordo-raggio: 6px !importante; sfondo: rgba(255,255,255,0.4) !importante; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; bordo: 1px solido rgba(255,255,255,0.35) !importante; colore: #333 !importante; font-size: 11px !important; peso del carattere: 600 !importante; Decorazione del testo: nessuna !importante; cursore: puntatore !importante; box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important; } /* Feedback opzionale dopo la copia */ .varify-copy-btn.copied { sfondo: rgba(80, 200, 120, 0.55) !important; colore: #fff !important; } document.addEventListener("click", function (e) { const btn = e.target.closest(".varify-copy-btn"); if (!btn) return; const codeEl = btn.parentElement.querySelector("code"); se (!codeEl) return; const code = codeEl.innerText; se (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(codice); } else { const ta = document.createElement("textarea"); ta.value = codice; document.body.appendChild(ta); ta.select(); document.execCommand("copy"); ta.remove(); } btn.classList.add("copiato"); btn.textContent = "Copiato!"; setTimeout(() => { btn.classList.remove("copiato"); btn.textContent = "Copiato"; }, 1400); });

Barra informativa sul Black Friday

Barra delle informazioni

Con la barra informativa puoi visualizzare tre diversi contenuti e sostituire l'SVG con il tuo design personalizzato. Anche i tag possono essere personalizzati e l'intero elemento è collegato, in modo da poterlo facilmente ricollegare.

JavaScript aggiuntivo



window.varify.helpers.waitFor('.varify-usp-bar', (bar) => { // === IMPOSTAZIONI PER TE === const headlines = [ '30% OFF EVERYTHING', '30% OFF EVERYTHING', '30% OFF EVERYTHING' ];

  const mobileHeadline = '30% OFF EVERYTHING – MOBILE SPECIAL'; const targetUrl = 'https://example.com/black-friday'; const iconVariant = 'cross';

  const crossIconSvg = ''; const defaultIconSvg = ''; const isMobile = window.matchMedia('(max-width: 767px)').matches; if (isMobile) { bar.classList.add('varify-usp-bar--mobile-single'); }

  // === APPLY TEXTS === bar.querySelectorAll('.varify-usp-bar-headline').forEach((el, idx) => { if (isMobile) { el.textContent = mobileHeadline; } else { el.textContent = headlines[idx] || headlines[0]; } });

  // === APPLICA ICONE === bar.querySelectorAll('.varify-usp-bar-icon').forEach((el) => { el.innerHTML = iconVariant === 'cross' ? crossIconSvg : defaultIconSvg; });

  // === RENDERE LA BARRA CLICCABILE === bar.addEventListener('click', (evt) => { if (evt.target.closest('.varify-usp-bar-close')) return; window.location.href = targetUrl; }); // ------------------------------------------------------------------ // === FUNZIONALITÀ MOBILE (NUOVA – IL RESTO RIMANE INVARIATO) === // ------------------------------------------------------------------ if (isMobile) { // solo il primo USP rimane visibile const usps = bar.querySelectorAll('.varify-usp-bar-usp');
    usps.forEach((usp, index) => { if (index > 0) { usp.style.display = 'none'; } }); } });


    
/* Wrapper con lo sfondo */
.varify-code-block {
sfondo: #f5f2f0;
raggio del bordo: 8px;
bordo: 1px solido #e0ddd9;
imbottitura: 0;
posizione: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
margine inferiore: 24px;
}

/* Area del codice */
.varify-code-block pre {
margine: 0;
imbottitura: 16px 18px;
overflow: auto;
spazio bianco: pre;
}

.varify-code-block code {
colore: #333;
dimensione del carattere: 13px;
altezza delle linee: 1,55;
visualizzazione: blocco;
}

/* Pulsante Copia - completamente neutralizzato, non più blu */
.varify-copy-btn {
all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */

display: inline-block !important;
posizione: assoluta !importante;
top: 10px !important;
destra: 10px !importante;

padding: 6px 10px !important;
bordo: 6px !importante;

sfondo: rgba(255,255,255,0.4) !important;
filtro di sfondo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;

bordo: 1px solido rgba(255,255,255,0.35) !importante;

colore: #333 !importante;
font-size: 11px !important;
font-weight: 600 !important;
Decorazione del testo: nessuna !importante;

cursore: puntatore !importante;
box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}

/* Feedback opzionale dopo la copia */
.varify-copy-btn.copied {
sfondo: rgba(80, 200, 120, 0.55) !important;
colore: #fff !importante;
}
document.addEventListener(„click“, function (e) { const btn = e.target.closest(„.varify-copy-btn“); if (!btn) return; const codeEl = btn.parentElement.querySelector(„code“); if (!codeEl) return; const code = codeEl.innerText; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(code); } else { const ta = document.createElement(„textarea“); ta.value = code; document.body.appendChild(ta); ta.select(); document.execCommand(„copy“); ta.remove(); } btn.classList.add(„copied“); btn.textContent = „Copied!“; setTimeout(() => { btn.classList.remove(„copied“); btn.textContent = „Copy“; }, 1400); });

CSS aggiuntivo



/* Stile Black Friday: sfondo nero, testo bianco, nascondi sottotesto */ .varify-usp-bar-wrapper, .varify-usp-bar { background-color: #000 !important; color: #fff !important; } .varify-usp-bar-headline {
  color: #fff !important; font-size: 18px !important; font-weight: 700 !important; } .varify-usp-bar-text { display: none !important; /* Rimuovi sottotitolo; rimangono solo i titoli */ } .varify-usp-bar-icon svg {
  fill: #fff !important; stroke: #fff !important; width: 24px; height: 24px; } /* Mostra il cursore del mouse come „mano sinistra“ su tutta la barra */ .varify-usp-bar-wrapper { cursor: pointer; }

/* Assicura che la X di chiusura rimanga visibile e non sia interessata dallo scambio di icone */ .varify-usp-bar-close { color: #ffffff !important; /* X bianca su sfondo nero */ cursor: default; /* Cursore standard, in modo che il pulsante di chiusura si distingua dal resto cliccabile */
} @media (max-width: 767px) { .varify-usp-bar.varify-usp-bar--mobile-single { text-align: center; } /* Adatta .varify-usp-bar-item alla tua classe di colonne */
  .varify-usp-bar.varify-usp-bar--mobile-single .varify-usp-bar-item:not(:first-child) { display: none; } .varify-usp-bar-icon { width: 61px !important; height: 61px !important; } }


    
/* Wrapper con lo sfondo */ .varify-code-block { sfondo: #f5f2f0; raggio del bordo: 8px; bordo: 1px solido #e0ddd9; padding: 0; posizione: relativa; font-family: Consolas, Menlo, Monaco, "Fira Code", monospace; margin-bottom: 24px; } /* Area del codice */ .varify-code-block pre { margine: 0; padding: 16px 18px; overflow: auto; spazio bianco: pre; } .varify-code-block code { colore: #333; font-size: 13px; line-height: 1.55; display: block; } /* Pulsante di copia - completamente neutralizzato, non più blu */ .varify-copy-btn { all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */ display: inline-block !important; position: absolute !important; top: 10px !important; right: 10px !important; padding: 6px 10px !important; bordo-raggio: 6px !importante; sfondo: rgba(255,255,255,0.4) !importante; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; bordo: 1px solido rgba(255,255,255,0.35) !importante; colore: #333 !importante; font-size: 11px !important; peso del carattere: 600 !importante; Decorazione del testo: nessuna !importante; cursore: puntatore !importante; box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important; } /* Feedback opzionale dopo la copia */ .varify-copy-btn.copied { sfondo: rgba(80, 200, 120, 0.55) !important; colore: #fff !important; } document.addEventListener("click", function (e) { const btn = e.target.closest(".varify-copy-btn"); if (!btn) return; const codeEl = btn.parentElement.querySelector("code"); se (!codeEl) return; const code = codeEl.innerText; se (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(codice); } else { const ta = document.createElement("textarea"); ta.value = codice; document.body.appendChild(ta); ta.select(); document.execCommand("copy"); ta.remove(); } btn.classList.add("copiato"); btn.textContent = "Copiato!"; setTimeout(() => { btn.classList.remove("copiato"); btn.textContent = "Copiato"; }, 1400); });

Black Friday Exit Intent - Immagine

Intento di uscita (desktop)

Quando un utente desidera abbandonare la pagina, compare un popup con un'immagine. Perfetto per attirare ancora una volta l'attenzione prima che l'utente lasci la pagina.

JavaScript aggiuntivo



window.varify.helpers.onDomLoaded(() => {

  /* === YOUR SETTINGS === */
  const imgSrc = "https://images.varify.io/bb686c8cd78a3cad7c19b26d7df61c2b634f336481bd52130e1c1d570343f346/example_bf.jpg";
  const targetUrl = "https://example.com/black-friday";  // Link for the image
  const sessionKey = "varify_exit_popup_seen";           // Do not change
  /* ========================= */

  // Do not run in editor
  function isInEditor() {
    const p = new URLSearchParams(location.search);
    return p.has("varify-variation-name") || p.has("varify-variation-id");
  }
  if (isInEditor()) return;

  // Do not show more than once per session
  if (sessionStorage.getItem(sessionKey)) return;

  window.varify.helpers.waitFor('.varify-exitIntent-content', (contentDiv) => {

    const wrapper  = document.querySelector('.varify-exitIntent-wrapper');
    const backdrop = document.querySelector('.varify-exitIntent-backdrop');
    const modal    = document.querySelector('.varify-exitIntent');
    const closeBtn = document.querySelector('.varify-exitIntent-close');

    if (!wrapper || !backdrop || !modal || !closeBtn) return;

    // Replace content with image popup
    contentDiv.innerHTML = "";
    const link = document.createElement("a");
    link.href = targetUrl;
    link.target = "_blank";
    link.rel = "noopener noreferrer";

    const img = document.createElement("img");
    img.src = imgSrc;
    img.alt = "Black Friday Image";
    img.style.display = "block";
    img.style.width = "100%";
    img.style.height = "auto";

    link.appendChild(img);
    contentDiv.appendChild(link);

    // Exit intent trigger
    const exitHandler = (e) => {
      if (e.clientY  {
      if (!modal.contains(evt.target)) closePopup();
    });

    closeBtn.addEventListener("click", (e) => {
      e.preventDefault();
      closePopup();
    });

    document.addEventListener("keydown", (e) => {
      if (e.key === "Escape") closePopup();
    });

  });
});


    
/* Wrapper con lo sfondo */ .varify-code-block { sfondo: #f5f2f0; raggio del bordo: 8px; bordo: 1px solido #e0ddd9; padding: 0; posizione: relativa; font-family: Consolas, Menlo, Monaco, "Fira Code", monospace; margin-bottom: 24px; } /* Area del codice */ .varify-code-block pre { margine: 0; padding: 16px 18px; overflow: auto; spazio bianco: pre; } .varify-code-block code { colore: #333; font-size: 13px; line-height: 1.55; display: block; } /* Pulsante di copia - completamente neutralizzato, non più blu */ .varify-copy-btn { all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */ display: inline-block !important; position: absolute !important; top: 10px !important; right: 10px !important; padding: 6px 10px !important; bordo-raggio: 6px !importante; sfondo: rgba(255,255,255,0.4) !importante; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; bordo: 1px solido rgba(255,255,255,0.35) !importante; colore: #333 !importante; font-size: 11px !important; peso del carattere: 600 !importante; Decorazione del testo: nessuna !importante; cursore: puntatore !importante; box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important; } /* Feedback opzionale dopo la copia */ .varify-copy-btn.copied { sfondo: rgba(80, 200, 120, 0.55) !important; colore: #fff !important; } document.addEventListener("click", function (e) { const btn = e.target.closest(".varify-copy-btn"); if (!btn) return; const codeEl = btn.parentElement.querySelector("code"); se (!codeEl) return; const code = codeEl.innerText; se (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(codice); } else { const ta = document.createElement("textarea"); ta.value = codice; document.body.appendChild(ta); ta.select(); document.execCommand("copy"); ta.remove(); } btn.classList.add("copiato"); btn.textContent = "Copiato!"; setTimeout(() => { btn.classList.remove("copiato"); btn.textContent = "Copiato"; }, 1400); });
CSS aggiuntivo



/* Sfondo nascosto per impostazione predefinita */ .varify-exitIntent-backdrop { display: none !important; background-color: rgba(0, 0, 0, 0.8) !important; position: fixed; top: 0; bottom: 0; left: 0; right: 0;
  justify-content: center; align-items: center; } /* Mostra il popup solo quando il wrapper ha vf-show */ .varify-exitIntent-wrapper.vf-show .varify-exitIntent-backdrop { display: flex !important; }

/* Impedisci lo scorrimento quando il popup è aperto */ .vf-no-scroll { overflow: hidden !important; } /* Il contenuto è solo l'immagine, quindi rimuovi il padding */ .varify-exitIntent-content { padding: 0 !important; } /* Sfondo modale nero */
.varify-exitIntent { background: #000 !important; border-radius: 8px !important; box-shadow: 0 0 8px rgba(0, 0, 0, 0.4); width: 540px; max-width: 90%;
  max-height: 90%; overflow: hidden; /* importante affinché l'immagine non fuoriesca mai */ position: relative; } /* Pulsante Chiudi sempre visibile sopra l'immagine */ .varify-exitIntent-close { position: absolute; right: 8px; top: 8px; width: 28px;
  height: 28px; background: rgba(255, 255, 255, 0.9); border-radius: 50%; z-index: 9999; display: flex; align-items: center; justify-content: center; cursor: pointer; }

.varify-exitIntent-close-icon { width: 14px; height: 14px; color: #000 !important; } .varify-exitIntent-header { display: none !important; }


    

/* Wrapper con lo sfondo */
.varify-code-block {
sfondo: #f5f2f0;
raggio del bordo: 8px;
bordo: 1px solido #e0ddd9;
imbottitura: 0;
posizione: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
margine inferiore: 24px;
}

/* Area del codice */
.varify-code-block pre {
margine: 0;
imbottitura: 16px 18px;
overflow: auto;
spazio bianco: pre;
}

.varify-code-block code {
colore: #333;
dimensione del carattere: 13px;
altezza delle linee: 1,55;
visualizzazione: blocco;
}

/* Pulsante Copia - completamente neutralizzato, non più blu */
.varify-copy-btn {
all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */

display: inline-block !important;
posizione: assoluta !importante;
top: 10px !important;
destra: 10px !importante;

padding: 6px 10px !important;
bordo: 6px !importante;

sfondo: rgba(255,255,255,0.4) !important;
filtro di sfondo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;

bordo: 1px solido rgba(255,255,255,0.35) !importante;

colore: #333 !importante;
font-size: 11px !important;
font-weight: 600 !important;
Decorazione del testo: nessuna !importante;

cursore: puntatore !importante;
box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}

/* Feedback opzionale dopo la copia */
.varify-copy-btn.copied {
sfondo: rgba(80, 200, 120, 0.55) !important;
colore: #fff !importante;
}

document.addEventListener(„click“, function (e) { const btn = e.target.closest(„.varify-copy-btn“); if (!btn) return; const codeEl = btn.parentElement.querySelector(„code“); if (!codeEl) return; const code = codeEl.innerText; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(code); } else { const ta = document.createElement(„textarea“); ta.value = code; document.body.appendChild(ta); ta.select(); document.execCommand(„copy“); ta.remove(); } btn.classList.add(„copied“); btn.textContent = „Copied!“; setTimeout(() => { btn.classList.remove(„copied“); btn.textContent = „Copy“; }, 1400); });

Black Friday Exit Intent - Contenuto

Intento di uscita (desktop)

Questo popup appare quando l'utente desidera abbandonare la pagina e contiene testo, elenchi puntati e un pulsante. Puoi personalizzare il contenuto in base alle tue esigenze per riportare l'utente sulla pagina.

JavaScript aggiuntivo


window.varify.helpers.onDomLoaded(() => {
  // ================================
  // CONFIG – YOU CAN EDIT THIS
  // ================================

  // Unique key for this popup. Change if you want a separate session logic.
  const POPUP_SESSION_KEY = 'varifyBFContentExitPopupSeen';

  // Popup texts
  const POPUP_HEADLINE = 'Black Friday Mega Deal!';
  const POPUP_SUBHEADLINE = 'Don\'t miss our biggest discounts';

  // Bullet points (each entry = one bullet line)
  const POPUP_BULLETS = [
    'Up to 50% off everything',
    'Free shipping on all orders',
    'Limited time offer'
  ];

  // CTA button
  const POPUP_CTA_URL = 'https://example.com/black-friday'; // landing page URL
  const POPUP_CTA_TEXT = 'Save Now →';                       // CTA label

  // Exit intent sensitivity (keep it simple: trigger when mouse leaves at top)
  const EXIT_TRIGGER_Y = 0;

  // ================================
  // RUNTIME LOGIC – DO NOT TOUCH :)
  // ================================

  // Do not run inside Varify editor
  function isInEditor() {
    const p = new URLSearchParams(location.search);
    return p.has('varify-variation-name') || p.has('varify-variation-id');
  }
  if (isInEditor()) return;

  // Do not show more than once per session
  if (sessionStorage.getItem(POPUP_SESSION_KEY) === '1') return;

  window.varify.helpers.waitFor('.varify-exitIntent-content', (contentDiv) => {
    const wrapper  = document.querySelector('.varify-exitIntent-wrapper');
    const backdrop = document.querySelector('.varify-exitIntent-backdrop');
    const modal    = document.querySelector('.varify-exitIntent');
    const closeBtn = document.querySelector('.varify-exitIntent-close');

    if (!wrapper || !backdrop || !modal || !closeBtn || !contentDiv) return;

    let popupOpened = false;

    // Ensure close button is inside modal so it overlays the content
    if (closeBtn.parentElement !== modal) {
      modal.appendChild(closeBtn);
    }

    // Build popup content (headline, subheadline, bullets, CTA)
    contentDiv.innerHTML = '';
    contentDiv.style.textAlign = 'left';

    const headline = document.createElement('p');
    headline.className = 'bf-exit-intent-headline';
    headline.textContent = POPUP_HEADLINE;

    const subheadline = document.createElement('p');
    subheadline.className = 'bf-exit-intent-subheadline';
    subheadline.textContent = POPUP_SUBHEADLINE;

    const ul = document.createElement('ul');
    ul.className = 'bf-exit-intent-bullets';

    POPUP_BULLETS.forEach((txt) => {
      const li = document.createElement('li');
      li.textContent = txt;
      ul.appendChild(li);
    });

    const cta = document.createElement('a');
    cta.className = 'bf-exit-intent-cta';
    cta.href = POPUP_CTA_URL;
    cta.target = '_blank';
    cta.rel = 'noopener noreferrer';
    cta.textContent = POPUP_CTA_TEXT;

    contentDiv.appendChild(headline);
    contentDiv.appendChild(subheadline);
    contentDiv.appendChild(ul);
    contentDiv.appendChild(cta);

    // Exit-intent trigger (simple: mouse leaves at top)
    const exitHandler = (e) => {
      if (popupOpened) return;
      // nur reagieren, wenn Maus oben rausgeht
      if (e.clientY > EXIT_TRIGGER_Y) return;

      openPopup();
      popupOpened = true;
      document.removeEventListener('mouseout', exitHandler);
    };

    document.addEventListener('mouseout', exitHandler);

    function openPopup() {
      sessionStorage.setItem(POPUP_SESSION_KEY, '1');
      wrapper.classList.add('vf-show');
      backdrop.style.display = '';
      document.documentElement.classList.add('vf-no-scroll');
      document.body.classList.add('vf-no-scroll');
    }

    function closePopup() {
      wrapper.classList.remove('vf-show');
      backdrop.style.display = 'none';
      document.documentElement.classList.remove('vf-no-scroll');
      document.body.classList.remove('vf-no-scroll');
    }

    // Outside click closes
    backdrop.addEventListener('click', (evt) => {
      if (!modal.contains(evt.target)) closePopup();
    });

    // X button closes
    closeBtn.addEventListener('click', (e) => {
      e.preventDefault();
      closePopup();
    });

    // ESC closes
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape') closePopup();
    });
  });
});


    
/* Wrapper con lo sfondo */
.varify-code-block {
sfondo: #f5f2f0;
raggio del bordo: 8px;
bordo: 1px solido #e0ddd9;
imbottitura: 0;
posizione: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
margine inferiore: 24px;
}

/* Area del codice */
.varify-code-block pre {
margine: 0;
imbottitura: 16px 18px;
overflow: auto;
spazio bianco: pre;
}

.varify-code-block code {
colore: #333;
dimensione del carattere: 13px;
altezza delle linee: 1,55;
visualizzazione: blocco;
}

/* Pulsante Copia - completamente neutralizzato, non più blu */
.varify-copy-btn {
all: unset !important; /* rimuove TUTTI gli stili predefiniti/tema/elemento */

display: inline-block !important;
posizione: assoluta !importante;
top: 10px !important;
destra: 10px !importante;

padding: 6px 10px !important;
bordo: 6px !importante;

sfondo: rgba(255,255,255,0.4) !important;
filtro di sfondo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;

bordo: 1px solido rgba(255,255,255,0.35) !importante;

colore: #333 !importante;
font-size: 11px !important;
font-weight: 600 !important;
Decorazione del testo: nessuna !importante;

cursore: puntatore !importante;
box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}

/* Feedback opzionale dopo la copia */
.varify-copy-btn.copied {
sfondo: rgba(80, 200, 120, 0.55) !important;
colore: #fff !importante;
}
document.addEventListener(„click“, function (e) { const btn = e.target.closest(„.varify-copy-btn“); if (!btn) return; const codeEl = btn.parentElement.querySelector(„code“); if (!codeEl) return; const code = codeEl.innerText; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(code); } else { const ta = document.createElement(„textarea“); ta.value = code; document.body.appendChild(ta); ta.select(); document.execCommand(„copy“); ta.remove(); } btn.classList.add(„copied“); btn.textContent = „Copied!“; setTimeout(() => { btn.classList.remove(„copied“); btn.textContent = „Copy“; }, 1400); });

CSS aggiuntivo

/* --------------------------------------------- Sfondo nascosto per impostazione predefinita --------------------------------------------- */
.varify-exitIntent-backdrop { display: none !important; background-color: rgba(0, 0, 0, 0.8) !important; position: fixed !important; top: 0; bottom: 0; left: 0; right: 0; justify-content: center; align-items: center;
  z-index: 2147483646 !important; } /* --------------------------------------------- Mostra popup quando il wrapper ha .vf-show --------------------------------------------- */ .varify-exitIntent-wrapper.vf-show .varify-exitIntent-backdrop { display: flex !important; } /* --------------------------------------------- Impedisci lo scorrimento della pagina mentre il popup è aperto --------------------------------------------- */ .vf-no-scroll { overflow: hidden !important; } /* --------------------------------------------- Modal styling (per popup con contenuto) --------------------------------------------- */ .varify-exitIntent { background-color: #000 !important; color: #fff !important; border-radius: 10px !important; box-shadow: 0 0 18px rgba(0, 0, 0, 0.6);
  width: 540px !important; max-width: 90% !important; max-height: 90% !important; overflow: visible !important; position: relative !important; padding: 0 !important; z-index: 2147483647 !important; } /* --------------------------------------------- Area contenuto --------------------------------------------- */ .varify-exitIntent-content { padding: 30px !important; text-align: left !important; }

/* --------------------------------------------- Nascondi blocco intestazione predefinito inutilizzato --------------------------------------------- */ .varify-exitIntent-header { display: none !important; }

/* --------------------------------------------- Pulsante Chiudi (sempre visibile sopra il contenuto) --------------------------------------------- */ .varify-exitIntent-close { posizione: assoluta !importante; alto: 12px !importante;
  right: 12px !important; width: 28px !important; height: 28px !important; border-radius: 50% !important; background: rgba(255, 255, 255, 0.9) !important; color: #000 !important;
  z-index: 2147483648 !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important; padding: 0 !important; } .varify-exitIntent-close-icon { width: 14px !important;
  height: 14px !important; color: #000 !important; } /* --------------------------------------------- Tipografia per popup contenuto --------------------------------------------- */
.bf-exit-intent-headline { font-size: 22px !important; font-weight: 800 !important; margin: 0 0 10px !important; color: #fff !important; } .bf-exit-intent-subheadline { font-size: 18px !important;
  margin: 0 0 15px !important; color: #fff !important; } /* --------------------------------------------- Elenco puntato --------------------------------------------- */ .bf-exit-intent-bullets { list-style: none !important; padding: 0 !important; margin: 0 0 20px !important; } .bf-exit-intent-bullets li { margin-bottom: 6px !important; padding-left: 20px !important;
  position: relative !important; color: #fff !important; } .bf-exit-intent-bullets li::before { content: "•" !important; color: #d32c2c !important; position: absolute !important; left: 0 !important; top: 0 !important; }

/* --------------------------------------------- Pulsante CTA --------------------------------------------- */ .bf-exit-intent-cta { display: inline-block !important;
  background-color: #d32c2c !important; color: #fff !important; padding: 10px 20px !important; border-radius: 4px !important; font-size: 16px !important; font-weight: 600 !important; text-decoration: none !important;
} .bf-exit-intent-cta:hover { background-color: #b71c1c !important; } /* --------------------------------------------- Modifiche responsive per viewport molto piccoli --------------------------------------------- */ @media only screen and (max-height: 700px) { .varify-exitIntent { max-height: 75% !important; } } @media only screen and (max-width: 380px) { .varify-exitIntent-content { padding: 20px !important; } .bf-exit-intent-headline { font-size: 19px !important; } .bf-exit-intent-subheadline { font-size: 16px !important; } }

/* Wrapper con lo sfondo */
.varify-code-block {
sfondo: #f5f2f0;
raggio del bordo: 8px;
bordo: 1px solido #e0ddd9;
imbottitura: 0;
posizione: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
margine inferiore: 24px;
}

/* Area del codice */
.varify-code-block pre {
margine: 0;
imbottitura: 16px 18px;
overflow: auto;
spazio bianco: pre;
}

.varify-code-block code {
colore: #333;
dimensione del carattere: 13px;
altezza delle linee: 1,55;
visualizzazione: blocco;
}

/* Pulsante Copia - completamente neutralizzato, non più blu */
.varify-copy-btn {
all: unset !important; /* uccide TUTTI gli stili predefiniti/tema/Elementor */

display: inline-block !important;
posizione: assoluta !importante;
top: 10px !important;
destra: 10px !importante;

padding: 6px 10px !important;
bordo: 6px !importante;

sfondo: rgba(255,255,255,0.4) !important;
filtro di sfondo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;

bordo: 1px solido rgba(255,255,255,0.35) !importante;

colore: #333 !importante;
font-size: 11px !important;
font-weight: 600 !important;
Decorazione del testo: nessuna !importante;

cursore: puntatore !importante;
box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}

/* Feedback opzionale dopo la copia */
.varify-copy-btn.copied {
sfondo: rgba(80, 200, 120, 0.55) !important;
colore: #fff !importante;
}

document.addEventListener(„click“, function (e) { const btn = e.target.closest(„.varify-copy-btn“); if (!btn) return; const codeEl = btn.parentElement.querySelector(„code“); if (!codeEl) return; const code = codeEl.innerText; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(code); } else { const ta = document.createElement(„textarea“); ta.value = code; document.body.appendChild(ta); ta.select(); document.execCommand(„copy“); ta.remove(); } btn.classList.add(„copied“); btn.textContent = „Copied!“; setTimeout(() => { btn.classList.remove(„copied“); btn.textContent = „Copy“; }, 1400); });

Cosa dicono i nostri utenti PRO

Caratteristica di Varify Pro

Responsabile clienti e successo
Smussamento degli outlier
Integrazione di BigQuery
Esperimento API
Geotargeting
Opzioni di pagamento flessibili
DPA personalizzato
CNAME personalizzato
Onboarding personalizzato
Esportazione dei risultati
Migrazione da un altro strumento di test
Supporto Slack
Set di carte digitali

Passa subito alla versione PRO e risparmia come cliente esistente

Basta un clic per avviare l'aggiornamento e utilizzare tutte le funzionalità avanzate di Varify.io.