Guida Avanzata

Guida Avanzata: Tracciare l’Invio Contact Form 7 con Google Tag Manager

Anche tu vorresti tracciare quando un utente compila una richiesta attraverso Contact Form 7 di WordPress? Magari senza installare plugin come spiegato nella mia guida di come tracciare Contact Form 7 con il plugin Duracell Tomi.

In questa guida non solo ti spiegherò come tracciare chi compila il form dei contatti, ma anche come catturare i valori dei campi form! Ovviamente solo se hai Contact Form 7 😉

Sei pronto? Iniziamo!

STEP 1 – CREA TAG HTML PERSONALIZZATO

Per riuscire a tracciare l’invio del form da parte dell’utente, la prima cosa che devi fare è inviare un pezzo di codice che rimanga in attesa della compilazione del form, e che in seguito inserisca nel Data Layer i dati giusti.

La logica è questa. Contact Form 7 ha una serie di eventi che invia direttamente al tuo browser (qui la lista ufficiale). Basta quindi catturare uno di questi eventi, ovvero la email inviata con successo.

Ecco i passaggi:

  • Entra nel contenitore > Sezione Tag > Nuovo.
  • Tipo di Tag: HTML personalizzato.
  • Incolla questo snippet:
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
 window.dataLayer.push({
 "event" : "cf7mailInviata",
 "cf7FormId" : event.detail.contactFormId,
 "cf7Campi" : event.detail.inputs
 })
}); 
</script>
  • Aggiungi l’Attivatore: All Pages.
  • Salva il Tag con il nome: “Contact Form 7 Listener”.

Questo script non solo andrà ad inserire all’interno del Data Layer l’evento cf7mailInviata, ma farà un push dei dati relativi al form (l’id, i valori dei campi inseriti dall’utente, ecc).

STEP 2 – CREA L’ATTIVATORE

Il secondo step è facilissimo: hai pushato nel Data Layer l’evento cf7mailInviata, ti basterà intercettalo attraverso un Attivatore di tipo evento personalizzato. In questo modo potrai inviare a Google Analytics (o a chi ti pare) i dati raccolti.

Ecco quello che devi fare:

  • Sezione Attivatori > Nuovo.
  • Tipo di Attivatore: Evento personalizzato.
  • Nome evento: cf7mailInviata.
  • Salva l’Attivatore con il nome: “cf7mailInviata” (originale, eh? 😛 ).

STEP 3 – CREA LE VARIABILI

Facciamo subito una verifica. Se fino ad ora hai fatto tutto giusto, compilando il form e attivando la console di Debug e Anteprima, dovrebbe comparire l’evento “cf7mailInviata“.

Se vai nella scheda “Data Layer”, puoi notare come all’interno di questo evento si sia popolato di dati.

Bene, ora ti mostro come prendere i valori del Form Id e l’oggetto dell’email (sembra una cosa figa in effetti).

Mi raccomando però, ricordati che non è possibile tracciare i dati sensibili dell’utente (email, nome, ecc) e cioè i famosi PII (Personally Identifiable Information), altrimenti Google si arrabbia 😉

Come si creano queste Variabili? Ecco come si fa:

  • Sezione Variabili> Variabili definite dell’utente > Nuova.
  • Tipo di Variabile: Variabile di livello dati.
  • Nome Variabile livello dati: cf7FormId.
  • Salva con il nome: “CF7 – Form ID”.

 

  • Sezione Variabili> Variabili definite dell’utente > Nuova.
  • Tipo di Variabile: Variabile di livello dati.
  • Nome Variabile livello dati: cf7Campi.2.value.
  • Salva con il nome: “CF7 – Oggetto Email”.

Oh, ma aspetta. Perché “cf7Campi.2.value”? 

Perché il Data Layer è un’array JavaScript e, come hai visto dalla prima immagine dello step 3, in cf7Campi dipendono le chiavi “name” e “value”.

cf7Campi: [

{name: 'your-name', value: 'Matteo'}, //posizione 0

{name: 'your-email', value: 'test@test.it'}, //posizione 1

{name: 'your-subject', value: 'Test Oggetto'}, //posizione 2

{name: 'your-message', value: 'Questo è un test'} //posizione 3

]

Ma guarda un po’. Ogni riga ha la sua posizione, che parte da 0. Di conseguenza, visto che ti interessa prendere l’oggetto dell’email, la posizione in questo caso è esattamente 2. Ma cosa ti interessa della posizione 2? Il “value”, perciò il valore della Variabile sarà: cf7Campi.2.value. 

 

STEP 4 – CREA IL TAG EVENTO

Ora non ti resta che inviare a Google Analytics tutti i dati raccolti, ovviamente con un bellissimo evento. Quindi ti basterà creare un evento che si attiva quando un utente compila il form di contatto.

