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

Discussione in 'Javascript' iniziata da theseo, 13 Marzo 2018.

  1. theseo

    theseo Utente Attivo

    Registrato:
    22 Febbraio 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    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!!
     
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    507
    Mi Piace Ricevuti:
    21
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    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!
     
  3. theseo

    theseo Utente Attivo

    Registrato:
    22 Febbraio 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    grazie per la risposta ma... argh... mi spieghi meglio?
    devo mettere prima il -> onclick="gtag()" ??
    ma prima dove? non ci sono molti altri posti...
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    507
    Mi Piace Ricevuti:
    21
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    No che lo devi mettere prima, devi prevenire il refresh della pagina....
    In JS utilizzando jQuery e.preventDefault();
     
  5. theseo

    theseo Utente Attivo

    Registrato:
    22 Febbraio 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    ahi non lo so assolutamente fare...
     
  6. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    507
    Mi Piace Ricevuti:
    21
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    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...
     
  7. theseo

    theseo Utente Attivo

    Registrato:
    22 Febbraio 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    argh provato ma con questa modifica il form non invia più...
     
  8. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    507
    Mi Piace Ricevuti:
    21
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    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!
     
  9. theseo

    theseo Utente Attivo

    Registrato:
    22 Febbraio 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    :-(( provato ora: il form invia di nuovo ma l'evento su analytics continua a non apparire... inizio a scoraggiarmi...
     
  10. otto9due

    otto9due Utente Attivo

    Registrato:
    22 Febbraio 2014
    Messaggi:
    520
    Mi Piace Ricevuti:
    18
    Punteggio:
    18
    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>
     
  11. theseo

    theseo Utente Attivo

    Registrato:
    22 Febbraio 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    no ma anche a me nei link funziona
    è qua dentro che non va-->
    <input type="submit" name="Submit" value="Invia" >
     
  12. otto9due

    otto9due Utente Attivo

    Registrato:
    22 Febbraio 2014
    Messaggi:
    520
    Mi Piace Ricevuti:
    18
    Punteggio:
    18
    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.
     
  13. theseo

    theseo Utente Attivo

    Registrato:
    22 Febbraio 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    niente non va neanche così: il form parte ma l'evento non viene chiamato
    non so proprio + cosa fare, le abbiamo provate tutte...
     
  14. theseo

    theseo Utente Attivo

    Registrato:
    22 Febbraio 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    AHHHHHHHHHHHHHHH nooooooooooooo
    contrordine: FUNZIONAAAAAAAAA
    l'evento è arrivato, in ritardo ma è arrivato
    quindi la soluzione è-->
    input onclick="gtag(ecc ecc
    grazie a tuttiiiii
     
    A otto9due piace questo elemento.
  15. otto9due

    otto9due Utente Attivo

    Registrato:
    22 Febbraio 2014
    Messaggi:
    520
    Mi Piace Ricevuti:
    18
    Punteggio:
    18
Sto caricando...

Condividi questa Pagina