お知らせ・ブログ

googleアナリティクスは【正規表現】と仲良しです!!

Googleアナリティクス

WEBサーバから得られるログを解析する為に、googleアナリティクスで複雑な条件でアクセス解析をする場合は、正規表現の利用が有効です。
ここではgoogleアナリティクスの利用を前提にした場合の、正規表現の利用方法について調べてみました。


正規表現って何?

前提知識

文字を表す正規表現の多くは文字クラスの略記法です。たとえば、「\d」は「[0-9]」と同じ意味になります。極端に言うなら、「.」ピリオドは「[^\r\n]」改行以外の文字すべてと書き換えることができます。主な略記法を下記に示します。略記法 意味 文字クラス記法 備考\d 数字 [0-9]  \D 数字以外の文字 [^0-9]  \s ホワイトスペース [ \t\r\n] 全角スペースを含めたいときは「全角半角を区別」がONにするか、素直に[ \s]とする。EMスペースなどにはマッチしない。\S スペース以外の文字 [^ \t\r\n]  \w 任意の単語文字   \W 単語文字以外の文字 \u 任意の大文字 [A-Z]  \U 大文字以外の文字 [^A-Z]  \l 任意の小文字 [a-z]  \L 小文字以外の文字 [^a-z]
引用元:正規表現の文字クラスまとめ – 名もないテクノ手 http://d.hatena.ne.jp/seuzo/20090309/1236525090
コメント:基本的な正規表現を抜粋しました。更に知りたい場合は、詳しく調べてみましょう。そして、必ず自分で検証してみると理解が深まります。


UNIXとの密接な関係

正規表現の起源は、いずれも理論計算機科学の一分野であるオートマトン理論や形式言語理論にみることができる。これらは計算のモデル化(オートマトン)や形式言語の分類方法などを扱う学術分野である。数学者のスティーヴン・クリーネは1950年代に正規集合と呼ばれる独自の数学的表記法を用い、これらの分野のモデルを記述した。ケン・トンプソンはテキストファイル中のパターンにマッチさせる手段として、この表記法をエディタQEDに導入した。彼はこの機能をUNIXのエディタedにも追加し、後に一般的な検索ツールであるgrepの正規表現へと受け継がれていった。これ以降、トンプソンの正規表現の適用にならい、多くのUNIX系のツールがこの方法を採用した(例えば expr、awk、Emacs、vi、lex、Perl など)。
引用元:正規表現 – Wikipedia https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
コメント:正規表現が発明されたのは1950年代ですから、日本国内で8ビットレベルのCPU処理がやっとという時代以前の技術です。そして1970年代に登場した、UNIXで動作するプログラミングツールの中に取り込まれる事になり、現在に至るという訳です。今日ではWEBサイト構築にあたり、様々な処理を行う為に使用されるプログラミング言語であるJavaScriptやPHP等にも利用されています。


メリット

