Google Analytics 携帯用コードをEC-CUBEに埋め込む方法
2月 2012
1234
567891011
12131415161718
19202122232425
26272829

Google Analytics 携帯用コードをEC-CUBEに埋め込む方法

Google Analytics が正式に携帯へ対応したので、早速EC-CUBEに導入してみましょう。

PC用のコードは JavaScript になっているので、Google Analytics の管理画面で表示されるコードをテンプレートに貼り付けるだけで動作しました。
しかし、携帯用のコードは PHP になっているので、EC-CUBEのテンプレートに貼り付けるには少し手を加えなければなりません。

いろいろ方法はありますが、今回は携帯用画面の表示に使用される SC_MobileView クラスをカスタマイズします。
data/class/SC_View.php を開くと、一番下に SC_MobileView クラスが記述されています。

class SC_MobileView extends SC_SiteView {
    function SC_MobileView() {
        parent::SC_SiteView();
        $this->_smarty->template_dir = MOBILE_TEMPLATE_DIR;
        $this->_smarty->compile_dir = MOBILE_COMPILE_DIR;
    }
}

class SC_MobileView extends SC_SiteView {
    function SC_MobileView() {
        parent::SC_SiteView();
        $this->_smarty->template_dir = MOBILE_TEMPLATE_DIR;
        $this->_smarty->compile_dir = MOBILE_COMPILE_DIR;
 
        // Copyright 2009 Google Inc. All Rights Reserved.
        $GA_ACCOUNT = "MO-XXXXXXXX-X"; //  アカウントナンバーを記入
        $GA_PIXEL = "/ga.php";
 
        $url = "";
        $url .= $GA_PIXEL . "?";
        $url .= "utmac=" . $GA_ACCOUNT;
        $url .= "&utmn=" . rand(0, 0x7fffffff);
        $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";
 
        $this->_smarty->assign('googleAnalyticsImageUrl', str_replace("&", "&", $url));
 
    }
}

次に、 data/Smarty/templates/テンプレート名/mobile/footer.tpl へ以下のコードを追加します。

<img id="ga" src="<!--{$googleAnalyticsImageUrl}-->" />

このままだと、EC-CUBEの機能によって画像が自動的に変換されてしまうため、変換の対象から上記のイメージタグを外すよう、該当機能を変更します。
data/class/SC_MobileImage.php の以下の部分を変更します。

            // HTML中のIMGタグを取得する
            $pattern = '/<img\s+[^<>]*src=[\'"]?([^>"\'\s]+)[\'"]?\s*\/?/i';
            $result = preg_match_all($pattern, $buffer, $images);

            // HTML中のIMGタグを取得する
            $pattern = '/<img\s+[^<>(id=\'ga\')]*src=[\'"]?([^>"\'\s]+)[\'"]?\s*\/?/i';
            $result = preg_match_all($pattern, $buffer, $images);

あとは、html ディレクトリに ga.php を配置すれば、携帯ページの解析が始ります。

投稿者: matsuda 日付: 2010/02/08(月) 14:54