spacer
spacer
開発者の談話室

携帯でGoogleAnalytics (ASP.NET編)

|

GoogleAnalyticsは携帯では利用できません。これは、Javascriptを使って計測サーバに画面表示情報を送信しているためです。

ですが、携帯からのアクセス時にサーバから直接HTTPリクエストを送信すれば、アクセス数を計測可能になります。しかし、この方法はアクセス数の多いサーバですと、サーバ負荷が増大するのであまりオススメできません。

秒間1000アクセス以上ある場合は、Googleへ携帯端末からアクセス情報を送るためのimgタグを自動生成する方法が望ましいです。

 <%= this.GetGoogleAnalyticsImageTag( "UA-0000-00", "your.domain.mobi" ); >
<script runat="server">
    /// <summary>
    ///
    /// </summary>
    /// <param name="utmac">登録番号 UA-XXXXX-XXXX</param>
    /// <param name="utmhn">ドメイン</param>
    public string GetGoogleAnalyticsImageTag( string utmac, string utmhn ) {
        Random rand = new Random( (int)DateTime.Now.Ticks );


        long win_time = DateTime.Now.ToFileTime();      // 現在時刻
        long unix_time = ( win_time - 116444735995904000 ) / 1000000;   // FileTimeからUnixTimeに変換
        string today = unix_time.ToString();
        string referer = "-";
        if( Request.UrlReferrer != null ) {
            referer = Request.UrlReferrer.AbsoluteUri;
        }
        string utmp = Request.Url.AbsoluteUri;

        string utmn = rand.Next( 1000000000, 2147483647 ).ToString();
        string cookie = Session.SessionID;
        string random = rand.Next( 1000000000, 2147483647 ).ToString();

        string uservar = "-";

        string useragent = "Unknown";
        if( Request.UserAgent != null ) {
            useragent = Request.UserAgent;
        }

        string requrl =
  "http://www.google-analytics.com/__utm.gif?" +
   "utmwv=1" +     // version
            "&utmn=" + utmn +  // 複数送信のブロック
            "&utmsr=-" +
   "&utmsc=-" +
   "&utmul=-" +
   "&utmje=0" +
   "&utmfl=-" +
   "&utmdt=-" +    // ページタイトル
            "&utmcs=-" +    // Character Encoding           
            "&utmhn=" + utmhn +
   "&utmr=" + referer +
   "&utmp=" + utmp +
   "&utmac=" + utmac +
   "&utmcc=__utma%3D" + cookie + // 端末識別
            "." + random + //
            "." + today + // 初回訪問時刻
            "." + today + // 前回訪問時刻
            "." + today + // 現在時刻
            ".2%3B%2B__utmb%3D" + cookie + // 下位互換性維持?
            "%3B%2B__utmc%3D" + cookie +  // 下位互換性維持?
            "%3B%2B__utmz%3D" + cookie +  // 下位互換性維持?
            "." + today +
   ".2.2.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B%2B__utmv%3D" + cookie +
   "." + uservar + "%3B";  // user defined variable          

        return string.Format( @"<img src=""{0}"" width=""1"" height=""1"" />", requrl );
       
    }
   
</script>
 

イメージタグを出力するので、SSLページでは計測できません。SSLページでの計測は、やはりサーバから直接Googleの計測サーバにデータ送信するしかありません。

メッセージ送信

この記事に対してのご意見をお聞かせ下さい。
頂いたメッセージは訪問者様に読みやすいよう整形したのち公開させて頂く場合がございます。
 



 
spacer
spacer