From Libopedia
Jump to navigation Jump to search

Step 1 - Create GA account

  1. Logon to the Google Developers Console with whatever email address you use to access/manage your existing Google Analytics account(s).
  2. Create a new Google Project. The assumption is that you are developing some new software and will make use of the Google code repository. This is not the case but you need to create the skeleton project before you can proceed to the next step.
  3. Enable the Analytics API for the project. In the sidebar on the left, expand APIs & auth. Next, click APIs. In the list of APIs, make sure the status is ON for the Analytics API.
  4. In the sidebar on the left, select Credentials.
  5. Select OAuth / Create new Client ID, then in the subsequent popup screen select Service account. This will automatically generate the required Service Account email address and certificate.
  6. Go to your Google Analytics dashboard Create an account for the newly generated Service Account email address and give it permission to 'Read and Analyze' at account level. See *Note below.
  7. Download the P12 key file, and place it somewhere that your DSpace application can access and be referenced as described below in the configuration section. The preferred download folder is: /home/dspace
  • Note:- The Google documentation specifies that the Service Account email address should only require 'Read and Analyze' permission to this specific Property, it does not need permissions to your Account level Google Analytics.



Select P12.

Step 2 - Enable update of GA data

Edit the following file:

nano $HOME/source/dspace/config/dspace.cfg

Search for the following:

Enter your google analytics key.

See example below.

# If you would like to use Google Analytics to track general website statistics then
# use the following parameter to provide your Analytics key. First sign up for an
# account at, then create an entry for your repository
# website. Analytics will give you a snipet of JavaScript code to place on your site,
# inside that snipet is your Google Analytics key usually found in this line:
# _uacct = "UA-XXXXXXX-X"
# Take this key (just the UA-XXXXXX-X part) and place it here in this parameter.

Alternative Using Piwik (Optional)

An alternative is to use your own Piwik statistics server. See:

Our campus server is available at:

The administrator setup an account for us and added as a service.

Please note
  1. Google analytics must be enabled in the dspace.cfg file. Just use a fictitious code number.
  2. You must comment out the google analytics JavaScript code in the file and paste in the Piwik JavaScript code in it's place.

We were sent the following javascript code snippet and added/merged it into the following XSL stylesheet file: page-structure.xsl

        <!-- Add a google analytics script if the key is present
        <xsl:if test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='google'][@qualifier='analytics']">
            <script type="text/javascript"><xsl:text>
                   var _gaq = _gaq || [];
                   _gaq.push(['_setAccount', '</xsl:text><xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='google'][@qualifier='analytics']"/><xsl:text>']);

                   (function() {
                       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
                       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '';
                       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);

	<!-- Piwik W Klapwijk 2012-01 -->
        <xsl:if test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='google'][@qualifier='analytics']">
	     <script type="text/javascript">
        	 <xsl:text>var pkBaseURL = (("https:" == document.location.protocol) ? "" : "");</xsl:text>
	         <xsl:text>document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));</xsl:text>
	<script type="text/javascript">
	     try {
	       <xsl:text>var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 3); </xsl:text>
     	catch( err ) {