前回に引き続き、次はGoogleAnalyticsの導入。
直接書いてもいいんだけど、とりあえずヘルパーに突っ込んた。
vendorにそのままいれるほうがいいのかな。

■APP/views/helpers/ga.php

公式のサンプルソースをヘルパー用に書き換え。

<?php
class GaHelper extends Helper {
  private $GA_ACCOUNT="MO-XXXXXX-X";
  private $GA_PIXEL="/ga.php";

  function getUrl() {
    $url = "";
    $url .= $this->GA_PIXEL . "?";
    $url .= "utmac=" . $this->GA_ACCOUNT;
    $url .= "&utmn=" . rand(0, 0x7fffffff);
    $referer = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : '';
    $query = $_SERVER["QUERY_STRING"];
    $path = $_SERVER["REQUEST_URI"];
    if (empty($referer)) {
      $referer = "-";
    }

    $url .= "&utmr=" . urlencode($referer);
    if (!empty($path)) {
      $url .= "&utmp=" . urlencode($path);
    }
    $url .= "&guid=ON";
    return str_replace("&", "&", $url);
  }
}
?>

■APP/controllers/app_controller.php

すべてのページで出すから、app_controllerで宣言。

<?php
class AppController extends Controller {
  var $helpers = array('ga');

■APP/views/layouts/main.ctp

メインのレイアウトのbodyタグ上に書く。

<html>
<head></head>
<body>
   ・
   ・
<?php $googleAnalyticsImageUrl = $ga->getUrl(); ?>
<img src="<?php echo $googleAnalyticsImageUrl; ?>" />
</body>
</html>

■APP/webroot/ga.php

あとはGAの管理画面からDLできるga.phpをwebrootに置いて準備完了。
ちゃんと動いてるみたい。