Segui questi passaggi:

  • Sezione Tag > Nuovo.
  • Tipo di Tag: Universal Analytics.
  • Categoria: Contact Form 7.
  • Azione: Form ID: {{CF7 – Form ID}}.
  • Etichetta: Oggetto Email: {{CF7 – Oggetto Email}}.
  • Adesso dentro le Impostazioni di Google Analytics, puoi inserire la Variabile delle Impostazioni di Analytics, se l’hai creata come ti ho spiegato, oppure puoi abilitare l’override e inserire la costante {{gaID}}nel campo ID monitoraggio (in alternativa puoi anche semplicemente inserire il tuo codice UA di Analytics).
  • Aggiungi l’Attivatore: “cf7mailInviata”.
  • Salva con il nome: “GA – Event – Contact Form 7”.

STEP 5 – VERIFICA L’IMPLEMENTAZIONE

Ora prova a compilare il form, se tutto è andata secondo i nostri malefici piani, dovresti vedere qualcosa del genere nella funzione di Debug e Anteprima!

 

Se le nuove implementazioni funzionano correttamente, adesso puoi tornare su Google Tag Manager e cliccare sul pulsante blu “Invia” per pubblicare ufficialmente le modifiche.

Psss… fammi sapere nei commenti se ti è piaciuta questa guida!

Link utili

Questa guida ha preso spunto da questo articolo di Julius Fed

A presto e… Buon Tag!

Matteo Zambon

