携帯版 Analyticsについて 【解決済み】
携帯版 Analyticsについて
[サーバ]
ヘテムル
PHPバージョン:5.2.8
[modx]
バージョン:1.0.0J
アドオン:MobileConverter
※Google Analyticsについては、実装していません。
検証実機 auのみ
携帯版のAnalyticsを、サイトに設定したのですが、上手くいきません。
通常のサイトの中に、携帯専用のリソースを作り、そのリソース以下に携帯用として専用のページを設定しています。
状態としては、最後に記述されている、ビーコン画像がリンク切れを起こしている状態で、色々と設定を変えてみても、リンク切れが解消されません。
ga.phpにtypoがあり、不具合等もあるようですが、そのあたりについては、ga.phpを修正してあります。
以下設定
*********トラッキング コード*********
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "MO-********-*";
$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);
}
?>
***********************************************
これをスニペット[[*****]]として保存し、携帯用のテンプレートの、<html>の前に挿入。
*********ビーコン画像用php*********
<?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
<img src="<?= $googleAnalyticsImageUrl ?>" />
*****************************************
については、
<?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
の部分をスニペット[[●●●●]]として保存。
<img src="<?= $googleAnalyticsImageUrl ?>" />
については、テンプレートに直接書き込み。
テンプレートのサンプルとしては、
******テンプレートサンプル******
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
[[*****]]
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<title>携帯用</title>
</head>
<body>
[*content*]
[[●●●●]]
<img src="<?= $googleAnalyticsImageUrl ?>" />
</body>
</html>
*********************************************
という状態です。
ga.php
設置場所は、MODxインストールフォルダーに置いてあります。
よろしくおねがいします。
ヘテムル
PHPバージョン:5.2.8
[modx]
バージョン:1.0.0J
アドオン:MobileConverter
※Google Analyticsについては、実装していません。
検証実機 auのみ
携帯版のAnalyticsを、サイトに設定したのですが、上手くいきません。
通常のサイトの中に、携帯専用のリソースを作り、そのリソース以下に携帯用として専用のページを設定しています。
状態としては、最後に記述されている、ビーコン画像がリンク切れを起こしている状態で、色々と設定を変えてみても、リンク切れが解消されません。
ga.phpにtypoがあり、不具合等もあるようですが、そのあたりについては、ga.phpを修正してあります。
以下設定
*********トラッキング コード*********
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "MO-********-*";
$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);
}
?>
***********************************************
これをスニペット[[*****]]として保存し、携帯用のテンプレートの、<html>の前に挿入。
*********ビーコン画像用php*********
<?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
<img src="<?= $googleAnalyticsImageUrl ?>" />
*****************************************
については、
<?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
の部分をスニペット[[●●●●]]として保存。
<img src="<?= $googleAnalyticsImageUrl ?>" />
については、テンプレートに直接書き込み。
テンプレートのサンプルとしては、
******テンプレートサンプル******
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
[[*****]]
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<title>携帯用</title>
</head>
<body>
[*content*]
[[●●●●]]
<img src="<?= $googleAnalyticsImageUrl ?>" />
</body>
</html>
*********************************************
という状態です。
ga.php
設置場所は、MODxインストールフォルダーに置いてあります。
よろしくおねがいします。
Re: 携帯版 Analyticsについて
ナナメ読みですが、、
このようにして、
こうするといいんじゃないかという気がします。プレイスホルダというのですが、MODxではこんなふうにしてページ内で変数などの値を渡します。
追記
それか、
このようにして「ビーコン画像URL」などのスニペット名で保存し、
直接このように呼んじゃってもいい気もします。上記のように、たぶんキャッシュオフ書式で書く必要がありますね。
ここはksz2000 さんが書きました: <?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
の部分をスニペット[[●●●●]]として保存。
コード: 全て選択
<?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
$modx->setPlaceholder('googleAnalyticsImageUrl', $googleAnalyticsImageUrl);
?>
コード: 全て選択
<img src="[+googleAnalyticsImageUrl+]" />
追記
それか、
コード: 全て選択
return googleAnalyticsGetImageUrl();
コード: 全て選択
<img src="[!ビーコン画像URL!]" />
Re: 携帯版 Analyticsについて
yamaさん
ありがとうございます。
後は、ログが生成されるまで、様子をみてみます。
一応、こちらも試してみましたが、こちらの方法では、上手くいきませんでした。
ありがとうございます。
教えていただいた方法で、とりあえずビーコン画像のリンク切れは、解消されました。
後は、ログが生成されるまで、様子をみてみます。
一応、こちらも試してみましたが、こちらの方法では、上手くいきませんでした。
Re: 携帯版 Analyticsについて
yamaさんに教えて頂いた方法で、ビーコン画像のリンク切れは、解消されましたが、
アクセスログが取れない状態です。
トラッキングコードの
$GA_PIXEL = "/ga.php";
$url = "";
あたりを色々と設定を変えてみたのですが、ことごとく反応がありません。
※モバイルページのテンプレートには、PC用のAnalyticsは設定しておりません。
アクセスログが取れない状態です。
トラッキングコードの
$GA_PIXEL = "/ga.php";
$url = "";
あたりを色々と設定を変えてみたのですが、ことごとく反応がありません。
コード: 全て選択
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "MO-********-*";
$GA_PIXEL = "/ga.php";
function googleAnalyticsGetImageUrl() {
global $GA_ACCOUNT, $GA_PIXEL;
$url = "";
$url .= $GA_PIXEL . "?";
*
*
*
PC版のAnalyticsの方は、問題なく動いているのに、何故なんでしょうか?通常のサイトの中に、携帯専用のリソースを作り、そのリソース以下に携帯用として専用のページを設定しています。
※モバイルページのテンプレートには、PC用のAnalyticsは設定しておりません。
Re: 携帯版 Analyticsについて
スニペット化したトラッキングコードの「function googleAnalyticsGetImageUrl()」のすぐ上に「googleAnalyticsGetImageUrl();」と書き足して、このスニペットをビーコン画像URL出力用のスニペットとしてそのまま使えばよさそうに見えます。
Re: 携帯版 Analyticsについて 【解決済み】
解決いたしましたので、報告です
大変お恥ずかしいのですが、ビーコン画像の吐き出し変数の確認をしていれば、比較的簡単に対処できた問題だったようです。
まず原因は、トラッキングコード内で、$GA_ACCOUNT, $GA_PIXELの変数が正しく動かなかった事のようです。
当初のソースは下記のようになっていました。
これを見るがきり、ga.phpへのパスと、トラッキングNo.が吐き出されていません。
本来は、下記のように変数が吐き出されて、いなければならないはず。
そこでまず、$GA_ACCOUNTと$GA_PIXELの変数がスコープの外にある必要が無いので、スコープの中に入れて確認してみました。
ソースを確認しても、変化がありません。
そこで、トラッキングコードの$GA_PIXELに入っていた、パスを$url に挿入しました。
再度ソースの確認をすると、吐き出されたタグは、
となり、ga.phpのパスが入ったので、ビーコン画像のリンク切れに関しては、解消されます。
しかしこの状態では、まだトラッキングNo.が入っていません。
そこで、今度は強制的にトラッキングNo.を表示させるように変更をします。
$GA_ACCOUNTに入っていた、トラッキングNo.を、$url .= "utmac=" 以降に書込み、その後にある . $GA_ACCOUNTを削除します。
これで、タグを確認すると
となり、やっと動作確認が取れました。
理由は不明ですが、$GA_ACCOUNT, $GA_PIXELの変数に絡んで、他のCMSでも似たような現象が起きているようです。
もう少し、綺麗なやり方もあるかと思いますが、とりあえずこれで動いているのでひとまずは、解決と言うことで。
またサーバーの設定等もあるようですので、この方法で必ず上手く行くわけではないと思いますが、他の方の参考になればと思います。
大変お恥ずかしいのですが、ビーコン画像の吐き出し変数の確認をしていれば、比較的簡単に対処できた問題だったようです。
まず原因は、トラッキングコード内で、$GA_ACCOUNT, $GA_PIXELの変数が正しく動かなかった事のようです。
当初のソースは下記のようになっていました。
コード: 全て選択
<img src="?utmac=&utmn=1699304076&utmr=http%3A%2F%2Fweb.heteml.jp%2Fbest%2Fmanager%2Findex.php%3Fa%3D3%26amp%3Bid%3D2%26amp%3Bopened%3D&utmp=%2Fbest%2F&guid=ON" />
本来は、下記のように変数が吐き出されて、いなければならないはず。
コード: 全て選択
<img src="/ga.php?utmac=MO-00000000-1&utmn=2064119554&utmr=http%3A%2F%2Fweb.heteml.jp%2Fbest%2Fmanager%2Findex.php%3Fa%3D3%26amp%3Bid%3D2%26amp%3Bopened%3D&utmp=%2Fbest%2F&guid=ON" />
コード: 全て選択
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
function googleAnalyticsGetImageUrl() {
$GA_ACCOUNT = "MO-00000000-1";
$GA_PIXEL = "/ga.php";
global $GA_ACCOUNT, $GA_PIXEL;
//以下変更なし
そこで、トラッキングコードの$GA_PIXELに入っていた、パスを$url に挿入しました。
コード: 全て選択
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "MO-00000000-1";
$GA_PIXEL = "";
function googleAnalyticsGetImageUrl() {
global $GA_ACCOUNT, $GA_PIXEL;
$url = "/ga.php";
//以下変更なし
コード: 全て選択
<img src="/ga.php?utmac=&utmn=2064119554&utmr=http%3A%2F%2Fweb.heteml.jp%2Fbest%2Fmanager%2Findex.php%3Fa%3D3%26amp%3Bid%3D2%26amp%3Bopened%3D&utmp=%2Fbest%2F&guid=ON" />
しかしこの状態では、まだトラッキングNo.が入っていません。
そこで、今度は強制的にトラッキングNo.を表示させるように変更をします。
$GA_ACCOUNTに入っていた、トラッキングNo.を、$url .= "utmac=" 以降に書込み、その後にある . $GA_ACCOUNTを削除します。
コード: 全て選択
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "";
$GA_PIXEL = "";
function googleAnalyticsGetImageUrl() {
global $GA_ACCOUNT, $GA_PIXEL;
$url = "/ga.php";
$url .= $GA_PIXEL . "?";
$url .= "utmac=MO-00000000-1";
//以下変更なし
コード: 全て選択
<img src="/ga.php?utmac=MO-00000000-1&utmn=2064119554&utmr=http%3A%2F%2Fweb.heteml.jp%2Fbest%2Fmanager%2Findex.php%3Fa%3D3%26amp%3Bid%3D2%26amp%3Bopened%3D&utmp=%2Fbest%2F&guid=ON" />
理由は不明ですが、$GA_ACCOUNT, $GA_PIXELの変数に絡んで、他のCMSでも似たような現象が起きているようです。
もう少し、綺麗なやり方もあるかと思いますが、とりあえずこれで動いているのでひとまずは、解決と言うことで。
またサーバーの設定等もあるようですので、この方法で必ず上手く行くわけではないと思いますが、他の方の参考になればと思います。
Re: 携帯版 Analyticsについて
すみません。すごい斜め読みなので、間違っていたらごめんなさい。
スニペットのコードは、ドキュメントパーサのメソッド内でevalされるので、としても、「$var」はグローバル変数にならなかったと思います。
もし、グローバル変数として、関数内で使いたければ、のような感じにすれば、良かったような気がします。
つまり、関数の外側でもglobal宣言したら、それで解決しちゃったりするかも?
ってことです。
(同じ名前が、他に使われていないことが前提ですが)
#私も、以前、変数のスコープで、はまったことがあり、この方法で逃げたことがあったような気がします。
#うろ覚えですが。f(^^;;
スニペットのコードは、ドキュメントパーサのメソッド内でevalされるので、
コード: 全て選択
<?php
$var="xxx";
?>
もし、グローバル変数として、関数内で使いたければ、
コード: 全て選択
<?php
global $var;
$var="xxx";
function hogehoge() {
global $var;
…
}
?>
つまり、関数の外側でもglobal宣言したら、それで解決しちゃったりするかも?
ってことです。
(同じ名前が、他に使われていないことが前提ですが)
#私も、以前、変数のスコープで、はまったことがあり、この方法で逃げたことがあったような気がします。
#うろ覚えですが。f(^^;;
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/