No hoax.tech, diversos tipos de ação da Black Page são implementados.
O tipo de ação Set Cookie não é destinado ao redirecionamento automático para a Black Page; ele é usado para definir um cookie contendo o hash do Flow para visitantes qualificados (não-bots) e acionar ações posteriores configuradas.
Exemplos de eventos:
Bots e moderadores que não possuem o cookie ao executar a mesma ação:
Vamos analisar um exemplo usando o tipo de ação Set Cookie para redirecionar visitantes qualificados após clicarem em um botão.
Nesse caso:
Etapa 1. Criar e configurar um Flow
Você pode inserir qualquer URL como Black Page, pois com o tipo Set Cookie não ocorre redirecionamento automático.
Etapa 2. Definir o tipo de ação Set Cookie
Nas configurações de integração, selecione o tipo de ação Set Cookie.

Etapa 3. Integrar o script de cloaking na White Page
(exemplo: https://setcookie.hoax.tech)
Use a Integração PHP padrão:
index.phpindex.php para index2.php.html, renomeie para index2.php, alterando a extensão para .php)index.php baixado do Flow para o diretório raiz do siteApós o início do tráfego, tanto bots quanto visitantes reais permanecerão na White Page —
mas somente visitantes reais receberão o cookie com o hash do Flow.
Etapa 4. Inserir o script no botão "To Rent" da White Page
Este script será integrado ao botão da White Page:

