Use nosso impulsionador de campanhas para aproveitar ao máximo a Black Friday
Neste vídeo, mostramos como você pode testar os trechos de código.
Em apenas três passos para a sua configuração da Black Friday
Para muitos profissionais de marketing, a Black Friday é um dos dias de maior faturamento do ano. As metas são altas, a concorrência ainda mais. No entanto, os resultados muitas vezes ficam aquém das expectativas.
A principal razão: as campanhas e ofertas não são percebidas com clareza suficiente no site. Os usuários ignoram os descontos, as promoções se perdem no layout e valiosos potenciais de conversão permanecem inutilizados.
-
Importante: ative o impulsionador de campanha correspondente no seu editor visual.
-
Copie o JavaScript e CSS personalizados e verifique-os na sua configuração.
-
Cuide do seu conteúdo e publique o teste após uma garantia de qualidade bem-sucedida.
Observação: a Varify não se responsabiliza pelo funcionamento do código e das informações. É responsabilidade do usuário verificar cuidadosamente o código de teste e implementá-lo corretamente.
Como nossos clientes utilizam o Varify na Black Friday
Flexibilidade sem desenvolvedores
Altere o estilo e adicione rapidamente impulsionadores de campanha, sem depender do departamento de desenvolvimento. Isso economiza tempo e permite que você reaja imediatamente.
Testes rápidos da página de destino
Graças ao nosso script mínimo, você pode criar páginas de destino no seu CMS e testá-las diretamente com redirecionamentos – de forma rápida, fácil e sem longos tempos de espera.
Estilo simples para a Black Friday
Quer adaptar sua loja para a Black Friday ou destacar determinados elementos movendo-os? Com o editor visual, você pode alterar o design rapidamente, sem precisar mexer no código.
Segmentação precisa para campanhas
Teste como determinados grupos-alvo reagem às suas alterações, direcionando-as especificamente a eles – com parâmetros UTM, perfis de dispositivos ou países. Assim, você saberá exatamente o que funciona – e para quem.
JS e CSS adaptados para o impulsionador de campanhas Varify
PopUp da Black Friday - Imagem
Intenção de saída
Você pode exibir um pop-up com uma imagem que aparece em um determinado momento. Você mesmo pode ajustar quando exatamente ele aparecerá.
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: oculto por padrão, visível quando vf-show é adicionado */ .varify-exitIntent-wrapper { display: none; } .varify-exitIntent-wrapper.vf-show { display: block; } /* backdrop: sobreposição em tela cheia */
.varify-exitIntent-wrapper.vf-show .varify-exitIntent-backdrop { posição: fixa; inset: 0; exibição: flex !importante; alinhar itens: centro; justificar conteúdo: centro; cor de fundo: rgba(0, 0, 0, 0,8);
z-index: 2147483647; } /* modal: contêiner puro ao redor da imagem */ .varify-exitIntent { position: relative; max-width: 90vw; max-height: 90vh; background: transparent; border: none; box-shadow: none; }
/* remover preenchimento: modal de imagem pura */ .varify-exitIntent-content { preenchimento: 0 !importante; } /* a imagem nunca deve ser maior que a altura da janela de visualização */ .varify-exitIntent-content img { exibição: bloco; largura: 100%; altura: automática;
altura máxima: 90vh; ajuste do objeto: conter; } /* ocultar barra de cabeçalho original, se houver */ .varify-exitIntent-header { exibição: nenhuma !importante; } /* sobreposição do botão fechar acima da imagem */ .varify-exitIntent-close { posição: absoluta !importante; topo: 12px;
direita: 12px; largura: 24px; altura: 24px; exibição: flex !importante; alinhar itens: centro; justificar conteúdo: centro; fundo: transparente; cor: #fff !importante; cursor: ponteiro; z-index: 2147483647; }
Confie na maior plataforma de testes A/B desenvolvida na Alemanha
PopUp da Black Friday - Conteúdo
Intenção de saída
Este pop-up contém texto, marcadores e um botão. Você pode personalizar o texto como desejar e definir quando o pop-up deve aparecer para informar seus usuários de forma direcionada.
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 {
fundo: #f5f2f0;
Raio da borda: 8px;
borda: 1px sólido #e0ddd9;
preenchimento: 0;
posição: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
Margem inferior: 24px;
}
/* Área de código */
.varify-code-block pre {
margem: 0;
preenchimento: 16px 18px;
transbordamento: automático;
white-space: pre;
}
.varify-code-block code {
Cor: #333;
tamanho da fonte: 13px;
Altura da linha: 1,55;
exibição: bloco;
}
/* Botão Copiar - totalmente neutralizado, não mais azul */
.varify-copy-btn {
all: unset !important; /* remove TODOS os estilos padrão/tema/elementor */
display: inline-block !important;
position: absolute !important;
top: 10px !important;
direita: 10px !important;
padding: 6px 10px !important;
Raio da borda: 6px !important;
Fundo: rgba(255,255,255,0.4) !important;
filtro de plano de fundo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;
borda: 1px solid rgba(255,255,255,0.35) !important;
cor: #333 !important;
Tamanho da fonte: 11px !important;
font-weight: 600 !important;
Decoração de texto: nenhum !importante;
cursor: ponteiro !important;
box-shadow: 0 4px 12px rgba(0,0,0,0,0.08) !important;
}
/* Feedback opcional após a cópia */
.varify-copy-btn.copied {
Fundo: rgba(80, 200, 120, 0,55) !important;
cor: #fff !important;
}
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 = „Copiado!“;
setTimeout(() => {
btn.classList.remove(„copied“);
btn.textContent = „Copiar“;
}, 1400);
});
/* ================================ COMPORTAMENTO BÁSICO DO POPUP ================================ */ /* Wrapper oculto por padrão, visível quando .vf-show é adicionado via JS */ .varify-exitIntent-wrapper { display: none; }
.varify-exitIntent-wrapper.vf-show { display: block; } /* Backdrop: sobreposição escura, somente quando o wrapper tem .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; }
/* Opcional: se você quiser bloquear a rolagem na página: .vf-no-scroll { overflow: hidden !important; } */ /* Cabeçalho não necessário para este design */ .varify-exitIntent-header { display: none !important; }
/* ================================ ESTILO MODAL (LOOK BLACK FRIDAY) ================================ */ .varify-exitIntent { cor de fundo: #000 !important; cor: #fff !important; raio da borda: 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; /* acima do fundo, abaixo do botão Fechar */ overflow: visible !important; /* não corte o botão Fechar */ } /* Se o seu HTML tiver um .varify-exitIntent-inner: role apenas dentro */
.varify-exitIntent-inner { altura máxima: 80vh; overflow: auto; } /* Bloco de conteúdo */ .varify-exitIntent-content { preenchimento: 30px !important; alinhamento do texto: esquerda !important; }
/* ================================ ESTILOS DE TEXTO ================================ */ .bf-exit-intent-headline { tamanho da fonte: 22px; espessura da fonte: 800; margem: 0 0 10px; cor: #fff; }
.bf-exit-intent-subheadline { tamanho da fonte: 18px; margem: 0 0 15px; cor: #fff; } .bf-exit-intent-bullets { estilo da lista: nenhum; preenchimento: 0; margem: 0 0 20px; }
.bf-exit-intent-bullets li { margem inferior: 6px; preenchimento esquerdo: 20px; posição: relativa; cor: #fff; } .bf-exit-intent-bullets li:antes { conteúdo: "•"; cor: #d32c2c;
position: absolute; left: 0; top: 0; } /* Botão CTA */ .bf-exit-intent-cta { display: inline-block; background-color: #d32c2c; color: #fff !important; padding: 10px 20px;
border-radius: 4px; tamanho da fonte: 16px; espessura da fonte: 600; decoração do texto: nenhuma !importante; } .bf-exit-intent-cta:hover { cor de fundo: #b71c1c; }
/* ================================ BOTÃO FECHAR (X) – SEMPRE NA PARTE SUPERIOR ================================ */ .varify-exitIntent-close { posição: absoluta !importante; topo: 12px !importante; direita: 12px !importante; largura: 28px !importante; altura: 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; /* acima de tudo */ color: #fff !important; }
.varify-exitIntent-close-icon { largura: 16px; altura: 16px; cor: #fff !important; }
Notificação sutil sobre a Black Friday
Notificação
Uma notificação discreta que aparece no canto inferior esquerdo. Com ela, você pode redirecionar o usuário para outra página de ação sem incomodá-lo – perfeita para chamadas à ação sutis.
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 {
fundo: #f5f2f0;
Raio da borda: 8px;
borda: 1px sólido #e0ddd9;
preenchimento: 0;
posição: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
Margem inferior: 24px;
}
/* Área de código */
.varify-code-block pre {
margem: 0;
preenchimento: 16px 18px;
transbordamento: automático;
white-space: pre;
}
.varify-code-block code {
Cor: #333;
tamanho da fonte: 13px;
Altura da linha: 1,55;
exibição: bloco;
}
/* Botão Copiar - totalmente neutralizado, não mais azul */
.varify-copy-btn {
all: unset !important; /* remove TODOS os estilos padrão/tema/elementor */
display: inline-block !important;
position: absolute !important;
top: 10px !important;
direita: 10px !important;
padding: 6px 10px !important;
Raio da borda: 6px !important;
Fundo: rgba(255,255,255,0.4) !important;
filtro de plano de fundo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;
borda: 1px solid rgba(255,255,255,0.35) !important;
cor: #333 !important;
Tamanho da fonte: 11px !important;
font-weight: 600 !important;
Decoração de texto: nenhum !importante;
cursor: ponteiro !important;
box-shadow: 0 4px 12px rgba(0,0,0,0,0.08) !important;
}
/* Feedback opcional após a cópia */
.varify-copy-btn.copied {
Fundo: rgba(80, 200, 120, 0,55) !important;
cor: #fff !important;
}
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 = „Copiado!“;
setTimeout(() => {
btn.classList.remove(„copied“);
btn.textContent = „Copiar“;
}, 1400);
});
/* Caixa preta com texto branco */ .varify-notification.v_animated.v_animation.varify-init { background-color: #000 !important; color: #fff !important; }
/* Título e texto em branco */ .varify-notification-headline, .varify-notification-text { cor: #fff !important; } /* Margem do texto na parte inferior */ .varify-notification-text { margem inferior: 5px !important; }
/* Estilo do texto CTA */ .webinar-signup { cor: #fff !important; tamanho da fonte: 14px !important; espessura da fonte: 600 !important; decoração do texto: nenhuma !important; } .webinar-signup:hover { decoração do texto: sublinhado !important; }
/* Tornar o ícone de fechar (X) visível */ .varify-notification-close { cor: #fff !important; } /* Design de bolha para "Oferta da Black Friday" */ .webinar-info { cor de fundo: #d32c2c !important; /* bolha vermelha */
color: #fff !important; /* texto branco */ border-radius: var(--border-radius--200) !important; font-weight: 600 !important; font-size: 12px !important; padding: 2px 6px !important; max-width: 160px !important;
alinhamento do texto: centro !importante; margem inferior: 8px !importante; margem superior: 6px !importante; } /* ---------- AJUSTES MÓVEIS ---------- */ @media (largura máxima: 767px) {
.varify-notification-headline { tamanho da fonte: 14px !important; } .varify-notification-text { tamanho da fonte: 12px !important; margem inferior: 4px !important; } .webinar-info { tamanho da fonte: 10px !important;
padding: 1px 4px !important; max-width: 120px !important; margin-bottom: 6px !important; } .webinar-signup { font-size: 12px !important; } } @media (max-width: 576px) { /* Caixa geral menor */
.varify-notification { padding: 8px 10px !important; min-width: 200px !important; max-width: 260px !important; border-radius: 3px !important; bottom: 20px !important; left: 20px !important; }
/* Título menor */ .varify-notification-headline { tamanho da fonte: 13px !important; altura da linha: 1.2 !important; margem inferior: 2px !important; } /* Subtítulo menor */ .varify-notification-text { tamanho da fonte: 11px !important;
altura da linha: 1,2 !important; } /* Emblema menor */ .webinar-info { tamanho da fonte: 10px !important; preenchimento: 1px 4px !important; largura máxima: 100px !important; margem inferior: 4px !important; }
/* Fechar-X menor */ .varify-notification-close { tamanho da fonte: 16px !important; largura: 12px !important; altura: 12px !important; direita: 10px !important; margem superior: -6px !important; } }
Barra de informações da Black Friday
Barra de informações
Com a barra de informações, você pode exibir três conteúdos diferentes e substituir o SVG pelo seu próprio design. As tags também podem ser personalizadas e todo o elemento está vinculado, para que você possa facilmente criar um link para ele.
window.varify.helpers.waitFor('.varify-usp-bar', (bar) => { // === CONFIGURAÇÕES PARA VOCÊ === const headlines = [ '30% DESLIGAR TUDO', '30% DESLIGAR TUDO', '30% DESLIGAR TUDO' ];
const mobileHeadline = '30% DESLIGAR TUDO – ESPECIAL PARA CELULAR'; 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'); }
// === APLICAR TEXTOS === bar.querySelectorAll('.varify-usp-bar-headline').forEach((el, idx) => { se (isMobile) { el.textContent = mobileHeadline; } else { el.textContent = headlines[idx] || headlines[0]; } });
// === APLICAR ÍCONES === bar.querySelectorAll('.varify-usp-bar-icon').forEach((el) => { el.innerHTML = iconVariant === 'cross' ? crossIconSvg : defaultIconSvg; });
// === TORNAR A BARRA CLICÁVEL === bar.addEventListener('click', (evt) => { se (evt.target.closest('.varify-usp-bar-close')) retornar; window.location.href = targetUrl; }); // ------------------------------------------------------------------ // === RECURSO MÓVEL (NOVO – O RESTO PERMANECE INALTERADO) === // ----------------if (isMobile) { // apenas o primeiro USP permanece visível const usps = bar.querySelectorAll('.varify-usp-bar-usp');
usps.forEach((usp, index) => { se (index > 0) { usp.style.display = 'none'; } }); } });
.varify-code-block {
fundo: #f5f2f0;
Raio da borda: 8px;
borda: 1px sólido #e0ddd9;
preenchimento: 0;
posição: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
Margem inferior: 24px;
}
/* Área de código */
.varify-code-block pre {
margem: 0;
preenchimento: 16px 18px;
transbordamento: automático;
white-space: pre;
}
.varify-code-block code {
Cor: #333;
tamanho da fonte: 13px;
Altura da linha: 1,55;
exibição: bloco;
}
/* Botão Copiar - totalmente neutralizado, não mais azul */
.varify-copy-btn {
all: unset !important; /* remove TODOS os estilos padrão/tema/elementor */
display: inline-block !important;
position: absolute !important;
top: 10px !important;
direita: 10px !important;
padding: 6px 10px !important;
Raio da borda: 6px !important;
Fundo: rgba(255,255,255,0.4) !important;
filtro de plano de fundo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;
borda: 1px solid rgba(255,255,255,0.35) !important;
cor: #333 !important;
Tamanho da fonte: 11px !important;
font-weight: 600 !important;
Decoração de texto: nenhum !importante;
cursor: ponteiro !important;
box-shadow: 0 4px 12px rgba(0,0,0,0,0.08) !important;
}
/* Feedback opcional após a cópia */
.varify-copy-btn.copied {
Fundo: rgba(80, 200, 120, 0,55) !important;
cor: #fff !important;
}
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 = „Copiado!“;
setTimeout(() => {
btn.classList.remove(„copied“);
btn.textContent = „Copiar“;
}, 1400);
});
Estilo Black Friday: fundo preto, texto branco, ocultar subtítulo. varify-usp-bar-wrapper, varify-usp-bar { cor de fundo: #000 !importante; cor: #fff !importante; } varify-usp-bar-headline {
cor: #fff !important; tamanho da fonte: 18px !important; espessura da fonte: 700 !important; } .varify-usp-bar-text { exibição: nenhuma !important; /* Remover subtítulo; apenas os títulos permanecem */ } .varify-usp-bar-icon svg {
preenchimento: #fff !importante; traço: #fff !importante; largura: 24px; altura: 24px; } /* Mostra o cursor do mouse como uma „mão esquerda“ sobre toda a barra */ .varify-usp-bar-wrapper { cursor: ponteiro; }
/* Garante que o X de fechar permaneça visível e não seja afetado pela troca de ícones */ .varify-usp-bar-close { color: #ffffff !important; /* X branco sobre fundo preto */ cursor: default; /* Cursor padrão para que o botão Fechar se diferencie do resto clicável */
} @media (max-width: 767px) { .varify-usp-bar.varify-usp-bar--mobile-single { text-align: center; } /* Adapte .varify-usp-bar-item à sua classe de coluna */
.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 - Imagem
Intenção de saída (desktop)
Quando um usuário deseja sair da página, aparece um pop-up com uma imagem. Perfeito para chamar a atenção mais uma vez antes que o usuário saia da página.
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();
});
});
});
/* Backdrop oculto por padrão */ .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; } /* Mostrar pop-up apenas quando o wrapper tiver vf-show */ .varify-exitIntent-wrapper.vf-show .varify-exitIntent-backdrop { display: flex !important; }
/* Impedir rolagem quando o pop-up estiver aberto */ .vf-no-scroll { overflow: hidden !important; } /* O conteúdo é apenas a imagem, portanto, remova o preenchimento */ .varify-exitIntent-content { padding: 0 !important; } /* Fundo modal preto */
.varify-exitIntent { fundo: #000 !important; raio da borda: 8px !important; sombra da caixa: 0 0 8px rgba(0, 0, 0, 0.4); largura: 540px; largura máxima: 90%;
altura máxima: 90%; overflow: oculto; /* importante para que a imagem nunca transborde */ posição: relativa; } /* Botão Fechar sempre visível acima da imagem */ .varify-exitIntent-close { posição: absoluta; direita: 8px; topo: 8px; largura: 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 { largura: 14px; altura: 14px; cor: #000 !importante; } .varify-exitIntent-header { exibição: nenhuma !importante; }
/* Wrapper com seu plano de fundo */
.varify-code-block {
fundo: #f5f2f0;
Raio da borda: 8px;
borda: 1px sólido #e0ddd9;
preenchimento: 0;
posição: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
Margem inferior: 24px;
}
/* Área de código */
.varify-code-block pre {
margem: 0;
preenchimento: 16px 18px;
transbordamento: automático;
white-space: pre;
}
.varify-code-block code {
Cor: #333;
tamanho da fonte: 13px;
Altura da linha: 1,55;
exibição: bloco;
}
/* Botão Copiar - totalmente neutralizado, não mais azul */
.varify-copy-btn {
all: unset !important; /* remove TODOS os estilos padrão/tema/elementor */
display: inline-block !important;
position: absolute !important;
top: 10px !important;
direita: 10px !important;
padding: 6px 10px !important;
Raio da borda: 6px !important;
Fundo: rgba(255,255,255,0.4) !important;
filtro de plano de fundo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;
borda: 1px solid rgba(255,255,255,0.35) !important;
cor: #333 !important;
Tamanho da fonte: 11px !important;
font-weight: 600 !important;
Decoração de texto: nenhum !importante;
cursor: ponteiro !important;
box-shadow: 0 4px 12px rgba(0,0,0,0,0.08) !important;
}
/* Feedback opcional após a cópia */
.varify-copy-btn.copied {
Fundo: rgba(80, 200, 120, 0,55) !important;
cor: #fff !important;
}
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 = „Copiado!“; setTimeout(() => { btn.classList.remove(„copied“); btn.textContent = „Copiar“; }, 1400); });
Black Friday Exit Intent - Conteúdo
Intenção de saída (desktop)
Este pop-up aparece quando o usuário deseja sair da página e contém texto, marcadores e um botão. Você pode personalizar o conteúdo de acordo com suas preferências para trazer o usuário de volta.
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 {
fundo: #f5f2f0;
Raio da borda: 8px;
borda: 1px sólido #e0ddd9;
preenchimento: 0;
posição: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
Margem inferior: 24px;
}
/* Área de código */
.varify-code-block pre {
margem: 0;
preenchimento: 16px 18px;
transbordamento: automático;
white-space: pre;
}
.varify-code-block code {
Cor: #333;
tamanho da fonte: 13px;
Altura da linha: 1,55;
exibição: bloco;
}
/* Botão Copiar - totalmente neutralizado, não mais azul */
.varify-copy-btn {
all: unset !important; /* remove TODOS os estilos padrão/tema/elementor */
display: inline-block !important;
position: absolute !important;
top: 10px !important;
direita: 10px !important;
padding: 6px 10px !important;
Raio da borda: 6px !important;
Fundo: rgba(255,255,255,0.4) !important;
filtro de plano de fundo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;
borda: 1px solid rgba(255,255,255,0.35) !important;
cor: #333 !important;
Tamanho da fonte: 11px !important;
font-weight: 600 !important;
Decoração de texto: nenhum !importante;
cursor: ponteiro !important;
box-shadow: 0 4px 12px rgba(0,0,0,0,0.08) !important;
}
/* Feedback opcional após a cópia */
.varify-copy-btn.copied {
Fundo: rgba(80, 200, 120, 0,55) !important;
cor: #fff !important;
}
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 = „Copiado!“;
setTimeout(() => {
btn.classList.remove(„copied“);
btn.textContent = „Copiar“;
}, 1400);
});
/* --------------------------------------------- Fundo oculto por padrão --------------------------------------------- */
.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; } /* --------------------------------------------- Mostrar pop-up quando o wrapper tiver .vf-show --------------------------------------------- */ .varify-exitIntent-wrapper.vf-show .varify-exitIntent-backdrop { display: flex !important; } /* --------------------------------------------- Impedir que a página role enquanto o pop-up estiver aberto --------------------------------------------- */ .vf-no-scroll { overflow: hidden !important; } /* --------------------------------------------- Estilo modal (para pop-up com conteúdo) --------------------------------------------- */ .varify-exitIntent { cor de fundo: #000 !importante; cor: #fff !importante; raio da borda: 10px !importante; sombra da caixa: 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; }
/* --------------------------------------------- Área de conteúdo --------------------------------------------- */ .varify-exitIntent-content { padding: 30px !important; text-align: left !important; }
/* --------------------------------------------- Ocultar bloco de cabeçalho padrão não utilizado --------------------------------------------- */ .varify-exitIntent-header { display: none !important; }
/* --------------------------------------------- Botão Fechar (sempre visível acima do conteúdo) --------------------------------------------- */ .varify-exitIntent-close { posição: absoluta !importante;
top: 12px !important; 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 { largura: 14px !important; altura: 14px !important; cor: #000 !important; } /* --------------------------------------------- Tipografia para pop-up de conteúdo --------------------------------------------- */ .bf-exit-intent-headline { tamanho da fonte: 22px !important; peso da fonte: 800 !important; margem: 0 0 10px !important; cor: #fff !important; }
.bf-exit-intent-subheadline { tamanho da fonte: 18px !important; margem: 0 0 15px !important; cor: #fff !important; } /* ---------------------------------------------
Lista com marcadores --------------------------------------------- */ .bf-exit-intent-bullets { list-style: none !important; padding: 0 !important; margin: 0 0 20px !important; }
.bf-exit-intent-bullets li { margem inferior: 6px !important; preenchimento esquerdo: 20px !important; posição: relativa !important; cor: #fff !important; } .bf-exit-intent-bullets li::before { conteúdo: "•" !important;
color: #d32c2c !important; position: absolute !important; left: 0 !important; top: 0 !important; } /* --------------------------------------------- Botão CTA --------------------------------------------- */ .bf-exit-intent-cta { exibição: inline-block !important; cor de fundo: #d32c2c !important; cor: #fff !important; preenchimento: 10px 20px !important;
border-radius: 4px !important; tamanho da fonte: 16px !important; espessura da fonte: 600 !important; decoração do texto: nenhuma !important; } .bf-exit-intent-cta:hover { cor de fundo: #b71c1c !important; }
/* --------------------------------------------- Ajustes responsivos para janelas de visualização muito pequenas --------------------------------------------- */
@media only screen and (altura máxima: 700px) { .varify-exitIntent { altura máxima: 75% !important; } } @media only screen and (largura máxima: 380px) { .varify-exitIntent-content { preenchimento: 20px !important; }
.bf-exit-intent-headline { tamanho da fonte: 19px !important; } .bf-exit-intent-subheadline { tamanho da fonte: 16px !important; } }
/* Wrapper com seu plano de fundo */
.varify-code-block {
fundo: #f5f2f0;
Raio da borda: 8px;
borda: 1px sólido #e0ddd9;
preenchimento: 0;
posição: relativa;
font-family: Consolas, Menlo, Monaco, „Fira Code“, monospace;
Margem inferior: 24px;
}
/* Área de código */
.varify-code-block pre {
margem: 0;
preenchimento: 16px 18px;
transbordamento: automático;
white-space: pre;
}
.varify-code-block code {
Cor: #333;
tamanho da fonte: 13px;
Altura da linha: 1,55;
exibição: bloco;
}
/* Botão Copiar - totalmente neutralizado, não mais azul */
.varify-copy-btn {
all: unset !important; /* elimina TODOS os estilos padrão/tema/Elementor */
display: inline-block !important;
position: absolute !important;
top: 10px !important;
direita: 10px !important;
padding: 6px 10px !important;
Raio da borda: 6px !important;
Fundo: rgba(255,255,255,0.4) !important;
filtro de plano de fundo: blur(12px) !important;
-webkit-backdrop-filter: blur(12px) !important;
borda: 1px solid rgba(255,255,255,0.35) !important;
cor: #333 !important;
Tamanho da fonte: 11px !important;
font-weight: 600 !important;
Decoração de texto: nenhum !importante;
cursor: ponteiro !important;
box-shadow: 0 4px 12px rgba(0,0,0,0,0.08) !important;
}
/* Feedback opcional após a cópia */
.varify-copy-btn.copied {
Fundo: rgba(80, 200, 120, 0,55) !important;
cor: #fff !important;
}
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 = „Copiado!“; setTimeout(() => { btn.classList.remove(„copied“); btn.textContent = „Copiar“; }, 1400); });
O que dizem nossos usuários PRO
Recurso do Varify Pro
Atualize agora para PRO e economize como cliente existente
Basta um clique para iniciar sua atualização e usar todos os recursos avançados do Varify.io.