Ciao e benvenuti in questo approfondimento sulle conversioni avanzate per Google ADS. Questo lo script di cui parlo all’interno della lezione.
<script>
// Seleziona tutti i form presenti nella pagina
var forms = document.querySelectorAll('form');
// Itera su ogni form
Array.prototype.forEach.call(forms, function(form) {
// Aggiungi un event listener per il submit di ciascun form
form.addEventListener('submit', function(event) {
// Prevenire il comportamento predefinito del form
//event.preventDefault();
console.log('Aggiunto Listener al FORM');
console.log(form);
// Funzione per recuperare tutti i valori dei campi del form
function getAllFieldValues() {
var values = {};
var inputs = form.querySelectorAll('input, textarea, select');
Array.prototype.forEach.call(inputs, function(input) {
// Usa l'attributo name, o se non presente, l'attributo id
var key = input.name || input.id;
if (key && input.type !== 'submit' && input.type !== 'button') {
values[key] = input.value;
}
});
return values;
}
// Recupera tutti i valori dei campi
var fieldValues = getAllFieldValues();
// Visualizza i valori raccolti nella console per il debug
console.log('Valori dei campi raccolti:', fieldValues);
// Verifica che il dataLayer esista
if (window.dataLayer) {
// Aggiungi un evento al dataLayer includendo tutti i valori dei campi
dataLayer.push({
event: 'form_submitted_custom',
fakeid: 'home_{{Random Number}}',
formId: form.id || form.name || 'unknown', // Usa l'ID del form, altrimenti il nome, altrimenti 'unknown'
fieldValues: fieldValues, // Includi tutti i valori dei campi
'gtm.uniqueEventId': new Date().getTime() // Usa un timestamp come uniqueEventId
});
// Visualizza il dataLayer per il debug
console.log('Push al dataLayer:', dataLayer);
} else {
console.warn('dataLayer non è definito');
}
// Rimuovere il commento qui sotto per permettere l'invio del form dopo il debug
// form.submit();
});
});
</script>
Queste le pagine della documentazione menzionate:
Informazioni sulle conversioni avanzate - Guida di Google Ads