Google Analytics Event tracking with _trackEvent when a form is submitted -


i trying track event when user clicks submit button on signup form.

i have following code in page:

google analytics - before closing </head> tag:

<script type="text/javascript">    var _gaq = _gaq || [];   _gaq.push(['_setaccount', 'ua-xxxxxxxx-xx']);   _gaq.push(['_trackpageview']);    (function() {     var ga = document.createelement('script'); ga.type = 'text/javascript'; ga.async = true;     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';     var s = document.getelementsbytagname('script')[0]; s.parentnode.insertbefore(ga, s);   })();  </script> 

form event tracking:

<input onclick="_gaq.push(['_trackevent', 'forms', 'submit', 'mylist', , false]);" name="submit" id="af-submit-image-873297158" type="image" class="image img-responsive" style="background: none;" alt="submit form" src="img/orange_free_instant_access_button.png" tabindex="503"> 

every time load page , click form, event logged in realtime events section of analytics. seems work fine, total of on hundred known signups list in past 24 hours, handful logged. (12 overall, of own test submissions).

i can assume event not being sent google, far can see code looks fine, , can see event being sent via console using ga debugging plugin.

i've tried triggering event via jquery call, i've tried various events such onmousedown & actual form submit event, nothing. ( rolled analytics.js ga.js, creating brand new profile, thought may have been 'beta' issue.)

i did suspect event wasn't being fired in time before page changed location, when test myself, fired every single time. i've tried chrome, ff & ie10.

on quest fix i've attached onload event body of page, , can see events being recorded that, live visitors. problem seems centered around form event.

ok looks time answer own question benefit of others:

i did digging , being caused page changing location before event tracked properly. post joel peterson came piece of code:

jquery(document).ready(function($){     $('form').submit(function(event){         //if analytics object exists         if(window._gat){             event.preventdefault();             optinform = this;             _gaq.push(['_set','hitcallback', function(){                                                 optinform.submit();                                              }]);             _gaq.push(['_trackevent', 'forms', 'submit', 'hbsanewtraffic']);         }         //if no analytics object, service normal     }); }); 

it uses callback function ensure event sent first, , submits form.


Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -