Pular para o conteúdo principal

Modo Debug

O modo debug é o ferramental de teste da integração: um painel inspetor visual + logs de console + comandos. Ele mostra qual pessoa está logada, quais disparos e widgets vieram da plataforma e se cada um apareceria na tela atual — e por quê.

Só exibe, não configura

O modo debug não configura nada na sua aplicação nem na plataforma. Widgets e disparos são configurados dentro da PliQ; o painel apenas mostra o que o plugin está fazendo.

log × debug — não confunda​

PropO que ligaOnde aparecePode ficar em produção?
logMensagens de acompanhamentoConsole do navegadorSim
debugPainel inspetor + ícone flutuanteNa telaNão recomendado

São independentes: ligar um não liga o outro.

p._pliqStt = {
token: 'SEU_TOKEN',
log: true, // console
debug: true, // painel visual
// ...
};

Ou em runtime, pelo console:

window.PliQ.enableDebug();  window.PliQ.disableDebug();
window.PliQ.enableLogs(); window.PliQ.disableLogs();

O ícone flutuante​

Com debug: true, aparece um ícone laranja com o logo da PliQ. Clique para abrir o painel — ele é arrastável pelo cabeçalho, tem tema claro/escuro (botão ☾/☀) e lembra a posição e o tema entre recarregamentos.

Ícone de debug flutuante na página

O painel​

Antes do login, o painel mostra as ações disponíveis e aguarda uma sessão:

Painel de debug sem sessão ativa

Aba Dados​

Com uma sessão ativa, a aba Dados mostra tudo o que o plugin sabe:

Painel de debug com sessão ativa, pessoa e widgets

  • Ações — Login, Logout, Limpar cache, Ignorar cache (este último fica desabilitado enquanto há sessão — faça logout para alterar)
  • Sessão — estado (ativa/expirada) com contagem regressiva ao vivo, id da pessoa, device detectado e URL atual
  • Pessoa — os dados enviados no login
  • Comunicação | Disparos — tabela das pesquisas direcionadas: URL, ativa?, exibições/limite, agendamento, delay e a coluna exibe?
  • Widgets — tabela dos botões flutuantes: tipo, posição, devices, ativo e a coluna exibe?

A coluna "exibe?"​

É a dica de ouro do painel: diz se aquele disparo/widget apareceria na tela atual, ou o motivo de não aparecer (URL / limite / agendado nos disparos; device / URL / inativo nos widgets).

Clique no valor (ⓘ) para abrir o detalhe — cada regra de URL avaliada uma a uma (✓/✗), exibições usadas/restantes, status do agendamento e, nos widgets, as properties e tags configuradas que vão na resposta:

Detalhe do widget mostrando regras avaliadas

nota

O servidor ainda confirma limite/quarentena na hora de abrir a pesquisa — ele tem a palavra final.

Login pelo painel​

A ação Login abre um formulário com os campos aceitos e um preview ao vivo do script exato — pronto para copiar para o seu app:

Formulário de login com preview do script

  • Obrigatório: name + um identificador (email, phone ou code_contact_client)

A ação Logout mostra o window.PliQ.closeSession(); e o JSON da pessoa que será encerrada.

Aba Globais​

A aba Globais é um inspetor de placeholders: mostra no que cada {…} de uma property/tag de widget viraria agora, resolvido na ordem built-in → variável global → campo do contato (ver Widgets de ação → placeholders).

Aba Globais do painel: variáveis globais, built-ins resolvidos e campos do contato

  • Variáveis globais — as que você registrou (via PliQ.setGlobals(...) ou _pliqStt.globals), com contador. Registrar uma chave que já existe substitui o valor.
  • Tags globais — as registradas via PliQ.setTags(...) ou _pliqStt.tags, somadas à resposta de todos os widgets.
  • Built-ins · resolvem agora — {current_url}, {current_path}, {referrer}, {title} já resolvidos na tela atual.
  • Campos do contato — {name}, {email}, {phone}… lidos da sessão logada.

Atalhos: PliQ.setGlobals({ plano: 'premium' }) · PliQ.getGlobals() · PliQ.clearGlobals() — ver Métodos → setGlobals.

Atualização automática​

Com o painel aberto, ele percebe a mudança de tela sozinho e re-verifica a coluna exibe?. A contagem de expiração, o número de exibições e as variáveis globais (aba Globais) atualizam ao vivo.

Comandos (console)​

// Painel
window.PliQ.enableDebug(); window.PliQ.disableDebug(); window.PliQ.setDebug(true);

// Logs
window.PliQ.enableLogs(); window.PliQ.disableLogs(); window.PliQ.setLogs(true);

// Sessão
window.PliQ.login({ name: 'Fulano', email: 'fulano@exemplo.com' });
window.PliQ.relogin(); // re-login com o último contato usado
window.PliQ.closeSession(); // logout

// Variáveis globais (placeholders {chave} nos widgets)
window.PliQ.setGlobals({ plano: 'premium' });
window.PliQ.getGlobals(); // lista as registradas
window.PliQ.clearGlobals(); // remove todas

// Tags globais (somadas a todos os widgets)
window.PliQ.setTags(['campanha-verao']);
window.PliQ.getTags(); // lista as registradas
window.PliQ.clearTags(); // remove todas

// Cache (teste)
window.PliQ.clearCache(); // encerra a sessão (se houver) e limpa o localStorage
window.PliQ.setIgnoreCache(true); // arma o bypass do próximo login

Bypass de cache​

Durante testes é comum precisar ver mudanças na hora, sem esperar os 20 minutos de cache. Há três camadas em jogo:

CamadaOndeO que faz
Sessão localplugin (localStorage)Guarda disparos/widgets por 20 min; o initialize nem chama a API enquanto existir
Cache do servidorAPI PliQGuarda o resultado por 20 min por empresa + contato
Limite de exibiçãoservidorPara de exibir após N vezes (não é cache)

Como ligar​

O bypass não é configurável via _pliqStt nem por URL (de propósito, para não pesar o backend em produção). Só de dois jeitos:

// 1) Console do navegador
window.PliQ.setIgnoreCache(true); // liga o bypass
window.PliQ.relogin(); // limpa a sessão local + refaz o initialize
window.PliQ.setIgnoreCache(false); // desliga

Ou 2) pelo botão Ignorar cache do painel (antes do login).

Com o bypass ligado, cada initialize limpa a sessão local e chama a API com ?ignoreCache=true — o servidor pula o cache de 20 min.

Trava de segurança (servidor)​

Para proteger o backend caso a flag fique ligada por engano, o servidor honra o bypass no máximo 10 vezes por empresa dentro de uma janela de 10 minutos. Ao estourar, ele passa a ignorar a flag e volta a servir do cache — a contagem expira sozinha após a janela e o bypass volta a valer.

Em produção

Deixe debug desligado e o bypass desarmado. log: true pode ficar, se quiser acompanhar pelo console.