web-dev-qa-db-ja.com

Google +1がマウスの動きを記録するのはなぜですか?

これは、私のウェブサイトにGoogle +1ボックスがあるページにのみあります:

enter image description here

マウスを動かすたびにイベントが発生するようです。誰もがそれが何をしているのか知っていますか?私はGoogleで検索しました(おそらく、これを一度Bingで試してみるべきです!)が、それについて誰も書いていないようです。訪問者の閲覧習慣に関する情報を記録していますか?人間のような行動を検出するのは何らかのキャプチャーですか?

URLの例、クロームでF12を押し、タイムラインに移動してレコードを押し、このページ上でマウスを動かします(この質問に加えて、心配しないでください):

https://plusone.google.com/u/0/_/+1/button?hl=en-US&jsh=r%3Bgc%2F22224365-adc8a19e#url=https://stackoverflow.com/questions /6667544/google-1-recording-mouse-move&size=tall&count=true&id=I1_1310488711647&parent=https://plusone.google.com/u/0/_/+1/button?hl=en-US&jsh=r%3Bgc% 2F22224365-adc8a19e#url = https://stackoverflow.com/questions/6667544/google-1-recording-mouse-move&size=tall&count=true&id=I1_1310488711647

それが価値があること(これは一般的な質問になることがわかります)については、その背後に不吉なものはないと思います、それは役に立たないアーティファクト/バグでさえあるかもしれませんまあ、それは私にとって少し欺くようです。

Google +1プライバシーポリシー

http://www.google.com/intl/en/privacy/plusone/

Google +1ボタンのプライバシーポリシー

2011年6月28日

Googleプライバシーポリシーでは、Google +1ボタンの使用時に提供される情報など、Googleの製品やサービスを使用する際の個人情報の取り扱いについて説明しています。さらに、+ 1ボタンの使用に固有の追加のプライバシー慣行について以下に説明します。

収集する情報とその共有方法

Google +1ボタンを使用すると、世界中の人と情報を共有できます。 Google +1ボタンは、あなたと他の人が我々とパートナーからパーソナライズされたコンテンツを受け取るのに役立ちます。 +1ボタンをクリックしたときに表示していたページに関する情報とともに、何かを+1したという事実がGoogleによって記録されます。あなたの+1は、Googleサービス(検索結果やGoogleプロフィールなど)のプロフィール名や写真、またはウェブサイトやインターネット上の広告で他の人にあなたのプロフィール名と写真の注釈として表示される場合があります。

あなたや他のユーザーにGoogleサービスの利便性を高めるために、+ 1アクティビティに関する情報を記録します。

Google +1ボタンを使用するには、公開されたGoogleプロフィールを世界に公開する必要があります。これには、少なくともプロフィールに選択した名前が含まれます。この名前はGoogleサービス全体で使用され、場合によっては、Googleアカウントでコンテンツを共有するときに使用した別の名前に置き換わることがあります。電子メールアドレスまたはその他の識別情報を持っている人に、GoogleプロフィールIDを表示する場合があります。

収集した情報の使用

上記の使用に加えて、お客様から提供された情報は、Googleのメインのプライバシーポリシーに従って使用されます。

ユーザーの+1アクティビティに関連する集計統計を、公開者、ユーザー、および出版社、広告主、接続サイトなどのパートナーと共有する場合があります。たとえば、サイト運営者に「このページを+1した人の10%がワシントン州タコマにいる」と伝える場合があります。

あなたの選択

プロフィールの[+1]タブで、+ 1したアイテムのリストを表示できます。そのリストから個々のアイテムを削除できます。

サードパーティのウェブサイト(サードパーティのサイトの広告を含む)で、知り合いから+1の推奨を表示しないようにすることができます。

データ(最近の+1など)をブラウザにローカルに保存します。ブラウザ設定でこの情報にアクセスしてクリアできる場合があります。

詳しくは

Googleは、米国のセーフハーバープライバシー原則を順守しています。セーフハーバーフレームワークまたは登録の詳細については、商務省のウェブサイトをご覧ください。

197
Tom Gullen

マウスの動きを乱数ジェネレータにシードしているようです。

マウス移動ハンドラー自体は、次の行に沿って何かを行います。

_var b = ((event.X << 16) + event.Y) * (new Date().getTime() % 1000000);
c = c * b % d;
if (previousMouseMoveHandler) previousMouseMoveHandler.call(arguments);
_

dは_(screen.width * screen.width + screen.height) * 1000000_であり、cは1から始まる変数です。

これらはすべて、匿名関数のスコープにラップされます。匿名関数自体はすぐに評価され、「ランダム」という名前のプロパティに割り当てられた関数を返します。返される関数は次のようになります。

_var b = c;
b += parseInt(hash.substr(0,20), 16);
hash = MD5(hash);
return b / (d + Math.pow(16, 20));
_

hash、BTWは、ページのCookie、場所、new Date().getTime()、およびMath.random()のMD5ハッシュとして始まる変数です。

(もちろん、Googleはいつでも返されるスクリプトを変更する可能性があるため、この分析は無効になることに注意してください)

123
Anomie

実行されている実際のコードは、ここにあるShindigコードから派生しています。

http://svn.Apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/shindig.random/random.js

ここで作成されたセキュアなpostMessageチャネルが、ページ上のスクリプトによって侵害されて任意のアクションが実行されないようにするには、セキュアな乱数が必要です。

Math.random()の使用がなぜ悪いのかを説明する記事を次に示します。

