Apakah ada pengaturan di Google Analytics untuk menekan penggunaan cookie bagi pengguna yang belum memberikan izin

171

Menurut EU Pasal 5 (3) Petunjuk E-Privasi (alias 'The Cookie Laws'), situs web yang menargetkan pengguna UE harus mendapatkan persetujuan memilih dari pengguna sebelum mereka menetapkan cookie.

Lihat Panduan ICO

Saya mencoba untuk menyelesaikan ini dengan Google Analytics di situs web saya.

Saya akan membayangkan bahwa Google Analytics (GA) dapat melakukan pengumpulan data analitik pada tingkat tertentu tanpa memerlukan penggunaan cookie.

Namun, saya tidak dapat menemukan info tentang ini (di situs Google / panel pengaturan) tentang cara menyampaikan informasi tentang 'keadaan persetujuan' kembali ke Google selama permintaan halaman. Jadi, satu-satunya pilihan saya adalah saya tidak boleh menyematkan kode tag Google sama sekali jika pengguna belum secara eksplisit memberikan persetujuan. Yang sepertinya agak drastis.

Membiarkan skrip sisi server saya memasang hasConsentedToCookies=FALSEbendera di tag JavaScript akan memungkinkan saya untuk menginstruksikan layanan Google untuk berjalan dengan cara terdegradasi dengan anggun.

Apakah ada pengaturan di Google Analytics untuk menekan penggunaan cookie untuk pengguna yang belum memberikan persetujuan?

Jika demikian, di mana saya dapat menemukan info tentang ini?

JW.
sumber
2
Pembaruan: Pertanyaan ini digunakan untuk bertanya tentang Adsense dan Analytics, tetapi karena jawaban untuk masing-masing mungkin berbeda, saya telah mengekstrak aspek 'Google Adsense' dari pertanyaan ini untuk membuat masing-masing lebih kohesif.
JW.
Beberapa diskusi menarik di news.ycombinator.com/item?id=4032633
Eduardo
Jika Anda tidak tahu ini: Pernahkah Anda mendengar tentang piwik? ( piwik.org )
TheHippo
Pertanyaan yang bagus dan menarik!
Rob
Google mengatakan bahwa Anda dapat menonaktifkan cookie namun sepertinya tidak berfungsi atau saya melakukan sesuatu yang salah. Tautan: developers.google.com/analytics/devguides/collection/…

Jawaban:

149

EDIT (2019): Jawaban di bawah ini mendahului GDPR dan kemungkinan membutuhkan revisi.

Google Analytics memiliki satu set API baru untuk membantu kepatuhan dengan cookie opt-out. Inilah dokumentasinya , dan inilah dokumen bantuan mereka .

Ada beberapa ambiguitas mengenai apakah Regulasi Cookie UE (seperti yang diterapkan di negara-negara anggota) mensyaratkan bahwa pelacakan analisis web pasif membutuhkan mekanisme untuk kepatuhan. Jika Anda khawatir dengan satu atau lain cara, konsultasikan dengan pengacara. Google memberdayakan Anda untuk membuat keputusan tentang bagaimana Anda ingin melanjutkan.

Mereka akan menyerahkan detail implementasi kepada Anda, tetapi, idenya adalah, setelah Anda menentukan apakah akan melacak pengguna di Google Analytics atau tidak, jika jawabannya adalah untuk tidak melacak, Anda akan menyetel properti berikut menjadi true sebelum Google Analisis berjalan:

window['ga-disable-UA-XXXXXX-Y'] = true;

Di mana UA-XXXXXX-Y adalah ID akun Anda di Google Analytics

Seperti yang dicatat oleh poster lain, Google Analytics mengandalkan cookie. Jadi, Anda tidak dapat melakukan pelacakan apa pun tanpa cookie. Jika Anda telah menentukan bahwa seseorang tidak akan ditelusuri untuk dilacak, Anda harus menerapkan sesuatu seperti ini:

