携帯サイト向けのGoogle Analyticsでページタイトルも取得する

投稿日:

CakePHP で携帯サイト向けの Google Analytics を利用する」の続きです。

前回は、CakePHP で構築した携帯サイトに Google Analytics を設置するまでを書きました。

が、Google の指示通り設置した場合、解析結果にページタイトルの情報が含まれないことが分かりました。

具体的にはページタイトルの部分がすべて「(not set)」となってしまう感じです。

開発者なら URL からページの内容がわかるかも知れませんが、普通に考えたら URL だけを見ても何のページか分からないわけで、これだと非常に分かり難い解析結果になってしまいます。

なので、コードを修正して対応してみました。

まず、ダウンロードした ga.php の以下の部分(163行目くらいから)を編集してアナリティクスに送るデータに utmdt というパラメーターを追加します。

$utmUrl = $utmGifLocation . "?" .
    "utmwv=" . VERSION .
    "&utmn=" . getRandomNumber() .
    "&utmhn=" . urlencode($domainName) .
    "&utmr=" . urlencode($documentReferer) .
    "&utmp=" . urlencode($documentPath) .
    "&utmac=" . $account .
    "&utmdt=" . urlencode($_GET["utmdt"]) .
    "&utmcc=__utma%3D999.999.999.999.999.1%3B" .
    "&utmvid=" . $visitorId .
    "&utmip=" . getIP($_SERVER["REMOTE_ADDR"]);

元のコードに

"&utmdt=" . urlencode($_GET["utmdt"]) .

の行を追加して、__utm.gif に送るパラメーターに utmdt を追加しています。


次に「解析するすべてのページの最初の <html> タグの直前に貼り付けます。」として指定されている部分のコードを以下のように修正します。

function googleAnalyticsGetImageUrl($title = '') {
  $GA_ACCOUNT = "MO-XXXXXXX-XX";
  $GA_PIXEL = "/ga.php";
 
  $url = "";
  $url .= $GA_PIXEL . "?";
  $url .= "utmac=" . $GA_ACCOUNT;
  $url .= "&utmn=" . rand(0, 0x7fffffff);
  $url .= "&utmdt=" . urlencode($title);
	 ・
	(中略)
	 ・
}

googleAnalyticsGetImageUrl 関数にタイトルを渡せるようにし、

$url .= "&utmdt=" . urlencode($title_for_layout);

の部分で、ga.php に渡すパラメータに utmdt を追加します。


最後に呼び出し部分、「トラッキングするすべてのページの </body> タグの直前に貼り付けます。」として指定されている部分。

$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl($title);
echo '<img src="' . $googleAnalyticsImageUrl . '" />';?>

googleAnalyticsGetImageUrl($title) のように、googleAnalyticsGetImageUrl 関数にページタイトルを渡します。


一応修正点は以上です。

動かしてみた感じ、これで携帯サイト向けの Google Analytics でもページタイトルを取得できるようにはなりました。

まぁ、ga.php が Notice エラー吐きまくってたり、かなりバギーな感じは否めませんが、しばらく様子見です。

更新日: