Google Analyticsのモバイル版のga.phpにバグがあったので直した

金曜日, 2月 5th, 2010

こんにちは、なかわけです。

Google Analyticsのモバイル版が公開されたことを知って、
ちょうどモバイルの仕事をしていたので導入してみました。
が、動きませんでいた。
Analyticsの管理ページからコピペするコードと
ダウンロードするga.phpにバグがたくさん潜んでました。
隣のエンジニアに協力してもらって直しました。

それにしても天下のGoogle様ともあろうお方が・・・

サイトの<html>タグより前にコピペするコード内の12行目

    $referer = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : '';

ga.phpの89行目あたりから始まるsendRequestToGoogleAnalytics()内

  	$hoge = (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : '';
    $options = array(
      "http" => array(
          "method" => "GET",
          "user_agent" => $_SERVER["HTTP_USER_AGENT"],
          "header" => "Accepts-Language: " . $hoge
      )
    );

110行目あたりから始まるtrackPageView()内

    $cookie = (isset($_COOKIE[COOKIE_NAME])) ? $_COOKIE[COOKIE_NAME] : '';

    $guidHeader = (isset($_SERVER["HTTP_X_DCMGUID"])) ? $_SERVER["HTTP_X_DCMGUID"] : '';
    if (empty($guidHeader)) {
      $guidHeader = (isset($_SERVER["HTTP_X_UP_SUBNO"])) ? $_SERVER["HTTP_X_UP_SUBNO"] : '';
    }
    if (empty($guidHeader)) {
      $guidHeader = (isset($_SERVER["HTTP_X_JPHONE_UID"])) ? $_SERVER["HTTP_X_JPHONE_UID"] : '';
    }
    if (empty($guidHeader)) {
      $guidHeader = (isset($_SERVER["HTTP_X_EM_UID"])) ? $_SERVER["HTTP_X_EM_UID"] : '';
    }

これで動くようになったのですが、ひょっとしたらミスがあるかもしれません。
この記事を参考にして「動かなかったじゃないかコノヤロー」という方はコメントください。

Tags: , ,

Leave a Reply

*