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:
- Define the view element (app/views/elements/google-analytics.ctp):
<?php $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 + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("$gaCode"); pageTracker._trackPageview(); } catch(err) {}</script> EOD; echo $googleAnalytics; } ?>
- Include the view element in app/views/default.ctp (just before </body>):
<?php echo $this->element('google-analytics'); ?>
- 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