tetsuwan blog

鉄ワン(@tetsuwan30)の気ままなダイアリー

ウェブのユーザの動きを知る【PV, UU, CT】

f:id:tetsuwan30:20170823202514j:plain

こんにちは、写真は自宅の畑で採れたスイカです。(今年は雨で大変でした。。)

 

さて、ウェブの仕事をする上で、自分のウェブにきた人をどうやって

数値化して計測するか、当たり前のことなんだけど、改めて振り返ってみます。

 

【前提 1】ウェブは、ユーザがアクセスした「ログファイル」が記録される

ウェブをPCやスマホなどのブラウザ(ChromeSafariFirefoxIE)で

見ると、ウェブのサーバにアクセスした記録として「ログファイル」が記録されます。

例)

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /index.html HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win; I ;Nav)"

【前提 2】ウェブは、ブラウザの「クッキー」によって誰がアクセスしたか判別する

ただのアクセスログだけだと、IPアドレス(どこのネットワーク、例えばdocomo通信やどの会社のネットから通信したのか)やユーザエージェント(どの種類のブラウザ、ChromeSafariとか、スマホなのかとか)は分かりますが、そこまでしか分かりません。

アクセスした時に、この人は「番号:1048020181736294 」であると、ブラウザに記録しておく機能を「クッキー」と言います。アクセスがあるたびに、このクッキーの記録をブラウザから教えてもらうことで、複数のアクセスログから、同じ人がアクセスしているということが分かります。

 

例)

Apache=127.0.0.1.1048020181736294 [10/Oct/2000:13:55:36 -0700] http://www.example.com/ -> /main/index.html 

Apache=127.0.0.1.1048020181736294 [10/Oct/2000:13:55:36 -0700] http://www.example.com/ -> /main/list.html 

Apache=127.0.0.1.2222223333331111 [10/Oct/2000:13:55:36 -0700] http://www.example.com/ -> /main/item.html 

Apache=127.0.0.1.1048020181736294 [10/Oct/2000:13:55:36 -0700] http://www.example.com/ -> /main/item.html

 【前提 3】会員サイトならログインした時のIDでユーザを判別する

クッキーはブラウザが勝手に記録してくれるので、ユーザが何もしなくてもいいですが、スマホで見ている人、PCで見ている人、また別のブラウザを使い分けている人などを全部「別の人」として見てしまいます。

なので、もしウェブがユーザがメアドやユーザ名を登録する会員サイト(twitterとかgoogleとかamazonとか)であれば、ログインした時のIDでユーザを判断します。

IDで集計すれば、実際のユーザの数になります。

 

例)

Apache=127.0.0.1.tetsuwan_30[10/Oct/2000:13:55:36 -0700] http://www.example.com/ -> /pc/index.html 

Apache=172..168.0.1.tetsuwan_30 [10/Oct/2000:13:55:36 -0700] http://www.example.com/ -> /smatphone/list.html 

Apache=127.0.0.1.2222223333331111 [10/Oct/2000:13:55:36 -0700] http://www.example.com/ -> /main/item.html 

Apache=127.0.0.1.tetsuwan_30 [10/Oct/2000:13:55:36 -0700] http://www.example.com/ -> /main/item.html

 【前提 4】ユーザはどこから来るか、リンクのクリック数を数える

ウェブのお仕事は、そのページを見てもらうことですが、そのためには色々なところからユーザを呼んで見に来てもらう必要があります。(例えば、ネットに広告を出すとか、FacebookTwitter、メルマガなどで紹介するとか)

 

その時、どの広告やどのSNSやメールから来る数が多いのか知りたいのですが、リンクを「http://tetsuwan30.hatenablog.com」とただリンクを貼っても、どれだけクリックしたか分かりません。

そこで、「Google URL Shortener」を使って、それぞれの短縮URLを作ります。

・広告用:https://goo.gl/vaKbNu 

SNS用:https://goo.gl/jqRQwC

それぞれ、表示されるウェブサイトは同じですが、クリック数を別々に計測することができます。

goo.gl

 

では前提を踏まえて、計測の数値をそれぞれ見ていきましょう。

【1】ウェブのページを見てくれた回数 : PV 数(Page View)

ある特定のページ

