初心者でもできる PHP4 の共用サーバーの携帯サイトに Google Analytics を組み込むチュートリアルの決定版

モバイル版 Google Analytics は PHP5 以降に対応しています。ですから、PHP4 で Google Analytics を使うには Google のコードを改造する必要があります。改造方法は他のサイトで紹介されていますが、しっかりと最初から最後までまとめているサイトがなかったので、ここにまとめさせて頂きます。

なるべく PHP の分からない初心者でもできるように書いていきます。

サーバー環境・モバイルサイト環境

今回は以下の条件で Google Analytics を組み込む方法を紹介します。

  • HTML ファイル構成された静的サイト
  • PHP4 の共用サーバー
  • .htaccess で php_value を使って include_path が設定できる
  • .htaccess で 拡張子 .html ファイルを PHP ファイルとして動かすことができる

PEAR をサーバーにインストールする

以下のサイトがとても参考になります。私の方でもひと通り説明させて頂きます。
共有サーバーにPEARをインストールする方法 | H2+ Goes On

go-pear.php をダウンロードする

go-pear.php をダウンロードしてファイル名を go-pear.php として保存します。go-pear.php はブラウザから PEAR を管理できるツールです。

go-pear.php をサーバーにアップロードして BASIC 認証をかける

携帯サイトのディレクトリの中で良いです。適当に ./pear というディレクトリを作って、その中に go-pear.php を入れてください。この時パーミッションなどをしっかり設定しなければあとでエラーがでますが、エラーが出たら変更という形でも良さそうです。

ちなみに go-pear.php に誰でもアクセスできてしまうと、誰かにアクセス解析に使うパッケージなどを削除されてしまうことも考えられますので、BASIC 認証でアクセスできないようにしましょう。BASIC 認証を入れる方法は以前説明しましたので、そちらを参考にしてください。

ブラウザから go-pear.php にアクセスしてインストールする

ブラウザからアクセスしますと Go-PEAR Installer が表示されます。Next をクリックすると、パスなどの設定画面が出てきます。私の環境では特に何も設定せずにそのままインストールしたところ成功しました。

インストールが完了すると PEAR のパッケージ管理画面が出ます。

Google Analytics を埋め込むための準備をする

こちらに関しては以下のページが大変参考になりました。
モバイル版 Google Analytics を PHP4 で動かす

私の方でもこの記事の要点の説明をさせて頂きます。

PHP_Compat をインストールする

PEAR の管理画面の下に Quick-install a package という項目があります。ここに PHP_Compat-1.6.0a3 と入力して最新の PHP_Compat をインストールしてください。alpha 版の 1.6.0a2 で動作確認済みのようですが、私が 1.6.0a3 での動作を確認しております。

.htaccess で PEAR までの include_path を設定する

モバイルサイト全体で先ほどインストールした PHP_Compat が使えるように、include_path というものを設定します。以下のようにサーバーの絶対パスを書きます。あと、拡張子 .html のファイル内でも PHP が使えるようにする設定も2行目に加えておきます。

1
2
php_value include_path ".:/var/www/htdocs/mobile/pear/PEAR"
AddType application/x-httpd-php .php .html

ちなみに、絶対パスが分からない場合は以下のコードを PHP ファイルとして保存してブラウザから実行することで取得できます。

1
<?php echo $_SERVER['DOCUMENT_ROOT']; ?>

Google Analytics より ga.php をダウンロードする

ga.php は Analytics から手に入れることができます。

  1. 新規プロファイル作成して、新規トラッキングコードの画面に行く。
  2. 何をトラッキングしますか?と書いてあるところの上にタブの詳細をクリック。
  3. 携帯向けのサイトを選択して言語は PHP を選択。
  4. 横のコードを飛ばし、その下に ga.php のダウンロードリンクがあります。

ga.php をカスタマイズする

ga.php の先頭に以下の2行を追加します。

