OpenSocial::Gadget 配下のウェブアプリで GoogleAnalyticsMobileTracking - Perl

モバイルサイトで GoogleAnalyticsTracking を利用するこちらを参照すればできるのだが、モバイル端末の識別をするのに cookie または 国内の移動体通信事業者が出力するリクエストヘッダを参照するプログラムになっており(※1)、OpenSocial::Gadget 配下のウェブアプリだと(個人情報云々などの制約で)OpenSocial::Gadget なリクエスト内容に変化して個体識別番号などは取得できず、フィーチャーフォンにおいては cookie が使用できないので、プログラムをそのまま使用してもトラッキングが正常にできないというケースに遭遇する。

※1----------------------------------------------------------------------------

  if (exists($ENV{'HTTP_X_DCMGUID'})) {
    $guid_header = $ENV{'HTTP_X_DCMGUID'};
  }
  if (exists($ENV{'HTTP_X_UP_SUBNO'})) {
    $guid_header = $ENV{'HTTP_X_UP_SUBNO'};
  }
  if (exists($ENV{'HTTP_X_JPHONE_UID'})) {
    $guid_header = $ENV{'HTTP_X_JPHONE_UID'};
  }
  if (exists($ENV{'HTTP_X_EM_UID'})) {
    $guid_header = $ENV{'HTTP_X_EM_UID'};
  }
  my $visitor_id = get_visitor_id($guid_header, $account, $user_agent, $cookie);
----------------------------------------------------------------------------

 

でも大丈夫。

このへんのコードをばっさり切って、

$visitor_id に opensocial_viewer_id を代入するコードにちょちょいと改修すれば

出来上がり。

以上。