if(doNotCookie()){
   window['ga-disable-UA-XXXXXX-Y'] = true;
}

Memilih di

Ini memang memerlukan sedikit jujitsu ketika Anda pertama kali memuat Google Analytics, karena properti ini perlu disetel sebelum Google Analytics berjalan untuk mencegah pelacakan agar tidak pernah terjadi, yang berarti, untuk pendekatan "pilih ikut pelacakan", Anda d mungkin perlu menerapkan mekanisme di mana, pada kunjungan pertama, Google Analytics secara otomatis dinonaktifkan dengan tidak adanya cookie opt-in (cookie yang menentukan preferensi cookie diizinkan secara eksplisit), dan kemudian, jika opt-in terjadi, kembali menjalankan Google Analytics. Pada tampilan halaman berikutnya, semua akan berjalan dengan lancar.

Bisa terlihat seperti (pseudo-code):

if( hasOptedOut() || hasNotExpressedCookiePreferenceYet() ){ //functions you've defined elsewhere
     window['ga-disable-UA-XXXXXX-Y'] = true;
}
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXX-Y']);
  _gaq.push(['_trackPageview']);


  function onOptIn(){ //have this run when/if they opt-in.
      window['ga-disable-UA-XXXXXX-Y'] = false;
      //...snip...
      //set a cookie to express that the user has opted-in to tracking, for future pageviews
      _gaq.push(['_trackPageview']); // now run the pageview that you 'missed'
   }

Menyisih

Dengan pendekatan ini, Anda akan mengizinkan pengguna untuk keluar dari pelacakan, yang berarti Anda akan menggunakan cookie untuk mengatur ga-disable-UA-XXXXXX-Y'properti dan cookie untuk mengelolanya di masa depan:

if( hasOptedOut() ){ // function you've defined elsewhere 
     window['ga-disable-UA-XXXXXX-Y'] = true;
}

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXX-Y']);
  _gaq.push(['_trackPageview']);
