Passa al contenuto principale

Debug

Metodi e proprietà per debugging e telemetria.

Method / PropertyTierSince
setDebug(enabled)13.0
debugModeOn() / debugModeOff()13.0
version (property)13.0

💡 Per logging strutturato e persistente come scelta architetturale, usa il config field loggers: 'console' scrive in DevTools, 'event' emette ogni riga come evento DOM avacy:log ({ level, message, topic }), [] (default) è silenzioso. Si possono combinare: loggers: ['console', 'event'].


setDebug​

Attiva o disattiva il console-logger del core. Il flag è persistito in localStorage (chiave avacy:debug) così sopravvive ai reload di pagina — utile per QA su un sito live senza modificare la config inline.

window.Avacy.setDebug(enabled: boolean): void

Parameters​

NameTypeDescription
enabledbooleantrue forza loggers: ['console'] al prossimo boot. false rimuove l'override (non forza loggers: []): al prossimo boot vince di nuovo qualunque loggers sia impostato nella config del cliente — se quella config ha già loggers: ['console'] esplicito, resta attivo. Idempotente.

⚠️ L'override sostituisce l'array loggers, non ci aggiunge 'console': con setDebug(true) attivo, una config con loggers: ['event'] perde il logger event (e quindi gli eventi avacy:log) finché non chiami setDebug(false).

Example​

// in console del browser, durante un'investigazione bug:
window.Avacy.setDebug(true);
// → ricarica la pagina (o chiama Avacy.reload()):
location.reload();
// ora vedi log strutturati di TCF, framework init, store read/write, etc.

// quando hai finito:
window.Avacy.setDebug(false);
location.reload();

When to use it​

  • Riproduzione bug client in produzione, su un browser specifico, senza deploy
  • Investigazione integrator-side senza modificare la config inline
  • Smoke test E2E con log verbose temporaneo

Timing​

Il flag prende effetto al prossimo boot (caricamento di pagina o reload()), non a runtime. MainLoggerProvider viene istanziato durante Core.init e i subloggers attivi sono fissi nel ciclo di vita di quel context. Per applicare immediatamente:

window.Avacy.setDebug(true);
await window.Avacy.reload(); // re-bootstrap con loggers aggiornati

Storage​

setDebug(true) scrive window.localStorage.setItem('avacy:debug', 'true'). setDebug(false) rimuove la chiave (removeItem), non la imposta a 'false' — la lettura al boot distingue "chiave assente" (nessun override) da "chiave presente ma non 'true'" (override esplicito a silenzioso). Se localStorage non è disponibile (modalità privata, WebView restrittive) la chiamata è silenziosa: il fallback è passare loggers: ['console'] esplicitamente nel config inline.

See also​

  • Config field loggers: LoggerType[] in UserConfigType — controllo dichiarativo permanente
  • reload() — per applicare il flag immediatamente

debugModeOn / debugModeOff​

Scorciatoia rispetto a setDebug + reload(): persiste il flag avacy:debug e applica un reload completo della pagina (window.location.reload()), non il soft-reload di window.Avacy.reload().

window.Avacy.debugModeOn(): void
window.Avacy.debugModeOff(): void

Perché un reload di pagina intero, non il soft reload()​

Il soft reload() rilegge il flag di debug, quindi per il logger basterebbe. Il limite è un altro: reload() non riapplica l'argomento passato a init(config), e le build custom (es. RAI) passano proprio lì la loro config. Dopo un soft reload() ripartirebbero senza. Un reload di pagina intero rifà il boot completo, con la config che la build passa a init() e il flag persistito in localStorage.

Example​

// in console del browser: attiva debug + reload immediato, un'unica chiamata
window.Avacy.debugModeOn();

// quando hai finito:
window.Avacy.debugModeOff();

Quando usare questi invece di setDebug​

  • Build custom che passano la config come argomento di init() (RAI e simili) — setDebug + soft reload() le farebbe ripartire senza quella config
  • Vuoi un'unica chiamata invece di setDebug(true) + reload() separati

Ordine dei tag Google​

Il controllo sull'ordine dei tag Google (avviso in console, esito PASS/LATE con il debug acceso, cosa fare se un tag è in ritardo) è documentato nella pagina pubblica Debug mode e ordine dei tag Google: è lì che rimandano i messaggi del banner. Questa sezione resta per i link dei banner pubblicati prima del cambio (fino alla 3.2.0 compresa).

GTM e TCF: lo stub va prima di GTM​

Vedi GTM e TCF nella pagina pubblica.