Google +1 neden fare hareketlerimi kaydediyor? [kapalı]


196

Bu yalnızca web sitemde Google +1 kutusunun bulunduğu sayfalarda:

resim açıklamasını buraya girin

Her fare hareketinde bir olayı ateşliyor gibi görünüyor. Ne yaptığını bilen var mı? Google'da arama yaptım (belki de Bing'i bir kez denemeliyim!) Ama kimse bu konuda yazmamış gibi görünüyor. Ziyaretçilerimin alışkanlıkları tarama alışkanlıkları hakkında bilgi kaydediyor mu? İnsanı behviour gibi algılamak bir çeşit CAPTCHA mı?

Örnek URL, Chrome'da F12 tuşuna basın, zaman çizelgesine gidin ve kayda basın, ardından farenizi bu sayfanın etrafında hareket ettirin (artı bu sorudan endişe etmeyin):

https://plusone.google.com/u/0/_/+1/button?hl=en-US&jsh=r%3Bgc%2F22224365-adc8a19e#url=/programming/6667544/google -1-kayıt-fare-hareket ve boyut = uzun ve sayısı = true id = I1_1310488711647 ve ana = HTTPS: //plusone.google.com/u/0/_/+1/button hl = tr & JSH = r% 3Bgc% 2F22224365-adc8a19e # url = https: //stackoverflow.com/questions/6667544/google-1-recording-mouse-move&size=tall&count=true&id=I1_1310488711647

Değer için (bunun popüler bir soru olacağını görebiliyorum), arkasında uğursuz bir şey olduğunu düşünmüyorum, hatta işe yaramaz bir eser / hata bile olabilir, ancak bir tür izleme yapıyorsa, bana biraz aldatıcı geliyor.

Google +1 gizlilik politikası

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

Google +1 Düğmesi Gizlilik Politikası

28 Haziran 2011

Google Gizlilik Politikası, Google +1 düğmesini kullandığınızda sağlanan bilgiler dahil, Google'ın ürün ve hizmetlerini kullandığınızda kişisel bilgileri nasıl ele aldığımızı açıklar. Ayrıca, +1 düğmesini kullanımınıza özgü ek gizlilik uygulamalarımızı açıklar.

Topladığımız bilgiler ve nasıl paylaşıldığı

Google +1 düğmesi, bilgileri dünyayla herkese açık olarak paylaşmanın bir yoludur. Google +1 düğmesi size ve diğerlerine Google'dan ve iş ortaklarımızdan kişiselleştirilmiş içerik almanıza yardımcı olur. +1 düğmesini tıkladığınızda, görüntülemekte olduğunuz sayfayla ilgili bilgilerin yanı sıra bir şeyi + 1'lediğiniz Google tarafından kaydedilecektir. + 1'leriniz başkalarına Google hizmetlerinde (arama sonuçlarında veya Google Profilinizde) veya İnternet'teki web sitelerinde ve reklamlarda başka bir yerde profil adınız ve fotoğrafınızla birlikte bir ek açıklama olarak görünebilir.

Size ve diğer kullanıcılara Google hizmetlerinde daha iyi bir deneyim sunmak için +1 etkinliğiniz hakkında bilgi kaydedeceğiz.

Google +1 düğmesini kullanmak için, dünya genelinde görünür olan ve en azından profil için seçtiğiniz adı içeren herkese açık bir Google Profilinizin olması gerekir. Bu ad Google hizmetlerinde kullanılacak ve bazı durumlarda Google Hesabınız altında içerik paylaşırken kullandığınız başka bir adın yerini alabilir. Google Profil kimliğinizi, e-posta adresinize veya diğer tanımlayıcı bilgilere sahip kişilere gösterebiliriz.

Toplanan bilgilerin kullanımı

Yukarıda açıklanan kullanımlara ek olarak, bize sağladığınız bilgiler ana Google Gizlilik Politikamıza tabidir.

