携帯サイトのGoogleAnalytics for モバイル

PCサイトでは利用の多いGoogleAnalyticsですが、携帯サイトにも対応してます。

トラッキングコードの取得画面で、「詳細」タブを選択後、「携帯電話向けのサイト」を選択することで、php or perl or jsp or aspxのいずれかのコードを取得できます。

phpを利用してたんですが、2点修正して利用した方がよさそうな部分があったので、メモしておきます。

変更前コード


<?php

// Copyright 2009 Google Inc. All Rights Reserved.

$GA_ACCOUNT = "MO-23350941-1";

$GA_PIXEL = "/ga.php";

 

function googleAnalyticsGetImageUrl() {

global $GA_ACCOUNT, $GA_PIXEL;

$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";

return str_replace("&", "&", $url);

}

?>

 

このコードを、以下のように変更します。

理由:

  • global変数が、取得できない場合がある(テンプレート利用など)
  • SERVER環境変数が取得できない場合がある

<?php

// Copyright 2009 Google Inc. All Rights Reserved.

function googleAnalyticsGetImageUrl() {

$GA_ACCOUNT = "MO-xxxxxxxx";

$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";

return str_replace("&", "&", $url);

}

?>

 

$GA_PIXELのファイルパスは、ドメインTOPからのパスになるので、ディレクトリを切ってる場合は、


$GA_PIXEL = '/some/where/ga.php';

のように指定してあげます。

 

あとは、正常にトラッキングされているかどうかを確認して完了。