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