ブログアクセスの男女比、年齢構成はどうやって調べるか

cookie

先日、当ブログの統計データを公開しました。

この記事では性別や年齢までの統計データについて述べていますが、「なぜそのようなことが分かるのか」という質問が来ましたので少し詳しく解説したいと思います。

Google Analytics

当ブログではGoogle Analyticsというサービスを利用しています。これはGoogleが提供する高機能なアクセス統計を調べてくれるサービスです。このサービスを利用すると、性別や年齢の統計データをも判別できます。そして、なぜ性別や年齢が分かるのか…。それは、公開されていません。なので、タイトルの質問には「分かりません」が正確な答えとなります。

が、おおむねこうやっているであろうという事はこれまでの歴史や用いられてきた技術、類似サービスなどから容易に想像できるのでそれを説明してみます。

Googleがどの様にしてアクセス者の年齢や性別を判別しているのか。SNSやプロバイダが情報を提供しているのでしょうか。そうではなく、実はこれらのデータは推測です。SNSやプロバイダが情報を提供しているわけではありません。(Googleプロフィール情報は参照している可能性が高いです)ではどのようにして推測しているのでしょうか?それはdouble clickという昔存在した企業の歴史を紐解くと背景が分かってきます。

Double Clickの歴史

その昔、1990年台後半から2000年の初めにかけて、Double Clickという米国企業がありました。古くからネットに振れていた人の中には「ああー懐かしい」と思う人も多いかと思います。WikipediaにDouble Clickの大ざっぱな歴史が載っています

Double Clickはネットにおける広告配信サービスの分野で大成功をおさめた企業です。それまでのサービスに比べて何が革新的だったのかというと、Double Clickはアクセス者や掲載元ページの情報を読み取り、その人物に適した広告を表示させるという手法を取っていました。これは見る人をターゲティングするという点で効果が高いですし、その上広告枠を有効活用できるというメリットもあります。

はっきり言えないのですが、この時からおそらく閲覧者の年齢や性別を推測する仕組みというのはあったのだと思います。最低限、そのくらいの情報が無ければ効果的な広告配信は行えませんから。

ちなみに私はこの会社、嫌いでした。アクセス情報の収集はjavascriptで行うのですが、このスクリプトとサーバアクセスがとにかく重く、見るサイトによってはいつまでも表示されないということが多々ありました。ステータスバーに「doubleclick」という文字列が含まれたURLで止まるのですぐに分かるのです。で、いつもいつもイライラしていました。同じような思いを持っていた方も多いのではないでしょうか。

実際、そういうことがあったのでJavaScriptやCookieはオフにして使用するという人々もたくさんいました。その名残でしょうか、「当サイトはJavaScriptとCookieをオンにしてご利用ください」という記載があるページも多々見ます。しかし現在、どちらもオフの設定でブラウジングするひとがごくごく少数なのではないでしょうか。

結局、Double Clickは投資会社に買収され、最終的にGoogleに合流します。ネット広告の頂点に君臨するGoogleの源流があのクソ重いDouble Clickにあると思うと不思議な気分になります。

ちなみに、今でもGoogleの広告配信サーバーのドメイン名にDouble Clickの名前は残っています。それを見るたび、「クソ重い」という気持ちがよみがえります。

ユーザーの年齢や性別を特定する仕組み

ではその肝心の年齢や性別を特定する仕組みですが、おおむね以下のようなプロセスを経て推測します。

  1. Googleはアクセス時のブラウザ環境、IPアドレスなどを元に、 各クライアント(PC、スマホ)に重複しない番号を付けます。
  2. その番号はCookieという仕組みにより、クライアント側に保存されます。保存された番号はWebサーバにアクセスした時にクライアントから必ず送信されるようになります。
  3. Googleは番号を元に、日々の検索キーワードや、検索結果から 実際にアクセスしたページなどを記録し続けます。
  4. そのログを分析し、年齢、性別などを割り出します。 (たとえば、ベビー用品と化粧品を検索していれば30歳前後の女性だろうなどと判断する)

ちなみに、アクセス統計から年齢や性別、嗜好を割り出すやり方は各広告配信会社の最もコアとなる技術でしょうから、やり方が公開されることは無いと思います。

で、この貯め込んだ番号と年齢、性別、嗜好のデータがGoogle Analyticsと結びついているわけです。私のブログをはじめとする、Google Analyticsを利用するサイトにアクセスすると、同時にGoogle Analyticsのサーバにリクエストを送るような仕組みになっているので、ブログにアクセスしたと同時にGoogleへのアクセスも発生します。そこで、Googleはアクセス者の番号を採取できるので、年齢などのデータと結びつけることができるわけですね。

実際に確かめてみる

では、私はどの様な人間であるとGoogleに判断されているのでしょうか。これは下記のページで簡単に調べることができます。

Google Ads広告設定