(例:http://tetsuwan30.hatenablog.com/entry/2017/08/19/234230 )

が何回表示されたか、それを数えるのがPV数。

一人でも数回アクセスがあれば、その分だけ数が増えます。

単純にそのページに来たアクセスログを数えれば、PV数になります。

 

【2】ウェブのページを見てくれた人数 : UU 数(Unique User)

ある特定のページが何人に表示されたか数えるのがUU数。

一人が数回アクセスがあっても一人は一人。

そのため、「1日のうちに何人」「1週間のうちに何人」「1ヶ月のうちに何人」というように、どの期間の間で数えるかが大事になります。

 

【3】ウェブのページへのリンクをクリックした回数 : CT 数(Click Through)

ある特定のページへのリンクを何回 クリックしたかを数えるのがCT数。

一人でも数回クリックがあれば、その分だけ数が増えます。

単純にそのページに来たアクセスログを数えれば、PV数になります。

 

以上を簡単な表にすると、こんな感じにまとまります。

 

CT

PV

UU

2017/9/1

100

100

65

2017/9/1

80

80

45

2017/9/1

90

90

50

 

次回は、impsやCTR、Conversion、CVRについてまとめていきます。

Rでジニ係数を計算してみる

WEBブラウザからRを実行できるサイト「R-Fiddle」を使うと、ブログでコードを貼り付けて実行ができる。

 

試しに、ジニ係数を計算できる「ineq」使ったコード。

右上の「Run」を押すと実行できる。

便利なので、今後も使いたい!

www.r-fiddle.org

自分の今の気持ちを感じとる



それにしても朝からイライラしてる。 

文字にすると、ドキドキして怖い感じがするけど、やっぱりイライラしていたと思います。 あらためて自分がどんな気持ちなのか、朝の出勤の途中、駅まで歩きながら、電車の座席に座りながら、ゆっくりと考えてました。 

気持ちに余裕が無いと、イライラしている自分に気づきにくいものです。気づいても、イライラするの良くないし我慢しなくちゃと、イライラしている気持ちを否定し抑圧してしまいます。 そんな気持ちを抱えながら、なんとなく一息ついたらちょっとだけ落ち着きました。

まあ、イライラしてるんだよなあ、自分は今。とぼんやりとした状態です。 

いつの間にか、そんなぼんやりとした気持ちもお昼ぐらいにはあんまり考えなくなっています。  そのときに残したメモをまた見返すと、自分はイライラしてたんだなあと、朝ちょっと弱っていた自分に思いをはせながら、今はお腹空いたなあと別のことを考えていました。 

そのときそのときに落ち着いて自分の気持ちを感じれるようになれたらいいなと思います。

携帯スマホの判断で、mod_rewriteでUserAgentによる振り分けをする。

すごく久しぶりに.htaccessなどを書いてみる。そういえばこういうのを書いていたなあ、昔は。とちょっと懐かしく感じながら。へへへ。

 

RewriteEngine On
RewriteCond %{REQUEST_URI} !/index.html$
RewriteCond %{HTTP_USER_AGENT} iPhone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Windows.Phone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Android [NC]
RewriteRule ^$ /index_sm.html [R=302,L]

RewriteCond %{REQUEST_URI} !^/m/.*$
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Vodafone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^SoftBank [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^KDDI [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^UP.Browser[NC]
RewriteRule ^.*$ /m/ [R=302,L]

 

 

iWatchを待ちながら

 

アップルvs.グーグル: どちらが世界を支配するのか

アップルvs.グーグル: どちらが世界を支配するのか

 

 

 

今日の深夜、9/10 3:00よりAppleのイベントがあり、そこでは歴史的な発表、おそらくiWatchが発表されると言われています。

 
Android gearがAndroidのコンパニオンとして機能するのに対して、iWatchもそうなるのか。そうではなく、iPhone無しで単独で動く端末だったら、今までに無いデバイスになるかも。
 
それは今日の発表後、少しずつ明らかになると思いますが、ドキドキしちゃいますね。

Xcode6 beta2 Playgroundの設定を少々

Xcode6 beta2をインストール。
Playgroundを少しいじって勉強しております。
  • Xcodeを起動
  • 「Get started with a playground」を開き、ファイル名を付けて保存
  • 「View」-「Utilities」-「Show Utilities」を開く
  • 「Playground Settings」-「Platform」を「iOS」に設定
  • 「Import CoCoa」を削除して「import UIKit」を宣言
  • コードを書いた後に、結果が出てくるので、その右横にある○をクリック
  • 「Assistant Editor」が出てくると、そこで結果がビジュアルで表示される。
 
おお!WWCで見たあんな感じのPlaygroundの画面が!
これでSwiftを触るのがまた楽しくなりました。
 
(参考URL)

 

先取り!Swift

先取り!Swift

 

 

 

Welcome to Swiftを意訳してみる

昨晩、swiftをアップルが発表したので簡単な資料を機械翻訳と下手な英語で意訳します。(しかも途中。。)


Welcome to Swift

Swift(スウィフト)にようこそ

Swift is a new object-oriented programming language for iOS and OS X development. Swift is modern, powerful, and easy to use.

Swiftは、iOSOS X開発用の新しいオブジェクト指向プログラミング言語です。Swiftは現代的で、強力で、使いやすいです。

Safe 安全です


Swift pairs increased type safety with type inference, restricts direct access to pointers, and automatically manages memory—making it easy to create secure, stable software.

Swiftは型推論で増加する型の安全性やポインターへの直アクセスの制限、自動のメモリ管理がセットになって、安全で安定したソフトウエアを簡単に作れます。

modern モダンです


Swift includes optionals, generics, tuples, and other modern language features. Inspired by and improving upon Objective-C, Swift code feels natural to read and write.

Swiftでは、optionals、generics、tuplesやその他のモダンな言語の機能が含まれています。
Objective-Cに影響を受け、さらに改良されたことで、(Objective-Cを書いていた人には)Swiftのコードは自然に読んだり、書いたり出来ます。


Powerful 強力です


Take advantage of powerful pattern matching in Swift to write simple, expressive code. Format strings naturally with string interpolation. Use frameworks like Foundation and UIKit directly from Swift.

単純な、表現力豊かなコードを書くために、Swiftで強力なパターンマッチを利用してください。ストリング展開で自然にストリングの書式を設定してください。使用フレームワークは、Swiftから直接根拠とUIKitに合います。

Interactive 対話的


Use playgrounds to experiment with new technologies, analyze problems, and prototype user interfaces.

新技術の実験に遊び場を使って、問題を分析して、ユーザ・インタフェースの原型を作ってください。


Fast 速い


The Swift compiler applies advanced code analysis to tune your code for performance, letting you focus on writing great apps instead of on implementing complex optimizations.

Swift・コンパイラはパフォーマンスのためにあなたのコードを調整するために先進のコード分析を適用します。そして、あなたに複雑なoptimizationsを実行することにの代わりにすばらしいアプリを書くことに集中させます。