はじめに

弊社が提供しているプロダクトのひとつに RSS Suite というフィードの作成/配信/効果測定機能を提供しているASPサービスがあります。

このRSS Suiteが備えている効果測定機能では、毎日のフィードの購読者数と各記事のクリック数を集計してレポートとして提供しています。

今回はこの「フィードの購読者数」について、少しお話をしたいと思います。

rsssuite-graph.gif

↑ このような時系列のグラフで購読者数とクリック数を表示しています。

rsssuite-ua-graph.gif

↑ 購読者数はユーザーエージェント別にもレポートされます。

今回はこの「フィードの購読者数」について、少しお話をしたいと思います。

購読者をどう定義する?

まず「購読者」とは何か?ということについてですが、フィードをRSSリーダーなどに登録している人や、フィードを読み込んでいるガジェットを利用している人などが「購読者」にあたると考えられます。

フィードには毎日多彩なユーザーエージェントからのアクセスがあります。フィードを収集するためだけのボットや、Internet Explorerのような普通のブラウザなど、購読者とは見なせないものも多数含まれます。

そのため、それらの中から「購読者」を判別するためには、アプリケーションのユーザーエージェント文字列を見て、そのアプリケーションがRSSリーダー機能を備えているかどうかを地道に調査する必要があります。

RSSリーダーの種類と購読者数

一口にRSSリーダーといっても、いくつかの種類があります。

  1. goo RSSリーダーFeedDemonのようなクライアント型のRSSリーダー
  2. livedoor Readerや Google Readerのようなウェブ型のRSSリーダー
  3. FirefoxやInternet Explorer 7.0のようなRSSリーダー機能つきブラウザ

クライアント型のRSSリーダー

このタイプのRSSリーダーの場合、一つのRSSリーダーにつき利用者は一人であろうという前提で購読者数を集計しています。

ウェブ型のRSSリーダー

このタイプのRSSリーダーでは、クローラーが一つであっても利用者は多数存在します。それらの多くはユーザーエージェントに購読者数を付与してフィードを収集しているので、その情報を元に購読者数を集計しています。

このタイプで代表的なRSSリーダーのユーザーエージェントは次のようなものです。

livedoor Reader
livedoor FeedFetcher/0.01 (http://reader.livedoor.com/; 9 subscribers)
Google Reader
Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=1633438417581487553)
Bloglines
Bloglines/3.1 (http://www.bloglines.com; 2 subscribers)
はてなRSS
Hatena RSS/0.3 (http://r.hatena.ne.jp; 21 subscribers)

このようにユーザーエージェントの情報を元にすれば購読者数を把握できるのですが、逆にいうとその情報を信用する以外に購読者数を知る術がないというのが現状です。

RSSリーダー機能つきのブラウザ

RSSリーダー機能つきのブラウザの場合、ポイントとなるのは以下の2つです。

  • ブラウザの種類を適切に判別すること
  • ブラウザのバージョンを適切に判別すること

これらはフィードの効果測定において重要なことであり、かつ、非常に手間のかかるところでもあります。ですので、このブラウザの判別について、もう少し掘り下げてみたいと思います。

ブラウザの判別

ブラウザの種類を適切に判別すること

IEのレンダリングエンジンを利用しているブラウザの多くは、ユーザーエージェントの文字列がIEのものと酷似しています。たとえば Lunascapeは次のようなユーザーエージェントを持っています。

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04324.17; Lunascape 4.1.3)

上記の場合、IE7.0ではなく Lunascape 4と判別しなければなりません。

また、IEのユーザーエージェントには見たことのない文字列が多数入っていることが多く、その中に特定のブラウザを示す文字列があるかどうかを見つける必要があります。

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts-AskJeevesJapan; .NET CLR 1.1.4322; SpamBlockerUtility 4.8.4)

上記の場合、FunWebProductsやSpamBlockerUtilityという文字列がありますが、これらはブラウザを示すものではないため、上記のユーザーエージェントはIE7.0と判別される必要があります。

ブラウザのバージョンを適切に判別すること

RSSリーダー機能が搭載されていれば、そのブラウザからのアクセスは「購読」と見なせる可能性がありますが、RSSリーダー機能が搭載されていないブラウザの場合は「購読」と見なすことはできません。

IEではバージョン7以降にRSSリーダー機能が搭載されています。しかし、バージョン6以前には搭載されていませんでした。

同様に、Safariもバージョン2.0以降でRSSリーダーが搭載されていて、それ以前のバージョンには搭載されていませんし、OperaやNetscapeでも同じくバージョンによってRSSリーダー機能が搭載されているものと搭載されていないものがあります。

世の中には数万種類のブラウザがあり、ユーザーエージェント文字列もそれと同じ数だけ存在します。そのため、どの文字列がブラウザを示すものであるか、どのブラウザにRSSリーダー機能が搭載されているかを常に調べておく必要があります。

まとめ

今回は、フィードの購読者数をユーザーエージェント文字列を元にカウントする際のポイントをお話しました。ポイントは以下の通りです。

  • 購読者の定義
  • 購読者数つきのユーザーエージェント
  • ブラウザの種類の判別
  • ブラウザのバージョンの判別
  • 日々の調査

ユーザーエージェントの判別はルールさえあれば自動的に実行できますが、新種のユーザーエージェントが登場したときはその都度ルールの追加をしていく必要があります。

そのためフィードフォースの技術チームでは、ユーザーエージェントの調査を毎日持ち回りでおこなっていて、新しいユーザーエージェントが出現した際にも迅速にレポートに反映できる仕組み作りに取り組んでいます。

今回お話した内容以外にもユーザーエージェントに関していくつか面白い話があるのですが、それはまた機会があればお話したいと思います。

  • このエントリーをはてなブックマークに追加
エンジニア募集中です!

私たちは新しい仲間を募集しています。