すると、「男性」「25歳~24歳」「日本語と英語を使用」「興味があるのはJava、SEO、ウェブデザイン、カメラ、コンピュータ、スバル、マツダ、VW、ボルボ、ビジネスニュース」などという単語が列挙されます。まったくその通りです。どうも。えへへ。

また、その「番号」や「リクエスト」がどの様に送信されているのかも当ブログに実際にアクセスしてチェックしてみました。

cookie

上記が「Cookieで保存されている番号」ですね。idと_dtr_という二つのキーと、その値が送信されています。この値が一意に識別するIDだと思われます。ちなみに、値は一応塗りつぶしました。バレても特に問題ないとは思います。(セキュリティに甘いサイトであればセッションハイジャック攻撃というのをされる危険性はあります)

DomainやPathがN/Aとなっているので、Googleのサーバにアクセスするたび、必ずこのIDが送信されることになります。また、期限も無期限となっていますので、ユーザーが削除しない限りは残り続けます。

以下はGoogleのアクセス解析サーバーに送信するリクエストに含まれる情報です。

get

言語、アクセス先URL、画面サイズなどが送信されています。

基本的に、とあるサーバにアクセスしたときにサーバが得ることの出来る情報というのはそれほど多くありません。アクセス元URL、IPアドレス、ホスト名、OS、ブラウザなどが基本的なところで、ちょっとしたテクニックでそれに解像度などが追加される程度です。この情報を最大限活用してアクセス統計や広告配信に役立てていますが、さすがに個人情報を特定することは不可能だと思います。

ビッグデータのプライバシー

Analyticsでは個人を追跡・特定できる機能は当然ありません。アクセス数の比率と数字として値が列挙されるだけです。たとえば、ある人がX月X日とX月Yにアクセスしている…などという情報は分かりません。しかしここまで読んで「なんか気持ちわるい」「やめてほしい」と思う人も多いでしょう。

「ビッグデータ」というのは一つのバズワードですが、大量のデータを統計的に分析して役立てるという発想は今後も継続してあらゆる企業で行われるでしょう。その中でプライバシーをどのように定義し、扱うかというのはデリケートな問題になりつつあるような気がします。有名な例が「JR東日本がSuicaの利用履歴を販売していた」というものです。JR東日本の見解は「個人を特定できる情報は含まれていないので、個人情報としては扱われない」というものであったが、数々の批判を浴びたのは記憶に新しいです。

しかしこういったサービスはJR東日本に限らず数多あります。我々の気づかないところで、我々に付随する何らかの情報が売買され、その情報が処理され、何らかの最適化された形で再び我々の前に登場する。これが良いのか悪いのか、気持ち悪いのか考えすぎなのか、それはひとまずおいておいて、これが現状です。

個人的には、大前提として個人が特定できなければ特に問題は無いと思います。ただ、何を持って個人が特定できるかというのは判断しようがありません。この辺はまだ企業も悩むところなのではないでしょうか。最近は、「当サイトのクッキー利用方針について」などというポップアップが出てくるサイトが増えてきましたが、これは後々ユーザーから突っ込まれた時のために保険の意味で表示させておこうという判断なのでしょう。ただ、クッキーがどうとか言われても何のことか意味不明である人が殆どであると思います。

逃れる方法はあるか

いかなる情報をも漏えいさせたくないという人も居るでしょう。その場合にどのような方法を取ることができるでしょうか。

まず、CookieとJavascriptを使用しない設定とすることが一つ考えられます。そのうえでTorなどのアクセス元隠ぺいソフトを使えば、絶対安心とは言えないですがかなり吐き出される情報は少なくなるはずです。

しかしその一方で、あらゆるサイトが正しく表示できなくなります。それは、現在のあらゆるWebサイトがCookieとJavascriptを必須の技術として利用しているからです。特にログイン操作が入るWebサイトはほぼ全滅でしょう。であれば、あまり実用的な方法とは言えません。

もう一つの方法は、サイト別に許可と不許可を設定する方法です。FireFoxあたりがこの設定ができたと思います。ただ、これも一々許可サイトを指定しなければならないので面倒な方法ではあります。

もう一つ、性善説的な方法ではありますが、Do Not Trackという機能が実装されつつあります。これはサーバに対して「追跡調査しないでね」という意思表示する機能です。これは主要なブラウザでは実装されていますが、この設定が読み取られて正しく機能するかどうかはサーバ側の実装が対応しているかどうかに依ります。技術的に言えば、HTTPヘッダに「DNT」というキーと0もしくは1の値を設定するだけです。それを読み取ってトラッキングしないという機能はサーバが独自に実装しなければなりません。

まとめ

ユーザーの追跡調査を行う方法と、そこから男女比や年齢層を取り出す方法、またそれに絡む問題と回避する方法をそれぞれおおざっぱに説明しました。

気になる人はとりあえずDo Not Trackをオンにするくらいはしていて良いのではないでしょうか。個人的には自分にターゲティングされた広告が表示された方が面白いのでこのままにすると思います。