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
PopUp Black Friday - Immagine
Intento di uscita
Puoi visualizzare un popup con un'immagine che appare in un determinato momento. Puoi personalizzare tu stesso quando apparirà esattamente.
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: 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; }
Affidatevi alla più grande piattaforma di test A/B sviluppata in Germania
Black Friday PopUp - Contenuto
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.
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();
}
});
});
});
.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);
});
/* ================================ 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; }
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.
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';
});
}
});
});
.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);
});
/* 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; } }
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.
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'; } }); } });
.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);
});
/* 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; } }
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.
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();
});
});
});
/* 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.
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();
});
});
});
.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);
});
/* --------------------------------------------- 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
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.