Ele verifica se o cookie está presente quando o usuário clica no botão:
document.querySelector("#BUTTON").addEventListener("click", function() {
function getCookie(name) {
const matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([.$?*|{}()[]\/+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : null;
}
if (getCookie("FLOW_HASH")) {
window.location.href = atob("BASE64_BLACK_PAGE");
} else {
window.location.href = atob("BASE64_WHITE_PAGE");
}
});
Variáveis:
BUTTON — ID do botão que acionará o eventoFLOW_HASH — hash do Flow integrado na White Page (copiado da área Flows ou da URL do Flow)BASE64_BLACK_PAGE — URL da Black Page codificada em Base64BASE64_WHITE_PAGE — URL da segunda White Page codificada em Base64Etapa 5. Encontrar o ID do botão
Se o botão não tiver ID, você pode atribuir um — por exemplo, goldbutton.

Etapa 6. Codificar URLs em Base64
Para maior segurança, codifique as URLs em Base64, usando serviços como base64decode.org.

Etapa 7. Inserir todas as variáveis no código
O script final ficará assim:
document.querySelector("#goldbutton").addEventListener("click", function() {
function getCookie(name) {
const matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([.$?*|{}()[]\/+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : null;
}
if (getCookie("4126123ffb74b745e81c70f3bfb686df")) {
window.location.href = atob("aHR0cHM6Ly9ibGFjay5ob2F4LnRlY2g=");
} else {
window.location.href = atob("aHR0cHM6Ly9zZXRjb29raWUuaG9heC50ZWNoL2NvbnRhY3QtdXM=");
}
});
Etapa 8. Inserir o script no final do arquivo index2.php
Coloque-o entre as tags <script> e </script>:

Etapa 9. Salvar o arquivo
Você também pode ofuscar o código para dificultar a detecção por crawlers das redes de anúncios, usando serviços como:
https://obfuscator.io/
Resultado:
function _0x44c4(){const _0xe4c0fc=['403347WWuKVP','8fEDpfp','27072aUCRWv','aHR0cHM6Ly9ibGFjay5ob2F4LnRlY2g=','addEventListener','9391824hodZYU','3726506YANKlF','4126123ffb74b745e81c70f3bfb686df','aHR0cHM6Ly9zZXRjb29raWUuaG9heC50ZWNoL2NvbnRhY3QtdXM=','768945BCWBCp','#goldbutton','1460530wQGfLy','8pIPjbO','href','click','(?:^|;\x20)','3695868Lymavf','location','replace','querySelector'];_0x44c4=function(){return _0xe4c0fc;};return _0x44c4();}function _0x21a8(_0x3ae868,_0x451a7c){const _0x44c499=_0x44c4();return _0x21a8=function(_0x21a859,_0xadcba8){_0x21a859=_0x21a859-0x18e;let _0x236e1f=_0x44c499[_0x21a859];return _0x236e1f;},_0x21a8(_0x3ae868,_0x451a7c);}const _0xed30a5=_0x21a8;(function(_0x37da8d,_0x52157d){const _0x4c2e78=_0x21a8,_0x43e449=_0x37da8d();while(!![]){try{const _0xda49f9=-parseInt(_0x4c2e78(0x19b))/0x1+parseInt(_0x4c2e78(0x19d))/0x2+parseInt(_0x4c2e78(0x190))/0x3*(parseInt(_0x4c2e78(0x193))/0x4)+parseInt(_0x4c2e78(0x192))/0x5+-parseInt(_0x4c2e78(0x197))/0x6+parseInt(_0x4c2e78(0x1a1))/0x7*(-parseInt(_0x4c2e78(0x19c))/0x8)+parseInt(_0x4c2e78(0x1a0))/0x9;if(_0xda49f9===_0x52157d)break;else _0x43e449['push'](_0x43e449['shift']());}catch(_0x107c00){_0x43e449['push'](_0x43e449['shift']());}}}(_0x44c4,0x4bb6d),document[_0xed30a5(0x19a)](_0xed30a5(0x191))[_0xed30a5(0x19f)](_0xed30a5(0x195),function(){const _0x8a7688=_0xed30a5;function _0x4d91d4(_0x1cc909){const _0x113a72=_0x21a8,_0x31c119=document['cookie']['match'](new RegExp(_0x113a72(0x196)+_0x1cc909[_0x113a72(0x199)](/([.$?*|{}()[]\/+^])/g,'\x5c$1')+'=([^;]*)'));return _0x31c119?decodeURIComponent(_0x31c119[0x1]):null;}_0x4d91d4(_0x8a7688(0x18e))?window[_0x8a7688(0x198)][_0x8a7688(0x194)]=atob(_0x8a7688(0x19e)):window[_0x8a7688(0x198)][_0x8a7688(0x194)]=atob(_0x8a7688(0x18f));}));
Configuração concluída.
Aqui está um exemplo de script em que visitantes qualificados serão redirecionados para a Black Page, enquanto bots e moderadores simplesmente não acionarão o botão.
Nesse caso, não é necessário usar uma segunda White Page.
document.querySelector("#BUTTON").addEventListener("click", function() {
function getCookie(name) {
const matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([.$?*|{}()[]\/+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : null;
}
if (getCookie("FLOW_HASH")) {
window.location.href = atob("BASE64_BLACK_PAGE");
}
});
Abaixo está uma solução pronta — um Cookie Consent popup, uma das formas mais comuns de interação dos usuários com um site.
Após clicar em qualquer um dos botões, o público-alvo será redirecionado para a black page:

Para bots ou moderadores, o popup simplesmente será fechado:


Integre o cloaking utilizando a Integração PHP clássica: baixe o arquivo de integração index.php do Flow, renomeie o arquivo index principal da white page para index2.php e faça upload do index.php baixado para o diretório da sua white page.
Baixe o template do popup e adicione-o à white page.
Baixar template do Cookie Consent popup
Adicione o seguinte código de integração do popup na white page imediatamente após a tag <body>:
<div id="cookieConsentBackdrop" class="cookieConsentBackdrop" aria-hidden="true" style="display: none;"></div>
<div id="cookieConsentPopup" class="cookieConsentPopup" data-hash="FLOW_HASH" data-key="BLACK_PAGE_BASE64_URL" role="dialog" aria-labelledby="cookieConsentHeading" aria-describedby="cookieConsentDescription" style="display: none;">
<p id="cookieConsentHeading" class="sr-only">Cookie Consent Popup</p>
<div id="cookieConsentDescription">
<p>
We value your privacy.
</p>
<p>
We use cookies to enhance your browsing experience and analyze our traffic. By clicking "Accept All", you consent to our use of cookies.
</p>
</div>
<div class="cookieConsentPopup-actions">
<button id="rejectBtn" class="cookieConsentPopup-btn cookieConsentPopup-btn--reject">Reject</button>
<button id="acceptBtn" class="cookieConsentPopup-btn cookieConsentPopup-btn--accept">Accept</button>
</div>
</div>
<script src="/script.js"></script>
Os seguintes parâmetros devem ser especificados no código:
FLOW_HASH - o hash do Flow integrado na white page, que pode ser copiado na seção Flows (https://hoax.tech/flows) ou na barra de endereço ao editar o Flow.
BLACK_PAGE_BASE64_URL - o link da black page em formato Base64.
Para codificar o link da black page em Base64, você pode usar o serviço base64decode.org.

Especifique o caminho correto para o template do popup script.js. Se você o colocou na raiz do site, não é necessário alterar o caminho.
Se necessário, você pode alterar os textos do popup e dos botões.
Após adicionar o código na white page, verifique a configuração usando métodos padrão.
Com este tipo de ação, a proteção contra bots é maior e pode haver maiores perdas de tráfego. No entanto, o público que não clicar em nenhum dos botões será o menos interessado no seu produto ou serviço.