Yahel
sumber
2
Tiny nitpick pada jawaban yang baik - if (doNotCookie () {harus jika (doNotCookie ()) {
Roee Shenberg
1
Terima kasih atas jawabannya. Meskipun saya tidak akan mengatakan 'berkonsultasi dengan seorang pengacara'. Mungkin lebih cepat bagi teknisi untuk membaca dan memahami panduan daripada perlu pengacara untuk mempelajari nuansa teknis.
JW.
1
Apakah saya harus mengerti bahwa jika pengguna TIDAK memilih cookie yang disimpan, solusinya adalah menyimpan cookie dengan preferensi ini? Atau cookie ini tidak dianggap termasuk dalam peraturan Uni Eropa?
Jonathon Horsman
5
Iya. Sebagian besar peraturan yang saya lihat (khususnya Inggris dan saya percaya Perancis) mengatakan secara eksplisit bahwa cookie yang menyimpan preferensi cookie mereka bukan merupakan pelanggaran aturan. Karena cookie adalah satu-satunya cara menyimpan keadaan yang dapat diakses secara universal di peramban, maka ada semacam cara untuk mengatasinya.
Yahel
17

Anda dapat menonaktifkan penggunaan cookie untuk Google Analytics dengan menentukan {'storage' : 'none'}opsi saat membuat instance pelacak.

Lihat panduan Google tentang hal ini untuk perincian lebih lanjut.

severin
sumber
1
Panduan ini mengatakan jika Anda menonaktifkan cookie, Anda harus menerapkan sendiri pelacakan yang serupa, jadi ini sepertinya tidak membantu.
mpartel
4
@mpartel Anda kehilangan beberapa informasi: pengunjung yang kembali dan konversi banyak saluran. Tetapi jika Anda tidak membutuhkannya, ini masih bisa diterima.
Ali
16

Sebagai catatan singkat, BBC (mungkin situs paling populer di Inggris) telah mengambil pendekatan yang menarik untuk mematuhi cookie - mereka telah menampilkan spanduk kepada pengguna yang memberi tahu mereka bahwa cookie diatur dan menyediakan beberapa tautan.

Yang ini menjelaskan apa itu cookie. Yang satu ini memungkinkan mereka mengelola cookie mereka , tetapi yang paling menarik dari semua itu mereka menyediakan tautan ke Google Analytics untuk memungkinkan pengguna memilih keluar dari GA secara keseluruhan. Jadi, secara ringkas, BBC telah mengambil pandangan bahwa mereka dapat memberi tahu pengguna cookie apa yang ditetapkan dan kemudian memberikan tautan ke Google untuk memungkinkan pengguna memilih keluar dari semua cookie GA. Bagi saya, itu jauh lebih mudah daripada memberitahu GA untuk memilih keluar melalui alamat JS.

Martin Clarke
sumber
13
Saya BENAR-BENAR tidak akan menganggap bahwa solusi BBC dapat diterima. Faktanya, solusi mereka secara mendasar cacat, setidaknya untuk tiga alasan: 1) menetapkan cookie sebelum menanyakan apakah Anda bersedia menerimanya, 2) solusi tersebut harus menetapkan cookie untuk menyimpan preferensi cookie Anda, dan 3) menyatakan bahwa situs tersebut tidak akan mengontrol cookie pihak ke-3, yang langsung melanggar semangat jika bukan surat arahan UE. Saya curiga bahwa Beeb akan mendapatkan lebih dari yang ini, karena mereka mencoba untuk mendorong batas-batas hukum dalam banyak cara sementara mungkin muncul sebaliknya.
David T. Macknet
Lihat blogs.wsj.com/tech-europe/2012/05/25/… untuk beberapa diskusi yang bagus.
David T. Macknet
Tentu saja, mungkin saya salah - rupanya mereka telah mengubah persyaratan? blog.silktide.com/2012/05/... berbicara tentang perubahan persyaratan, jadi saya tidak tahu lagi. Hanya tidak tahu tentang orang-orang ini, dan saya tinggal di sini (untuk sekarang)!
David T. Macknet
Register memiliki spanduk yang mengatakan dengan terus menggunakan situs mereka, mereka menganggap bahwa Anda setuju untuk membiarkan mereka menggunakan cookie serta tombol terima.
iamichi
6
@ MartinClarke - Yah ... sebenarnya, saya tidak begitu yakin bahwa saya akan mengikuti jejak perusahaan media, khususnya karena saya berharap bahwa BBC memegang posisi khusus di Inggris dan kemungkinan akan diperintahkan untuk membentuk atas, bukannya ditampar dengan denda. Saya pikir ini lebih merupakan masalah risiko - BBC tidak memiliki banyak risiko, sebagai badan yang didanai publik, sedangkan situs komersial mungkin memiliki.
David T. Macknet
15

Saya sering tidak pernah meminta pengguna untuk memilih keluar dari google analytics, itu karena saya tidak pernah mengatur cookie dan saya tidak pernah menyimpan ip mereka (dan data pribadi lainnya).

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-98765432-1', 'www.example.com', {
  'anonymizeIp': true
  , 'storage': 'none'
  , 'clientId': window.localStorage.getItem('ga_clientId')
});
ga(function(tracker) {
  window.localStorage.setItem('ga_clientId', tracker.get('clientId'));
});
ga('send', 'pageview');

Periksa juga kode ini di Konversi cookie Google Analytics ke Penyimpanan Lokal / Sesi

Skrip ini tidak akan menetapkan cookie apa pun, tetapi masih melacak melalui google analytics. Ini sebenarnya akan memiliki efek yang sama pada privasi dengan menggunakan cookie, karena google masih mencatat alamat IP pengguna.

