ケータイ用Googleアナリティクスはデフォルトのままで(ry

やほぉ。鳥だよ。

Googleアナリティクスのケータイ版。出てしばらく経つけど、未だに治してくれてない箇所があるので、ちょっと書いてみようと思うんだ。

ga.phpをいじってみる

ga.phpは、PHPの5系じゃないと動かない。なぜなら、PHP4以前にはsetrawcookieって関数がないから。で、こんな風にしてみる。これでうまく動くのか分からないけど・・・(そもそも、なんで生データが必要なのかな)

    setrawcookie(
        COOKIE_NAME,
        $visitorId,
        $timeStamp + COOKIE_USER_PERSISTENCE,
        COOKIE_PATH);

    if (function_exists('setrawcookie')) {
      setrawcookie(
        COOKIE_NAME,
        $visitorId,
        $timeStamp + COOKIE_USER_PERSISTENCE,
        COOKIE_PATH);
    } else {
      setcookie(
        COOKIE_NAME,
        $visitorId,
        $timeStamp + COOKIE_USER_PERSISTENCE,
        COOKIE_PATH);
    }

HTTP_REFERERには、値が入ってないことがある

直接アクセスしたりすると、HTTP_REFERERには値が入ってこないことがあるんだ。で、エラーを細かく出すようにしてると、わりと途中で止まってアクセス解析されない。

なのでこーする。

function googleAnalyticsGetImageUrl() {
    global $GA_ACCOUNT, $GA_PIXEL;
    
    $url = "";
    $url .= $GA_PIXEL . "?";
    $url .= "utmac=" . $GA_ACCOUNT;
    $url .= "&utmn=" . rand(0, 0x7fffffff);
    $referer = array_key_exists('HTTP_REFERER', $_SERVER)?$_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_ACCOUNT, $GA_PIXELは変数をglobalにする意味ってあんまし無いから関数の引数にしちゃえよって思うのさ。

ところで、はてダでPHPシンタックスにあまり色が付かないのはなんで?

でわでわ。