View Comments

  • Ciao Matteo.

    Una domanda ho diversi moduli nel mio sito web e vorrei poter tracciare Il titolo del modulo oltre all'id o al Oggetto.
    è possibile far ciò?

    • Si certo, dovresti trovarlo tra i parametri dei push. Ti basterà quindi creare una variabile di livello dati.

      Fammi sapere!

  • Ciao,

    ho seguito la guida passo per passo seguendo prima la modalità con il plugin duracelltomi attivato e, non funzionando, ho provato l'altra strada.
    Purtroppo in entrambi i casi facendo debug anteprima con google chrome l'evento non mi compare mai.
    A cosa può essere dovuto?

    • Ciao Marco, hai guardato se nel source compare? Ti basta mettere view-source: prima dell'url nella barra di Chrome per vedere e cerchi GTM-

      Nel caso potrebbe essere qualche conflitto con il tema o altri moduli :(

      Fammi sapere!

  • Buongiorno Matteo,

    complimenti per la guida davvero utilissima! Ho seguito i vari passi e sono riuscita a creare l'evento in Google Analytics che traccia correttamente gli invii del form (solo non valorizza il campo con l'argomento della mail, ma pazienza).

    Non capisco però perché l'obiettivo creato in GA appoggiandosi a quell'evento invece non tracci nulla e non risulti neanche visibile tra quelli importabili come conversioni in Google Ads.
    Hai per caso qualche consiglio anche su questo?
    Grazie mille

  • Ciao Matteo,
    ho seguito la guida passo passo, il tag sembra essersi attivato (era in "tags fired"), ma su Analytics l'evento non sembra essersi registrato. Cosa potrei aver sbagliato?
    Grazie mille

  • Ciao Matteo,

    E' normale che GA si perdi qualche form completato? Per esempio in un form, GA indica che è stato completato 43 volte mentre il plugin Contact Form CFDB7 ne indica 50 (ovviamente nessun bot).

    Grazie!

      • Ciao Nicolò, stai guardando gli obiettivi di GA o il numero degli eventi? Occhio che se guardi gli obiettivi il loro scope è per sessione e non per hit :)

        Fammi sapere :)

    • Ciao Nicolò, ricordati che esistono adblocker, estensioni che bloccano e JavaScript che non funzionano. Non ci sarà mai il 100% del tracking reale se lo facciamo client side.
      Quindi, in breve, sì è normale. Il numero di mancanze è un po' altino, supera i canonici 10%. Verifica se ci sono problemi con dispositivi mobile o simili :)

      Fammi sapere!

  • Ciao Matteo, grazie mille per la guida! Molto utile e sono riuscito a crearlo in Tag Manager
    Una domanda: come faccio a creare l'evento nel Pixel di Facebook?
    Quindi a creare una conversione personalizzata nel Pixel, che mi mostri il numero di volte che il form viene compilato e inviato (come avviene su Analytics, ma all'interno del Pixel)
    Grazie ancora!

    • Era proprio il tag script di apertura e chiusura che mi mancava!
      Grazie mille, funziona tutto alla perfezione!

    • Grazie Matteo!
      Per il momento ho provato a fare come mi hai consigliato, usando l'evento standard Lead, ma purtroppo non si attiva...
      Ho già il Pixel PageView attivo, con il suo tag dedicato che ho creato seguendo un'altra tua guida.
      All'interno del nuovo tag Custom HTML, il codice fbq('track', 'Lead'); devo comunque inserirlo all'interno di ... giusto? Perché forse sto tralasciando questo piccolo fondamentale particolare...
      E poi come Attivatore scelgo l'Evento personalizzato cf7mailInviata, corretto?
      Grazie!

      • Ciao Riccardo, ti basta creare il tag e mettere lo stesso attivatore che usi per il tag di GA.
        Ricordati di metterlo dentro il tag script.

        Fammi sapere

  • Ciao Matteo! Inanzitutto ti ringrazio per la guida!
    Premetto che sono un newbie in GTM. Ho provato a seguire i passi che spieghi per andare a tracciare form 7 per wordpress. Ho creato il Tag e l'attivatore. Lancio l'anteprima, riempio il form ma GTM verifica solamente gi eventi standard di visualizzazione pagina. Nessuna tracia del completamento del form :( Secondo te dove può essere il problema? devo attivare qualche impostazione in Wordpress?

  • Il "Listener" praticamente sostituisce l' integrazione nel plug in giusto? il Listener pusha i dati sul datalayer come se lo facesse l' attivazione dell' integrazione del plug in giusto?

  • Ciao Matteo, grazie per le tue guide.
    Sto cercando di usare questo metodo per mandare i dati in Analytics. (in gtm debug vedo popolate correttamente le variabili email, oggetto, ecc...) e il tag di invio form si attiva correttamente.
    Sto utilizzando da poco GA4 e non riesco a visualizzare l'evento negli eventi esistenti di Analytics.
    Qui vedo solo: gli eventi: first_visit, page_view, scroll e session_start.
    Ci possono essere ritardi nella visualizzazione degli eventi in GA?
    O forse questa guida non funziona con GA4?

    • Ciao questa guida funziona con qualsiasi strumento di tracking. Semplicemente attivi il tipo di Tag (quindi di servizio: FB, GA, GA4, CRM etc) una volta che l'utente compila il form.
      Dovresti verificare con il debug di GTM cosa effettivamente arriva in GA4 selezionando l'icona di G-XXXXXXX. Ho fatto un corso che spiega come usare GA4: https://club.tagmanageritalia.it/corso-google-analytics-appweb/

      Fammi sapere

  • Per quale motivo abbiamo creato due tag: 1) Contact Form Listener e 2) GA - Event - Contact Form 7?
    Cosa differenzia il secondo dal primo?

    • Perchè invece di usare l' integrazione nel plug in di GTM per WP, questo Listener mi permette di preparare il terreno per l' evento che voglio scatenare. Il senso del ragionamento dovrebbe reggere, giusto?

    • si matteo, questo l' ho capito. Intendevo chiedere per quale motivo serve prima creare il "Listener". Serve per pushare nel datalayer il dato che "configura" GA per un evento specifico giusto? (In questo caso l' invio del Contact Form 7) Cerca di "passarmi i terminI", non è terminologia tecnica specifica ma il concetto è giusto?

      • Ciao Riccardo, si è giusto :)
        Il motivo è che senza listener non hai un qualcosa che ti dice in modo chiaro che il form è stato compilato.

    • Ciao Riccardo ti ho risposto all'altro commento :)
      1) Serve per avere l'evento che gestirà l'attivatore
      2) Può essere qualsiasi servizio di tracking che vuoi agganciare

    • Correggetemi se sbaglio: con il primo tag configuriamo il datalayer per mettere a disposizione di GTM e quindi di GA le informazioni che necessitiamo, poi con il secondo tag scateniamo l' evento? .... E' come installare il Pixel base di FB per poi far scatenare gli eventi standard/custom? Molto gentili! a breve compro il libro, nel frattempo avrei bisogno di integrare quantomeno le funzioni base...

      • Ciao Riccardo, il primo Tag ti permette di avere un evento custom per poter agganciare GTM, il secondo Tag può essere qualsiasi altro servizio (come ad esempio Facebook, Google Analytics e così via).

Recent Posts

Attribuzioni errate in GA4: cause e soluzioni al problema

Negli ultimi mesi hai notato in Google Analytics 4 un calo improvviso e inspiegabile nelle…

3 mesi ago

Come creare una Dashboard Ecommerce per analizzare i dati degli acquisti Nuovi e di Ritorno

Se ti trovi su questa guida è perché hai compreso che solo attraverso la Data…

4 mesi ago

Consent Mode v2 e calo dei dati delle audience e del traffico in Google Ads: cause e soluzioni

Da quando hai configurato la Consent Mode v2 (CM v2) hai notato cali improvvisi o…

6 mesi ago

Data Leak Google: Chrome e le implicazioni per la Privacy e la Digital Analytics

Premesso che non è possibile conoscere l'esatto funzionamento né di Chrome, né degli algoritmi di…

6 mesi ago

Come creare Report in GA4 per analizzare campagne advertising e marketing con UTM

Da quale canale di marketing arriva il maggior numero di conversioni? Quale campagna di marketing…

6 mesi ago