Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add Google Analytics code to Drupal 7

I want to add my Google Analytics code to my Drupal site without using the module. I read threads related to this but I can't make it on my website. I want to put my code inside the <head></head> tag. Here's my code:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
  _gaq.push(['_setDomainName', 'example.com']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
like image 545
kagat-kagat Avatar asked Jan 21 '13 08:01

kagat-kagat


2 Answers

Open the folder modules/system in your Drupal install, then copy html.tpl.php file to your theme's directory. Add the code you like to the file and save.

Don't forget to clear the cache.

like image 81
Muhammad Reda Avatar answered Oct 27 '22 12:10

Muhammad Reda


On a Drupal site, you want to insert additional javascript using the drupal_add_js function inside the THEME_preprocess_html function in the template.php file. Doing so allows you to properly cache your site. Specifically, this is how it would look:

<?php
    function THEME_preprocess_html(&$variables) {

      $ga  = "var _gaq = _gaq || [];\n";
      $ga .= "_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);\n";
      $ga .= "_gaq.push(['_setDomainName', 'example.com']);\n";
      $ga .= "_gaq.push(['_trackPageview']);\n";
      $ga .= "(function() {\n";
      $ga .= "  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n";
      $ga .= "  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n";
      $ga .= "  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n";
      $ga .= "})();\n";

      drupal_add_js($ga, array('type' => 'inline', 'scope' => 'header'));
    }
?>

Be sure to replace the UA ID and website name with your own. Also, be sure to rename THEME to your theme and clear the cache when complete.

like image 33
Eric Constantinides Avatar answered Oct 27 '22 13:10

Eric Constantinides