Kullanıcıların +1 etkinliğiyle ilgili toplu istatistikleri herkesle, kullanıcılarımızla ve yayıncılar, reklamverenler veya bağlı siteler gibi iş ortaklarıyla paylaşabiliriz. Örneğin, bir yayıncıya “Bu sayfayı + 1'leyenlerin% 10'unun Washington Tacoma'da olduğunu” söyleyebiliriz.

Senin seçimlerin

+ 1'lediğiniz öğelerin listesini Profilinizdeki +1 sekmesinde görüntüleyebilirsiniz. Bu listeden öğeleri tek tek kaldırabilirsiniz.

Tanıdığınız kişilerden üçüncü taraf web sitelerinde (üçüncü taraf sitelerdeki reklamlar dahil) +1 önerilerini görmeyi devre dışı bırakabilirsiniz.

Verileri (son + 1'leriniz gibi) tarayıcınızda yerel olarak saklayacağız. Bu bilgilere tarayıcı ayarlarınızdan erişebilir ve bunları silebilirsiniz.

Daha fazla bilgi

Google, ABD Güvenli Liman gizlilik ilkelerine uyar. Safe Harbor çerçevesi veya kaydımız hakkında daha fazla bilgi için Ticaret Bakanlığı'nın web sitesine bakın.


3
Human like behavior? Bu ilginç bir düşünce. Bir keresinde benzer bir fare izleme kodunu gördüm ki bu küresel değişkenlerde X / Y koordinatlarını kaydediyordu. Daha sonra jQuery eklentisinde özel kaydırmayı başlatmak / durdurmak / iptal etmek için kullanıldılar. Bu küresel izleme olayından daha iyi bir uygulama vardı (sonunda değiştirdim).
Mrchief

7
@Mrchief, bazı poker müşterileri otomatik oyuncuları tespit etmek için fare hareketlerini kullanıyor, belki de Google'ın, profil oluşturmaya ve birçok siteyi + 1'leyen botlara karşı etkili bir savunma olduğunu düşünebilir, ancak onlara adil olmayan bir rekabet avantajı sağlayarak sitelerine ağırlık verir. Gerçi kim bilir.
Tom Gullen

1
Merak ediyorum Facebook neden böyle bir şey yapmıyor ... (ya da öyle mi?)
Mrchief

7
Bir çeşit UI testi için olabilir. Google'ın a / b testi yapmayı çok sevdiğini biliyorum, bu nedenle 41 ton mavi testi bir süre önce geri döndü. Belki de daha iyi bir kullanıcı arayüzü sağlamak için kullanıcının sayfada nasıl hareket ettiğini izlemeye çalışıyorlar.
Greg Guida

Kullandığınız araç nedir?
Sid

Yanıtlar:


123

Fare hareketlerinizle rastgele bir sayı üreteci ekiyor gibi görünüyor.

Fare hareket işleyicisinin kendisi, aşağıdakilerin çizgileri boyunca bir şeyler yapar:

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

dolduğu (screen.width * screen.width + screen.height) * 1000000ve c1 olarak başlar bir değişkendir.

Tüm bunlar, "rastgele" adlı bir özelliğe atanan bir işlevi döndürmek için derhal değerlendirilen anonim bir işlev kapsamındadır. Döndürülen işlev şöyle görünür:

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

hashVe ödeyecekleri sayfanın çerezleri, yer, MD5 hash olarak başlar bir değişkendir new Date().getTime()ve Math.random().

(Elbette, Google'ın döndürülen komut dosyasını herhangi bir zamanda değiştirebileceğini ve bu nedenle bu analizi geçersiz kılabileceğini unutmayın)


4
Harika cevap teşekkürler, neden rastgele bir sayıya ihtiyaç duyacağına dair bir fikir var mı? Fare hareketlerinin rastgele bir sayı üretmenin oldukça iyi bir yolu olduğunu anlıyorum, ancak bu mobil cihazlarda başarısız olmaz (fare yok)
Tom Gullen

27
Math.random()Mevcut zaman damgasından tohum almıyor mu? Öyleyse, bunun gibi yaygın bir şekilde yerleştirilmiş bir düğmeyle, çok sayıda çarpışma beklersiniz. Ekstra çabaları açıklayabilir.
Yahel

7
@yahelc: Bu yardımcı olabilir . Kısacası, 2008'de tarayıcıların çoğu, işlem başlangıcında veya Math.random () ilk kez çağrıldığında (işlemde veya pencerede / sekmede) yalnızca bir kez ekilmişti. Elbette o zamandan beri işler değişmiş olabilir.
Anomie

3
Bu garip görünüyor - eğer amaç bu olsaydı, sadece window.crypto.getRandomValues ​​kullanmazlardı: (function () {var buf = new Uint8Array (1); window.crypto.getRandomValues ​​(buf); alert (buf [ 0])}) ()
Zengin Bradshaw

3
Daha iyi bir rastgele jeneratör tohumu vermek olduğunu varsayarsak, Google tarafından sağlanan bir tohum yeterli olur, değil mi? Veya en az bir veya iki fare hareketi yapar. Şu anki yol biraz şüpheli görünüyor. Google'ın burada başkalarının veremediği bir şeffaflık göstermesi iyi olurdu.
Wernight

47

Yürütülmekte olan gerçek kod, burada bulunan Shindig kodundan türetilir:

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

Burada oluşturulan güvenli postMessage kanalının, keyfi eylemleri yürütmek için sayfadaki komut dosyaları tarafından ele geçirilememesini sağlamak için güvenli bir rasgele sayı gerekir.

Math.random () kullanmanın neden kötü olduğunu açıklayan bir makale:

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


32

Komut dosyanızı ilk olarak yükleyebilirseniz, addEventListener'ı bağlayabilir ve addEventListener'ı ayarlayan herkesi günlüğe kaydedebilir ve kimin yaptığını görebilir ve ardından ilgili koda bakarak ne yaptıklarını görebilirsiniz.

Google kodu yüklenmeden önce bunu yerine koyun:

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'u neyin dinlediğini görmek için, daha sonra yapmanız gerekir, çünkü bu sadece değişken bir atamadır, kesebileceğiniz bir işlev değildir. Bazen sayfanın başlatma kodu çalıştıktan sonra, ona bağlanan şeyi günlüğe kaydetmek için bunu yaparsınız:

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

2
İyi fikir, ancak komut dosyası eski stili window.onmousemoveayarlarsa (Google'ın komut dosyası gibi) bu işe yaramaz .
Anomie

Eğer durum buysa, bunu da aynı şekilde takabilirsiniz.
jfriend00

@ Ben Alpert - Yukarıdaki cevabım için window.onmousemove için bazı kodlar ekledim.
jfriend00

İşlev kodunun kendisi keyfi olarak uzun olabilir. Konsola birden fazla kb'yi dökmek istemiyoruz, bu yüzden günlük penceresini boğmayacak daha kısa bir sınır seçtim. Bu, nerede olduğunu tanımlamak için yeterli kod değilse, sayı artırılabilir, ancak uzunluğun üst sınırı yoksa günlük penceresindeki şeyleri görüntülemek pratik olmayabilir.
jfriend00

17

Gelen düzenli kod Tem 22, sen onmousemove Gb.random sınıfının bir parçasıdır fark edeceksiniz:

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 ve y toplamlarını bitshift kullanarak 2 ^ 16 ile çarpıyor, sonra başka boyutlar ekliyor ve bunları milisaniye mod 1000000'de zamanla çarpıyor. Bu kesinlikle rastgele bir algoritma gibi görünüyor.

Sayfanın neden böyle bir şeye ihtiyacı olduğundan emin değilim, belki bir çerez kullanıyor ve otomatik +1 tıklamasını önlüyor? "+1" düğmesini tıkladığınızda açılan giriş ekranında karma olarak rastgele bir sayı eklenmiş gibi görünür, URL "& hl = tr-TR # RANDOMNUMBER" ile biter


4

Size "Sayfa İçi Analytics" Beta'sına bahse girerim. Bir imleç oluşturma ve ısı haritasına tıklayın.


Ayrıca, bu node.js uygulamasını tam olarak yapan bazı iyi projeler de var , örneğin
Pier Paolo Ramon

+1 (sic). İnsanların neyin yararlı olduğunu bilmek için nereye tıkladığını bilmek iyi ve whate yeri reklamlar için en iyisidir.
rds

Güzel fikir, ama konu ile ilgisi yok;)
naugtur


1

Muhtemelen, kullanıcıların bir kullanıcı arayüzü öğesinden diğerine ne kadar hızlı geçtiğini, ne sıklıkta kaçırdığını vb. Ölçmek için kullanıyorlar.

Normalde invaziv özellikler hakkında derin bir alaycı görüşüm var ama bunun bir gizlilik riski olduğunu düşünmüyorum. Şok edici çünkü alışılmadık derecede ince taneli, ama çok açıklayıcı değil . Fare hareketiniz banka ayrıntılarını kodluyor mu? Porno?

Google ve benzerleri, sizi takip etmek için bol miktarda yüksek kaliteli veriye sahiptir. Fare koordinatları çok sınırlı bir uygulamaya sahiptir.

Konu dışı biraz gitmek için:

Bir dereceye kadar, insanlar hakkında ne kadar çok veri toplarsanız o kadar fazla problem yaşarsınız. (Schneier ve benzerlerinden) istihbarat teşkilatlarının sürekli hızlanan veri toplanmaları tarafından tetiklenen çok sayıda yanlış pozitiften muzdarip olduğunu duydum - sinyal-gürültü oranı uçsuz bucaksız. Bunu biraz eğlenceli buluyorum.


Google +1 komut dosyalarıyla, mini oyunlarda görünen, fareyi kontroller için kullanan ... Gerçekten çok fazla gürültü olacak. XD
PicoCreator

1

Google'ın bu fare hareketi verileriyle ne yaptığını kesin olarak söylemek mümkün değil. Kendinizi görebileceğiniz gibi, yükleri ve çok sayıda bilgiyi sunucuya geri döndürmüyor, bu nedenle endişelenecek bir şey yok.

Birincisi muhtemelen genel bir olay işleyicisidir. Nedeni sanırım kaynağı okuduysanız, atma Hatası olmadan önce satırda görebilirsiniz ("Geçersiz dinleyici argümanı"); ve bir sonraki veya bir sonrakinden sonra hata var ("Geçersiz olay türü"). Atış çizgisi bu iki (olayla ilgili) istisna arasında olduğundan, bunun bir tür olay işleyicisi olduğundan eminim. Hata ayıklayıcı kullanarak, gerçekten hiçbir şey yapmaz (başka bir işleve atlamaz), bu yüzden gelecekteki uygulama için orada görünüyor.

İkinci fonksiyon birinciyle aynıdır. GTalk olduğu için, durumunuzu (uzakta, çevrimiçi vb.) Güncellediğini düşünüyorum.

Üçüncüsü, içerik güncelleyici veya benzer bir şey gibi görünüyor, çünkü cacheTimeout gibi dizeleri etrafına dağılmış olarak görebilirsiniz.

Benim 2 sentim.


1

bu çok uzaklardan çok ötesinde, ama yine de gidiyor ...

bir mousemovement'in başlangıç ​​noktasından farklı çekicilere doğru yörünge türü ve eğriliği etrafında döner, yani bir sayfada 2 öğe / bağlantı alır.

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

Kısacası, iki rakip bağlantı / düğme koyarsanız ve bu bağlantılardan birine giden yörüngeyi analiz ederseniz, bir model veya bu bağlantılardan yalnızca 1 tanesini tıklama kararına nasıl ulaştığınızı belirtebilirsiniz (bkz. vid 13:00)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.