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>
Muhammad Reda
  • 26,379
  • 14
  • 93
  • 105
kagat-kagat
  • 1,455
  • 4
  • 22
  • 27
  • 2
    any particular reason why do you want to do that without using the module? – Ajit S Jan 21 '13 at 09:46
  • I am curious too. I can't see a reason not to use the module yet there are reason good reasons to use a module (e.g. A module can update the embedded script if there is any change in Google analytics script) – Isaac May 15 '13 at 11:51
  • 1
    If you want to be verified as an owner of a site in some other Google services (eg. Search Console), you need to have Google Analytics code inside `head` tag. – maciek Apr 27 '16 at 13:37

2 Answers2

11

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.

Muhammad Reda
  • 26,379
  • 14
  • 93
  • 105
7

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.