Di situlah saklar anonimizeIp masuk. Ini memberitahu google untuk hanya menyimpan versi alamat IP anonim. Alamat IP anonim tidak dianggap sebagai data pribadi, sehingga privasi pengguna akan dihormati.

Hukum cookie AFAIK adalah tentang privasi dan memungkinkan situs web untuk melacak penggunaannya. Saya bukan pengacara atau apa pun, tetapi menurut saya skrip ini mematuhi hukum cookie Uni Eropa.

Lihat bungkusan ini untuk melihatnya beraksi: http://plnkr.co/MwH6xwGK00u3CFOTzepK

Elmer
sumber
halo, ini tidak selalu merupakan pendekatan yang aman: inilah alasannya.
caesarsol
Itulah gunanya 'anonymizeIp': trueopsi ini, ini tidak akan menyimpan alamat-ip. Saya suka menggunakan penyimpanan lokal di atas cookie untuk beberapa alasan yang tidak ada hubungannya dengan hukum cookie.
Elmer
5
Tidak, ini sama sekali tidak sesuai: - menganonimkanIp menyesatkan dan masih menyimpan terlalu banyak informasi sesuai dengan undang-undang UE - LocalStorage dianggap sebagai "Cookie" oleh undang-undang UE sehingga kode ini memberi Anda lebih sedikit informasi dalam GA dan masih tidak mematuhi dengan hukum.
Flunch
"Undang-undang cookie Uni Eropa" sebenarnya adalah arahan, jadi itu tergantung pada undang-undang khusus anggota UE. Misalnya, otoritas privasi Italia secara eksplisit menyatakan bahwa untuk hukum Italia, persetujuan pengguna tidak diperlukan jika Anda menganonimkan alamat IP dan menonaktifkan berbagi data dengan layanan lain di konsol Google Analytics.
mcont
4
@Flunch "anonimisasiIp menyesatkan dan masih menyimpan terlalu banyak informasi menurut undang-undang UE" Silakan berikan referensi. Mengapa itu tidak bisa diterima, dan kapan itu akan baik-baik saja? Apa itu "terlalu banyak informasi" ?
Ali
3

Anda dapat menonaktifkan cookie analitik google dengan menambahkan kode ini di bagian atas kode analitik google (sebelum baris: var _gaq = _gaq || [];):

ga('create', 'UA-XXXXXX-XX', {'storage': 'none'});
ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

Namun beberapa fitur analisis google (misalnya statistik waktu nyata) tidak berfungsi dengan baik setelah modifikasi ini. Lebih lanjut tentang cookie analytics google: https://developers.google.com/analytics/devguides/collection/analyticsjs/domains?hl=id#disableCookies

tanpa nama
sumber
apa yang akan var clientId = ...dilakukan kode? Sejauh yang saya tahu itu mendefinisikan variabel lokal di dalam fungsi, bukankah itu tidak berguna?
caesarsol
Saya kira itu hanya sebuah contoh, Anda harus menggunakan clientIddi dalam fungsi seperti yang dilakukan pada stackoverflow.com/questions/4502128/…
caesarsol
1

Cara umum untuk menangani ini sejauh ini adalah metode yang digunakan oleh plugin jquery software serigala dimana mencegah skrip agar tidak berjalan sampai pengguna memilih. ICO memperbarui pedoman mereka minggu lalu, namun, untuk mengatakan bahwa itu bisa diterima untuk mengandalkan ' persetujuan tersirat dari jenis yang digunakan di situs BBC. Meskipun saya tidak benar-benar berpikir itu dalam semangat hukum, itu yang dianggap dapat diterima oleh mereka yang menegakkannya. Mengingat sebagian besar Uni Eropa belum menerapkan arahan, saya akan mengatakan sangat mungkin mereka akan mengikuti jejak Inggris.

Ada artikel menarik tentang pembaruan Inggris di sini:

http://www.redant.com/articles/eu-cookie-law-update-ico-adopts-softly-softly-approach/