正規表現を使用する利点 現在、正規表現はさまざまなテキストエディタやプログラミング言語にあらかじめ組み込まれて、幅広く使用されています。 正規表現を使用する最大のメリットは文章処理作業の効率化を図れることです。とくに、文書ファイルを製作しているとき、一括して文字列の置換を行いたいときなどに威力を発揮します。標準的な検索・置換機能でもある程度の作業は可能ですが、正規表現を使用すれば「行頭の単語のみ」や「前にXXという文字列があるもの」というような複雑な条件付けを行うことが可能なのです。
引用元:正規表現オンライン教材 http://www2.otani.ac.jp/fkdsemi/seikihyogen/kiso2.html
コメント:アルファベットや特殊記号(#.,%など)にも対応し、面倒なマルチバイト文字である日本語の処理も簡便に出来るので、非常に便利なツールだと言えるでしょう。


おまけ:IT系の国家試験にも出題された事がある

基本情報技術者 平成28年春期午前問3UNIXにおける正規表現 [A−Z]+[0−9]* が表現する文字列の集合の要素となるものはどれか。ここで,正規表現は次の規則に従う。[A−Z]は,英字1文字を表す。[0−9]は,数字1文字を表す。*は,直前の正規表現の0回以上の繰返しを表す。+は,直前の正規表現の1回以上の繰返しを表す。ア 456789イ ABC+99ウ ABC99*エ ABCDEF[この問題の出題歴]基本情報技術者 H14春 問10基本情報技術者 H17秋 問10分類テクノロジ系 >> 基礎理論 >> 情報に関する理論正解エ
引用元:問3 正規表現が表現する文字列 平成28年春期|基本情報技術者試験.com http://www.fe-siken.com/kakomon/28_haru/q3.html


googleアナリティクスと正規表現は、どんな関係があるのか?

今や知らない人はいないであろうと思われるgoogleから、ビーコン型アクセス解析ソフトであるgoogleアナリティクスを無料提供されています。しかし対象となるデーターが無ければ、googleアナリティクスを適切に活かす事は出来ません。そのデーターは、IT・WEB業界では隠語として生ログと呼ばれています。そしてその生ログには、ユーザーがWEBサイトを利用した際に得られる情報が詰まっており、一般的に巨大なサイズのテキストデータ−になりがちですが、googleアナリティクスがあれば問題なく解析可能です。勿論、googleアナリティクスのフィルタリング機能を利用すれば、簡単に特定のデーターを抽出し分析する事が出来ます。しかし複雑な条件での抽出をするというのは、googleアナリティクスの基本機能を利用しても面倒な作業である事が多いのです。そこで、正規表現をgoogleアナリティクス上で利用する、というアイディアが生まれました。結果、複雑な条件を指定する必要がある場合でも、欲しい情報だけを簡単に抽出出来る様になるという訳です。

googleアナリティクス上で、正規表現を利用し抽出を掛けた場面
引用元:googleアナリティクス上で、正規表現を利用し抽出を掛けた場面 http://web-tan.forum.impressrd.jp/e/2010/06/28/8269/page/1
コメント:意外と簡単そうに見えます。もちろん、多少の学びは必要になりますが、それに見合う物は十分にあると言えるでしょう。


生ログとは?

生ログとは、WebサーバーやFTPサーバーに記録された一切加工されていない生の状態のアクセスログを意味します。アクセス者のアクセス時間・地域・リモートホスト、キーワードなどの詳細は生ログとしてWebサーバに蓄積されます。蓄積された生ログはアクセス解析ソフトにて分析することが可能です。現在、ログ解析を簡単に行うことのできるスールやソフトが数多く公開されており、自分のPCにインストールして利用することができます。生ログをアクセス解析ソフトに読み込ませることにより、詳細なデータを分かりやすい形で抽出することができます。
引用元:生ログとは?|WEB制作ならプロトソリューション http://www.protosolution.co.jp/glossary/web/na/rawlog.html
コメント:技術者等の打ち合わせ等で良く使われる用語です。


googleアナリティクスでの正規表現を利用したフィルタリング


基本編

正規表現を使うとき・コンテンツ>>上位のコンテンツ、で特定のURLのみを表示させたい・カスタムフィルターで、特定のキーワードを含むURLのみをトラッキングしたい・コンバージョン設定で、動的なURLも柔軟に指定したいグーグルアナリティクスで正規表現を使えば、柔軟なURL指定が出来るのです。たとえば、「上位のコンテンツ」で、まずは普通に「twitter」とだけ絞り込み。しかし、正規表現を使い、絞り込み条件に「^/twitter」としますと、・URLの前の方で、「/twitter」と一致するものはヒット・URLの途中にある「/twitter」はヒットせず (例:news/twitter.html はヒットしない)
引用元:Google Analytics で正規表現を使う方法 http://www.kagua.biz/help/ga-seikihyougen.html
コメント:まずはgoogleアナリティクスで正規表現を利用する際の、基本的な例として身につけると後々の応用も効くようになります。

正規表現の細かい解説
引用元:正規表現の細かい解説 http://www.kagua.biz/help/ga-seikihyougen.html
コメント:この図で良く理解しましょう。


実践編

「実際は同じコンテンツなのですが、動的に URL が変わってしまうページを、1つのステップとして登録する方法はありませんか」こういったケースは目標到達プロセスのステップを正規表現で定義することで解決できます。例えば下記の URL を同一のステップと見なす場合、下記の手順でプロセスを設定してください。/shop/usrid/1086743370-f5262f0aeb03.php/shop/usrid/1138448278-1d70353831a6.php/shop/usrid/1129303770-c48f2ea64920.php1) まず下記のような正規表現を作成してステップに登録します。/shop/usrid/.*\.php上記の『 .* 』は全ての文字列にマッチするという表現になります。『 \ 』 マーク( 使用しているフォントによって半角のバックスラッシュ または、半角のエンマーク で表示されます ) は正規表現として意味をもつ『 . 』を無視するためのエスケープ処理です。2) 次に一致タイプから [正規表現一致] を選択します。Google Analytics が目標到達プロセスの URL を認識する方法は一致タイプによって異なるので、一致タイプは必ず [正規表現一致] を選択してください。また正規表現一致を選択した場合は、目標 URL を含む全てのステップを正規表現とみなすのでご注意ください。
引用元:アナリティクス 日本版 公式ブログ: 目標到達プロセスと正規表現 https://analytics-ja.blogspot.jp/2008/02/how-to-set-up-funnels-and-tips-for.html
コメント:正規表現を利用すればここまでの事が出来るとは、驚きです。正規表現は実に奥が深いので、工夫次第で色々な事が出来るでしょう。

googleアナリティクス
引用元:googleアナリティクスで見ると、こうなります。 https://analytics-ja.blogspot.jp/2008/02/how-to-set-up-funnels-and-tips-for.html
コメント:googleアナリティクスと正規表現は、組み合わせて使用するべきだという事が素直に伝わって来ます。