http://baagoe.com/en/RandomMusings/javascript/

48
Paul Lindner

最初にスクリプトをロードできる場合は、addEventListenerをフックして、addEventListenerを設定しているすべてのユーザーをログに記録し、誰がそれを行っているかを確認し、関連するコードを見て、何をしているかを確認します。

Googleコードが読み込まれる前にこれを配置します。

var oldListener = document.addEventListener;
document.addEventListener = function(type, listener, capture) {
    if (type == "mousedown" || type == "mouseup" || type == "mousemove") {
        console.log("type=" + type + " listener=" + listener.toString().slice(0, 80));
    }
    return (oldListener.apply(this, arguments));
}

Window.onmousemoveをリッスンしている内容を確認するには、インターセプトできる関数ではなく、単なる変数の割り当てであるため、後で実行する必要があります。そのため、ページの初期化コードが実行された後、これを実行して、接続されたものをログに記録することがあります。

if (window.onmousemove) {
    console.log(window.onmousemove.toString().slice(0,80));
}
32
jfriend00

7月22日の 整頓されていないコード では、onmousemoveがGb.randomクラスの一部であることがわかります。

Gb.random = function () {
    function a(a) {
        var b = Jb();
        b.update(a);
        return b.ib()
    }
    var b = la.random(),
        c = 1,
        d = (screen[za] * screen[za] + screen[J]) * 1E6,
        e = i.onmousemove || Db();
    i.onmousemove = function (a) {
        if (i.event) a = i.event;
        var b = a.screenX + a.clientX << 16;
        b += a.screenY + a.clientY;
        b *= (new Date)[Ta]() % 1E6;
        c = c * b % d;
        return e[G](i, ka[x][Aa][G](arguments))
    };
    var f = a(k.cookie + "|" + k[B] + "|" + (new Date)[Ta]() + "|" + b);
    return function () {
        var b = c;
        b += ia(f[cb](0, 20), 16);
        f = a(f);
        return b / (d + la.pow(16, 20))
    }
}();

これは、ビットシフトを使用してxとyの合計に2 ^ 16を乗算し、次に他の次元を追加し、これにミリ秒mod 1000000で時間を掛けます。これは間違いなくランダム化アルゴリズムのように見えます。

ページにこのようなものが必要な理由がわかりません。おそらく、Cookieを使用して、自動+1クリックを防止しているのでしょうか。 「+1」をクリックすると、ポップアップ表示されるログイン画面にハッシュとして乱数が追加されているように見えます。URLは「&hl = en-US#RANDOMNUMBER」で終わります

17
NoBugs

その「ページ内分析」ベータ版に間違いないでしょう。カーソルを作成し、ヒートマップをクリックします。

4
Fresheyeball

GuoとAgichteinによるCHI 2010の論文 http://www.mathcs.emory.edu/~qguo3/wip287-guo11.pdf は、Googleがそれを行っている理由に関するさらなるアイデアを提供できると思います。

どうやらマウスの動きは目の動きの大まかなプロキシであり、人々が目の追跡結果を概算することができます。

2
Panos Ipeirotis

Googleがこのマウスの動きデータで何をしているのかを特定することは不可能です。あなた自身を見ることができるように、それはサーバーに負荷と情報の負荷を返していませんので、心配する必要はありません。

1つ目は、おそらく汎用イベントハンドラーです。ソースを読むと、Error( "Invalid listener argument")がスローされる前の行でそれを見ることができると思う理由。次または次のエラーがスローされます(「無効なイベントタイプ」)。発生した行はこれら2つの(イベントに関連する)例外の間にあるため、何らかのイベントハンドラーであると確信しています。デバッガーを使用すると、実際には何もしません(他の機能にジャンプしません)ので、将来の実装のためにそこにあるようです。

2番目の機能は最初の機能と同じです。それはgTalkなので、ステータス(更新中、オンラインなど)を更新すると思います。

3番目はcacheUpdateなどの文字列が散らばっているのを見ることができるので、コンテンツアップデーターまたは類似のもののようです。

私の2セント。

1
zatatatata

これは実際に遠くから取ったものを超えていますが、ここではとにかく行きます...

開始点からさまざまなアトラクタへのマウス移動の軌跡と曲率のタイプを中心に展開します。つまり、ページ上の2つのアイテム/リンクです。

http://sciencestage.com/v/26698/dynamics-and-embodiment-in-language-comprehension.html

要するに、2つの競合リンク/ボタンを配置し、それらのリンクの1つへの軌跡を分析する場合、パターンまたはhowクリックする決定に達したそれらのリンクのうち1つのみ(13:00前後のvidを参照)

1

おそらく、ユーザーが1つのUIアイテムから別のUIアイテムに移動する速度、クリックが失敗する頻度などを測定するために使用します。

私は通常、侵襲的な機能については非常に冷笑的な見方をしていますが、これはプライバシーのリスクとは思いません。非常にきめが細かいので衝撃的ですが、あまり明らかにではありません。マウスの動きは銀行の詳細をエンコードしますか?ポルノ?

Googleなどには、追跡するための高品質のデータがたくさんあります。マウス座標の用途は非常に限られています。

トピックを少し変更するには:

ある程度、人々について収集するデータが多いほど、問題が多くなります。 (シュナイアーなどから)agencies報機関は、絶えず加速するデータ収集によって引き起こされる膨大な数の誤検知に苦しんでいると聞きます-信号対雑音比はひどいです。これはやや面白いと思う。

1
spraff