Chris Disley
sumber
1

EDIT: Ada adalah pengaturan Google Analytics untuk ini dengan potongan Asynchronous GA.

Tidak ada pengaturan Google Analytics untuk ini, seperti yang Anda sarankan, Anda perlu mengecualikan script untuk mereka yang belum menyetujui jika Anda ingin menggunakan skrip pelacakan Javascript Google Analytics.

Ada beberapa solusi di luar sana yang dapat membantu daripada menggulirkan solusi Anda sendiri. Javascript: http://cookies.dev.wolf-software.com/demo/index.htm

Berikut adalah solusi yang memungkinkan menggunakan fitur dasar Google Analytics tanpa cookie, dengan melakukan sisi server pelacakan, contoh ini dalam PHP: http://techpad.co.uk/content.php?sid=205

Alex Taylor
sumber
Terima kasih atas tautannya. tautan yang sangat bermanfaat.
JW.
1

Untuk solusi UX yang tidak terlalu mengganggu Anda dapat menetapkan persetujuan tersirat untuk cookie analitik google dengan menempatkan tautan ke: cookiestatement.eu (tanpa javascript, tanpa sembulan, tanpa iklan)

Matt Clegg
sumber
1

Maaf karena terlambat menjawab tetapi saya mencari hal yang sama baru-baru ini sampai saya menemukan jalan sendiri. Ini mungkin bukan cara yang tepat untuk melakukannya tetapi berhasil. (hanya berfungsi di situs yang dipermasalahkan tidak menyisih dari GA sepenuhnya). Saya telah menguji selama beberapa hari untuk memastikan.

Cara saya berhasil melakukannya adalah menggunakan cookie PHP. Pertama mulailah dengan menambahkan analticstracking.php termasuk ...

<?php include_once('analyticstracking.php'); ?>

dan di analytticstracking.php tambahkan yang berikut ...

<?php
if($_COOKIE['consent_cookie']=="Y"){
?>

<script type="text/javascript">
var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-********-*']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript';     ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' :      'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];      s.parentNode.insertBefore(ga, s);
  })();
</script>

<?php   
}
else{
//do nothing
}
?>

Sebelum pengguna menyetujui cookie, Google Analytics tidak akan berfungsi dan begitu mereka memilikinya, 'consent_cookie' akan disimpan dan akan memungkinkan GA berfungsi, tetapi jika cookie 'google' dihancurkan, GA akan berhenti berfungsi (Jelas).

Seperti yang saya katakan itu mungkin bukan cara yang benar tetapi saya telah mencoba dan menguji dan itu benar. Semoga ini bisa membantu seseorang.

Pezmo
sumber
0

Saya menghadapi masalah yang sama.

Akhirnya, saya mendapat solusi di baris jawaban Elmer tetapi bermain aman tentang IP, yang tanpa menggunakanlocalStorage

// Create a fake ID instead of storing anything locally
function guidGenerator() {
    var S4 = function() {
       return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
    };
    return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}

...
ga('create', 'UA-XXXXXX-Y', {
        'storage': 'none',
        'clientId': guidGenerator()
});

(-) Setiap halaman yang dikunjungi akan dihitung sebagai pengunjung baru di Google Analytics, jadi saya kehilangan cukup banyak fungsi di sana.

(+) Tapi saya bisa hidup dengannya dan saya yakin saya aman tentang undang-undang privasi data.

Setiap umpan balik atau saran perbaikan lebih dari diterima.

J0ANMM
sumber
-3

GA tidak berfungsi tanpa cookie, perlu untuk mengidentifikasi pengunjung jika ia mengunjungi situs Anda sebelumnya. Jadi tidak ada pengaturan dalam GA untuk ini, GA hanya tidak mencatat pengunjung jika tidak dapat membuat cookie.

Jika pengguna berasal dari UE dan belum memilih, Anda harus mengecualikan skrip google-analytics.

Penulis
sumber