Google Analytics
Resources
Versioning
Web Library | Docs | Primary Globals | Extra Globals |
---|---|---|---|
Legacy (ga.js) | Docs | _gat (tracker methods)_gaq (async push methods)_gaq.push() |
gaGlobal |
Analytics.js | Docs | ga() ga('send',{}) |
gaGlobal ga GoogleAnalyticsObject google_tag_data gaplugins gaData |
Gtag.js | Docs | gtag() gtag('event','{{action}}',{}) |
gaGlobal ga GoogleAnalyticsObject google_tag_data gaplugins gaData Plus google_tag_manager gtag dataLayer |
Example setup tags
Legacy (ga.js)
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-12345678-9']);
_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>
Analytics.js
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-12345678-9', 'auto');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->
gtag.js
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-12345678-9"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-12345678-9');
</script>
Manual Tracking
Legacy (ga.js)
Pageview:
_gaq.push(['_trackPageview']);
Event:
// Recommended way is to "push" into _gaq global
_gaq.push(['_trackEvent', category, action, opt_label, opt_value, opt_noninteraction]);
// Or use tracker "instance", if sending to specific tracker
_gat._getTrackerByName('myTracker')._trackEvent(category, action, opt_label, opt_value, opt_noninteraction);
Analytics.js
Pageview:
ga('send', 'pageview', [page], [fieldsObject]);
Event:
ga('send', 'event', eventCategory, eventAction, eventLabel, eventValue);
// Or, with args as obj
ga('send', 'event', fieldsObject)
gtag.js
Pageview:
// Unless you config command with send_page_view as false, the intial config will fire a pageview automatically:
gtag('config', 'GA_MEASUREMENT_ID');
// Or, you can fire programmatically:
gtag('config', 'GA_MEASUREMENT_ID', {<pageview_parameters>});
Events:
gtag('event', action, {
'event_category': category,
'event_label': label,
'value': value
});
Gotchas
- Events are limited to 20 immediately, then 2/second rate-limited, then 500 total per session
Filters
- If you want to filter by domain of referral source (not just path part (e.g.
/subpage
)), you'll want to use Filter Field "Campaign Source"