携帯サイト向けの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"]);
元のコードに
の行を追加して、__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 関数にタイトルを渡せるようにし、
の部分で、ga.php に渡すパラメータに utmdt を追加します。
最後に呼び出し部分、「トラッキングするすべてのページの </body> タグの直前に貼り付けます。」として指定されている部分。
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl($title); echo '<img src="' . $googleAnalyticsImageUrl . '" />';?>
googleAnalyticsGetImageUrl($title) のように、googleAnalyticsGetImageUrl 関数にページタイトルを渡します。
一応修正点は以上です。
動かしてみた感じ、これで携帯サイト向けの Google Analytics でもページタイトルを取得できるようにはなりました。
まぁ、ga.php が Notice エラー吐きまくってたり、かなりバギーな感じは否めませんが、しばらく様子見です。
コメント