google analytics mobile
今までga.plを普通にCGIとして設置したことはあったけど、いわゆるバックエンドに実装した事は無かった。
で、今回することに。
出来るgamの設置は2つ。
- ga.plをCGIで
- 論外
- ハンドラ書くなりディスパッチ先のメソッド書くなりしてバックエンドで
- 普通はこうする
というわけで後者。
が、うまくいかない。
どうせgoogle側に必要なパラメータ付けてリクエスト送ればいいんだろ、と思っていたのだけど。
他の正常動作しているgamとリクエストヘッダ・レスポンスヘッダを見比べても、utmdebug付けてリクエストuri・パラメータを見比べても違いが分からず。
「リクエストさえ送ればimgタグすら不要」と聞いたこともあったのだけど。
仕方が無いのでPlack::App::CGIBin使った。
別にpsgi作る必要は無いのだけど、なんとなく足並み揃えて。
my $app = Plack::App::CGIBin->new(root => "/path/to/cgi")->to_app; builder { enable "Plack::Middleware::AccessLog"; mount "/" => $app; }
exec setuidgid user plackup -a /path/to/gam.psgi
みたいな。
最後にmount持ってこないと
You used mount() in a builder block, but the last line (app) isn't using mount(). This causes all mount() mappings to be ignored. See perldoc Plack::Builder for details.
と怒られる。
そしてこれ超便利。素敵。
それにしても。
gaの設置が成功しているかは、トラッキングコードのステータスで確認する。
設置後、実際にデータが表示されるのは数日後からだとしても、ステータスは即時反映されるものだと思っていた。
ステータス確認画面を短時間に更新すると、「1分間後に再度ご確認ください。」と出る。そして、以前設置したときは、設置後はすぐに反映された。
しかし今回はそうではなかった。ある日設置に失敗し続け、ステータスは毎度「トラッキングコードが設置されていません」だったのだけど、その翌日見たら前日の値が取れていた。
しかも設置に成功した後、試しにgaを外してみた。しかし、ステータスは「データを受信しています」のまま。
疲れたのでもういいや。
つかutmdebugとかいいから、何故失敗しているかを教えてくれ。