1
2
require_once 'PHP/Compat/Function/setrawcookie.php';
require_once 'PHP/Compat/Function/file_get_contents.php';

次に以下のようなコードがありますがこちらを置き換えます。

1
2
3
4
5
setrawcookie(
	COOKIE_NAME,
	$visitorId,
	$timeStamp + COOKIE_USER_PERSISTENCE,
	COOKIE_PATH);

置き換え後は以下の様になります。

1
2
3
4
5
6
7
8
9
setrawcookie(
	COOKIE_NAME,
	$visitorId,
	$timeStamp + COOKIE_USER_PERSISTENCE,
	COOKIE_PATH,
	'',
	false,
	false
);

この2つのカスタマイズが終われば ga.php は PHP4 のサーバーでも動くようになります。Google Analytics ではサーバーのドキュメントルートにこのファイルを保存しろと指示がありますが、ドキュメントルートでなくてもモバイルサイトのディレクトリに保存しても構いません。

ドキュメントルートに保存しなかった場合は、後で ga.php を読み込むコードに変更を加えます。変更点は説明させて頂きますのでご安心ください。

Google Analytics のコードをサイトに埋め込む

ここからは私の完全オリジナルとなります。かなり簡単に組み込めるようになりますが、Google の説明と少し違いますので、Google 公式の方法が良い場合は、ここは読まず Google の指示に従ってください。

Google の2つのトラッキングコードはひとつにまとめて一元管理できる

先ほど Google Analytics から ga.php をダウンロードして頂いたと思いますが、そこでは2つのコードを貼り付けろとの指示があります。

  1. <html> タグの前に記述するコード
  2. </body> の前に記述するコード

実はこの1つ目のコードは URL を作るだけのコードですから、ページのトップに書く必要は無いように思います。ただ Google の作ったコードなので何か大いなる意味があるように感じますし、私の勘違いかもしれません。

どのような意図があるかは分かりませんが、コード全てをフッタに全てまとめて、PC 版のような感じで組み込めるようにコードを合体し別で保存しても動作するはずです。

あと、実は私の弄っている携帯サイトの静的ファイルが100ファイル以上あり、フッタだけは include で一括管理していたことも、コードをひとつにまとめようと思ったきっかけです。

2種類のコードを合体して外部ファイルに保存する

単純に1つ目のコードの下に2つ目のコードをくっつけただけです。また、$GA_ACCOUNT と $GA_PIXEL がローカルになっていますが、これは私のサーバーで global がおかしなことになって動かなかったためです。特に global にする必要性も見当たらなかったため、ローカルとさせて頂きました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
function googleAnalyticsGetImageUrl() {
	$GA_ACCOUNT = "MO-1234567890-90";
	$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("&", "&amp;", $url);
}
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
echo '<img src="' . $googleAnalyticsImageUrl . '" />';
?>

ちなみに以上のコードをそのまま使うなら変更点は以下です。

  • 2行目の $GA_ACCOUNT = “MO-1234567890-90″; の ID を変更。
  • 3行目の $GA_PIXEL = “/ga.php”; のパス部分。ga.php を保存したディレクトリがルート以下の階層だった場合はそこまでのパスを入力します。/mobile/ga.php に保存した場合は /mobile/ga.php と書けば良いです。

変更が完了したら analytics.php として保存してください。

analytics.php を各ファイルのフッタで読み込む

各ファイルの </body> のすぐ上に以下のコードを埋め込んでいきます。
念のために @ のエラー抑制演算子を入れておきました。

1
<?php @include('analytics.php'); ?>

かなり長くなりましたが、以上でトラッキングが開始されます。1日待てばトラッキングされていますのでしばらくお待ち下さい。

今回はいろいろとカスタマイズしましたが、これらのカスタマイズによって正確にトラッキングされないなどのことがありましたら、お手数ですがコメントなどで情報を頂けると幸いです。

コメント

コメントは受け付けていません。