Passa al contenuto principale

Eventi JavaScript


In questa sezione verrà mostrato come monitorare e gestire gli eventi all'interno su Avacy. Gli eventi sono azioni o interazioni effettuate dall'utente, come la visualizzazione del banner di consenso o la selezione delle preferenze sulla privacy. La piattaforma offre strumenti per raccogliere e monitorare questi eventi, permettendo agli sviluppatori di reagire dinamicamente in base alle azioni dell'utente. Utilizzando la proprietà eventCollection e il metodo isInCollection(), è possibile verificare la registrazione degli eventi e gestire il flusso delle interazioni in modo flessibile.

Elenco Eventi Avacy

Eventi

EventoDescrizione
avacy_consentEvento emesso quando le preferenze cookie dell'utente vengono modificate

Ogni volta che Avacy lancia un evento avacy_consent, viene creato un dato strutturato con le seguenti proprietà.

ProprietàDescrizioneEsempio
triggerIndica il tipo di evento. In questo caso è un aggiornamento del consenso.string
optinValore booleano che indica se l'utente ha effettuato l'opt-in al consenso.bool
purposesElenco degli identificativi delle finalità per cui l'utente ha fornito il consenso. Vuoto se nessuno scopo è stato selezionato.[int]
legitimateInterestsElenco degli identificativi delle finalità per cui si applica un interesse legittimo senza consenso esplicito. Vuoto se non applicabile.[int]
specialFeaturesElenco degli identificativi delle funzionalità speciali che richiedono consenso. Vuoto se non ci sono funzionalità speciali.[int]
customVendorsElenco di fornitori con stato di consenso. Ogni elemento include l'id del fornitore e un flag consent che indica se quel fornitore ha il consenso dell'utente o no.[object]
iabVendorsElenco di identificativi dei fornitori che seguono lo standard IAB TCF. Vuoto se non ci sono vendor IAB.[int]
iabVendorsWithConsentElenco di fornitori IAB per cui è stato fornito il consenso. Vuoto se nessun consenso è stato accordato. Ogni oggetto ha il proprio id e il name.[object]
customVendorsWithConsentElenco di vendor personalizzati per cui è stato fornito il consenso. Vuoto se nessun consenso è stato accordato.[object]
gcmContiene gli identificatori di consenso delle Google Consent Mode per cui l'utente ha prestato il consenso. Vuoto se non configurato.[string]

EventoDescrizione
avacy_interactionEvento emesso a ogni interazione dell'utente con il cookie banner
Proprieta dell'evento avacy_interaction

L'evento avacy_interaction ha una proprietà detail con al suo interno una proprietà optin; il valore di optin cambia in base al tipo di interazione. La seguente tabella mostra i possibili valori di event.detail.optin

ProprietàDescrizioneEsempio
consent-allQuando l'utente clicca sul pulsante di accettazione di tutti i cookie.string
reject-allQuando l'utente clicca sul pulsante di rifiuto di tutti cookie (o accettazione dei soli cookie strettamente necessari).bool
save-preferencesQuando l'utente imposta le preferenze di consenso dal relativo pannello di gestione[int]
close-bannerQuando l'utente clicca sulla 'X' per chiudere il banner[int]
Ascoltare un evento

Aggiungendo un listener all'evento, è possibile accedere alle proprietà descritte nella tabella precedente e definire il comportamento del sito in maniera programmatica. Nel seguente esempio, facciamo un semplice console.log di una stringa in base al fatto che l'utente abbia prestato il consenso oppure no.

<script>
    window.addEventListener('avacy_consent', function(event) {  
        const data = event.detail;
        if (data.optin) {
            console.log("L'utente ha effettuato l'opt-in.");
        } else {
            console.log("L'utente ha effettuato l'opt-out.");
        }
    })
</script>

In quest'altro esempio, possiamo ascoltare avacy_interaction per determinare delle azioni da compiere in base al fatto che l'utente abbia accettato i cookie dal pulsante oppure dalle preferenze:

<script>
    window.addEventListener('avacy_interaction', function(event) {  
        const data = event.detail;
        if (data.optin === 'consent-all') {
            console.log("L'utente ha cliccato sul pulsante di accettazione.");
        } else if (data.optin === 'save-preferences') {
            console.log("L'utente ha impostato le preferenze di consenso.");
        }
    })
</script>

In quest'altro esempio, invece, possiamo scorrere la lista dei fornitori e verificare se l'utente ha prestato il consenso a quel fornitore oppure no. Questo può essere molto utile per implementare logiche personalizzate di blocco preventivo.

<script>
    window.addEventListener('avacy_consent', function(event) {  
        const data = event.detail;
        if (data.customVendors && data.customVendors.length > 0) {
            data.customVendors.forEach(vendor => {
                console.log(`id: ${vendor.id} - consent: ${vendor.consent}`);
            });
        }
    })
</script>

Eventi post-message

Di seguito vi è una tabella con l'elenco completo degli eventi che Avacy invia ad ogni interazione dell'utente con il cookie banner:

EventoDescrizione
oil-checked-optinEvento emesso quando viene verificato lo stato dell'opt-in dell'utente.
oil_shownEvento emesso quando il banner della CMP viene mostrato all'utente.
oil_optin_done_button_clickedEvento emesso quando l'utente clicca sul pulsante per confermare l'opt-in.
oil_optin_doneEvento emesso quando il processo di opt-in viene completato con successo.
oil_soi_optin_doneEvento emesso al completamento dell'opt-in per il consenso secondario (second layer).
oil_optout_doneEvento emesso quando il processo di opt-out viene completato con successo.
oil_close_banner_button_clickedEvento emesso quando l'utente clicca sul pulsante per chiudere il banner della CMP.
oil_as_cpc_privacy_selectedEvento emesso quando l'utente seleziona l'opzione di configurazione avanzata per la privacy.
oil_click_advanced_settingsEvento emesso quando l'utente accede alle impostazioni avanzate della CMP.
Ascoltare un evento post message

Di seguito è mostrato un esempio di come ascoltare un evento message e scrivere delle logiche in base al tipo di interazione con il banner. Nel caso specifico, viene effettuato un semplice console.log con i dettagli dell'evento se, dopo il message, l'evento è di tipo oil_shown.

<script>
window.addEventListener('message', function(event) {  
    if(event.data === 'oil_shown'){
        console.log(event);
    }
})
</script>
Verifica degli eventi inviati

Per ottenere una lista di tutti gli eventi registrati fino a quel momento. Attraverso la proprietà eventCollection è possibile verificare tutti gli eventi che sono stati inviati fino a quel momento.

console.log(eventCollection);
/* Output: [
    {
        "name": "oil-checked-optin",
        "timestamp": 1735816751078
    },
    {
        "name": "oil_shown",
        "timestamp": 1735816751158
    },
    {
        "name": "oil_optin_done_button_clicked",
        "timestamp": 1735817532126
    }
    // ...
]
*/
Controllo della presenza di un evento

Il metodo isInCollection(eventName) consente di verificare se uno specifico evento è stato aggiunto a eventCollection. Se l'evento non è presente, il metodo restituirà 0.

if (isInCollection("oil_optin_done")) {
    console.log("L'evento 'oil_optin_done' è stato registrato.");
} else {
    console.log("L'evento 'oil_optin_done' non è stato registrato.");
}
Esempio con un evento inesistente o non ancora registrato
const result = isInCollection("oil_nonexistent_event");
console.log(result); // Output: 0