Jump to main content Jump to doc navigation

What is Analytics?

Analytics is a utility tool for MODX Revolution that will insert the tracking code for Google Universal Analytics (analytics.js) and/or Google Analytics (ga.js) on your website's pages.

By default it will ignore traffic from users logged into the manager. Every context in your website can be excluded on demand, wether or not users are logged in. The tracking code templates can be overridden with your own chunk.

Requirements

  • MODX Revolution 2.1.5 or later
  • PHP5 or later

History

Analytics was first released on February 5th, 2012 by yogoo. The idea of making this extra emerged after reading Mark Hamstra's blog post: Hiding code for MODX Manager users.

Download

The extra can be retrieved through the Package Manager, or downloaded manually from the repository.

Usage

Usage examples

Most basic call (always uncached):

[[!Analytics? &webPropertyID=`UA-XXXXX-Y`]]

Disable context filtering (cache the snippet):

[[Analytics?
    &excludeContextList=``
    &excludeLoggedInUserContextList=``
    &webPropertyID=`UA-XXXXX-Y`
]]

Advanced example:

[[!Analytics?
    &debug=`1`
    &isLocalhost=`1`
    &excludeContextList=`content_editors`
    &excludeLoggedInUserContextList=`mgr`
    &displayfeatures=`0`
    &enhancedLinkAttribution=`0`
    &webPropertyID=`UA-XXXXX-Y`
    &cookieDomain=`domain.tld`
    &forceSSL=`1`
    &anonymizeIP=`1`
    &pagePath=`/home/landingPage`
    &setAccount=`GA-XXXXX-Y`
    &setDomainName=`domain.tld`
    &trackPageview=`/home/landingPage`
]]

Shared Properties

Name Description Required Default
debug A simple debug mode to ouput debug messages as js comments. no 0
excludeContextList Comma separated list of contexts to exclude from tracking - Ex: web, web2,... no
excludeLoggedInUserContextList Comma separated list of contexts to exclude from tracking when users are logged into it - Ex: mgr, web,... no mgr
enhancedLinkAttribution Enhanced Link Attribution: analytics.js, ga.js no 1

Google Universal Analytics Properties (analytics.js)

Name Description Required Default
webPropertyID trackingId parameter. yes
displayfeatures Display Features plugin. This will enable Display Advertising Features. no 1
enhancedLinkAttribution see Shared Properties above. no 1
forceSSL forceSSL field. no 0
anonymizeIP anonymizeIp field. no 0
cookieDomain cookieDomain field. no auto
isLocalhost Enable it when you want to test analytics.js from a webserver running on localhost. More… no 0
cookiePath [deprecated] Use of this property is highly discouraged and will be removed in a future release of Analytics. no
pagePath send() Page field. no

Google Analytics Properties (ga.js)

Name Description Required Default
setAccount _setAccount parameter. yes
enhancedLinkAttribution see Shared Properties above. no 1
setDomainName _setDomainName parameter. no
setCookiePath [deprecated] Use of this property is highly discouraged and will be removed in a future release of Analytics. no
trackPageview _trackPageview parameter. no

Want to migrate you tracking code to Universal Analytics? Consult the Universal Analytics Upgrade Center.

Different ways to set properties

Properties can be set in many ways: via the snippet call or properties sets, in a ressource or as a context settings.

If you set up your site settings in a resource, you can use getResourceField to retrieve the values and pass them through the snippet call.

Use your own tracking codes

Create your own chunks named ua_tracking and ga_tracking. Optionnaly use the placeholders [[+ua_options]] and [[+ga_options]].

Troubleshooting

  • Turn on debug mode.
  • Make sure a tracking ID is setup with webTrackingID and/or setAccount.
  • Make sure you are logged out from the manager. Remember that by default it doesn't track traffic from users logged into the manager.

Development and Bug reporting

Feature requests and bugs can be filed at github.