[Javascript] funzione per attivare analytics... dov'è l'errore?

theseo

Utente Attivo
22 Feb 2017
92
5
8
58
ciao, per far sì che le stat di analytics mi contassero negli EVENTI quante volte viene cliccato un pulsante di un form, ho preparato questa piccola funzione

Codice:
<input type="submit" name="Submit" value="Invia" onclick="gtag()">
<script>
function gtag() {
   'event', 'play', {'send_to': 'UA-miocodice','event_category': 'invia_email','event_label': 'invia_email'});
}
</script>
che mi sembra corretta, no? beh non manda nulla al gtag...
NB: la stessa sintassi

Codice:
 gtag() {
   'event', 'play', {'send_to': 'UA-miocodice','event_category': 'invia_email','event_label': 'invia_email'});
}
messa dentro un link di download PDF funziona perfettamente...
Chi sa darmi un aiuto?
graziee!!
 

macus_adi

Utente Attivo
5 Dic 2017
1.313
88
48
IT/SW
Essendo l'input di tipo submit dovresti prevenire il comportamento di default....
Ossia quando premi il pulsante fai qualche azione, stoppa il comportamento effettui la chiamata che serve e poi prosegui... Più o meno la logica è questa!
 

theseo

Utente Attivo
22 Feb 2017
92
5
8
58
grazie per la risposta ma... argh... mi spieghi meglio?
devo mettere prima il -> onclick="gtag()" ??
ma prima dove? non ci sono molti altri posti...
 

macus_adi

Utente Attivo
5 Dic 2017
1.313
88
48
IT/SW
No che lo devi mettere prima, devi prevenire il refresh della pagina....
In JS utilizzando jQuery e.preventDefault();
 

macus_adi

Utente Attivo
5 Dic 2017
1.313
88
48
IT/SW
allora devi fare un fake button tipo button
Ti spiego....
Il tuo input submit fallo diventare così
HTML:
<input type="submit" id="invia" class="hidden" name="Submit" value="Invia" >
<button type="button" onclick="gtag()" id="analytics">Clicca per Inviare</button>

function gtag() {
  $('#invia').removeClass("hidden");
 $('#analytics").addClass("hidden");   
'event', 'play', {'send_to': 'UA-miocodice','event_category': 'invia_email','event_label': 'invia_email'});
}
Sto dando per scontato che tu utilizzi bootstrap almeno per la UI...
 

macus_adi

Utente Attivo
5 Dic 2017
1.313
88
48
IT/SW
Si lo so, infatti per inviare con il form devi fare un doppio click.... Se riuscissi a fare una chiamata in ajax il risultato è garantito...
allora prova a fare così... Togli la parte che ti ho inviato prima... ripristina il tuo file.....
HTML:
$('form').submit(function(e){
    e.preventDefault();

'event', 'play', {'send_to': 'UA-miocodice','event_category': 'invia_email','event_label': 'invia_email'});
  setTimeouf(function(){
          this.submit();
   },1500);
});
Prova così dovrebbe funzionare!
 

theseo

Utente Attivo
22 Feb 2017
92
5
8
58
:-(( provato ora: il form invia di nuovo ma l'evento su analytics continua a non apparire... inizio a scoraggiarmi...
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Vai così.. A me funziona perfettmente:
Codice:
onclick="gtag('event', 'generate_lead', {'event_category': 'Categoria','event_label': 'quello che vuoi'});"
Puoi metterlo dove ti pare, se lo devi piazzaere in un link, mettilo prima del href ovvero:
Codice:
<a onclick="gtag('event', 'generate_lead', {'event_category': 'Categoria','event_label': 'quello che vuoi'});" href="https://www.w3schools.com/html/">Visit our HTML tutorial</a>
 

theseo

Utente Attivo
22 Feb 2017
92
5
8
58
no ma anche a me nei link funziona
è qua dentro che non va-->
<input type="submit" name="Submit" value="Invia" >
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Puoi provare semplicemente così..
Codice:
<input onclick="gtag('event', 'generate_lead', {'event_category': 'Categoria','event_label': 'quello che vuoi'});" type="submit" name="Submit" value="Invia" >
Per lo stesso motivo del link potrebbe creare problemi se messo dopo il submit.
 

theseo

Utente Attivo
22 Feb 2017
92
5
8
58
niente non va neanche così: il form parte ma l'evento non viene chiamato
non so proprio + cosa fare, le abbiamo provate tutte...
 

theseo

Utente Attivo
22 Feb 2017
92
5
8
58
AHHHHHHHHHHHHHHH nooooooooooooo
contrordine: FUNZIONAAAAAAAAA
l'evento è arrivato, in ritardo ma è arrivato
quindi la soluzione è-->
input onclick="gtag(ecc ecc
grazie a tuttiiiii
 
  • Like
Reactions: otto9due

otto9due

Utente Attivo
22 Feb 2014
529
21
28