CakePHP: Simple Google Analytics integration

The easiest way to integrate Google Analytics’ JavaScript tracking code in your cake application is to add Google’s code snippet in the file app/views/default.ctp.

To be a little more flexible you can store the tracker code in the application’s configuration file (/app/config/core.php). Moreover you can define a CakePHP (view) element that can be reused in other CakePHP projects.

Howto / source code:

  1. Define the view element (app/views/elements/google-analytics.ctp):
    $gaCode = Configure::read('google-analytics.tracker-code');
    if ($gaCode) {
    $googleAnalytics = <<<EOD
    <script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "' type='text/javascript'%3E%3C/script%3E"));
    <script type="text/javascript">
    try {
    var pageTracker = _gat._getTracker("$gaCode");
    } catch(err) {}</script>
    echo $googleAnalytics;
  2. Include the view element in app/views/default.ctp (just before </body>):
    <?php echo $this->element('google-analytics'); ?>
  3. Define the tracker code in the configuration (/app/config/core.php):
    Configure::write('google-analytics.tracker-code', false); // disables Google Analytics
    Configure::write('google-analytics.tracker-code', 'YOUR-TRACKING-CODE'); // enables Google Analytics