Acorazado
Mi sitio de WordPress (http://robfuquay.staging.wpengine.com/) está configurado para permitir solo las cookies de Google Analytics después de que los usuarios hayan dado su consentimiento a través de un banner adjunto en la parte inferior de la ventana. (Esto se hace a través de este complemento: https://wordpress.org/plugins/cookie-notice/)
Hasta que se dé ese consentimiento tengo una cookie llamada ga-disable-UA-10877870-45
que se establece en true
. Cuando se hace clic en el botón de consentimiento, se agrega otra cookie cookie_notice_accepted
y puesto a true
. Una vez el cookie_notice_accepted
la cookie está configurada para true
la ga-disable-UA-10877870-45
la cookie está configurada para false
a través de la siguiente función:
add_action( 'init', 'set_ga_disable_cookie_according_to_cookie_notice' );
function set_ga_disable_cookie_according_to_cookie_notice() {
if ( function_exists( 'cn_cookies_accepted' ) && function_exists('get_ua')) {
if ( cn_cookies_accepted() ) {
setcookie( 'ga-disable-'.get_ua(), 'false', 0, "https://stackoverflow.com/" );
} else {
if(!isset($_COOKIE['ga-disable-'.get_ua()])) {
setCookie( 'ga-disable-'.get_ua(), 'true' );
}
}
}
}
Una vez el ga-disable-UA-10877870-45
se establece en falso, en la página siguiente se cargan las cookies de Google Analytics: _ga
, _gat
y gid
. (Después de hacer clic en el botón de consentimiento, la página se vuelve a cargar automáticamente a través de la configuración del complemento Aviso de cookies).
El problema que tengo es con el cliente. Chrome, Safari y Opera (y todos sus navegadores privados) funcionan como se esperaba: Aceptar aviso, recargas de página, se establecen cookies de Google Analytics. Firefox también funciona como se esperaba, pero la navegación privada de Firefox no establece las cookies de Google Analytics hasta una solicitud de página adicional. Eso significa que incluso después de que la página se vuelva a cargar automáticamente, tengo que actualizar la página una vez más. Esto es consistente entre mis dos MacBooks.
Estoy permitiendo cookies y no estoy bloqueando el seguimiento, entonces, ¿por qué la navegación privada de Firefox actúa de esta manera?
@Jamie_D estaba en lo correcto al identificar el problema:
De acuerdo con esta página: “Las cookies configuradas en ventanas privadas se guardan temporalmente en la memoria, separadas de las cookies de ventana normales, y se descartan al final de su sesión privada”.
Debido a que las cookies no aparecían en las herramientas de desarrollo, la solución fue ingresar el siguiente JavaScript en la consola:
unescape(document.cookie.split('; '));
Fuente: https://support.mozilla.org/en-US/questions/1031619#answer-672435
Se devolvieron las cookies esperadas, incluidas _ga
, _gat
y _gid
.
Verifiqué dos veces que Google Analytics extraía los datos correctos en tiempo real y todo se ve bien.
Entonces, para ser claros, la navegación privada de Firefox no requirió 2 cargas de página para configurar las cookies… Firefox simplemente no mostraba que estaban configuradas en las herramientas de desarrollo.
-
El código en esta respuesta ya no parece funcionar, al menos para mí usando Firefox 64.0.2 en OSX, como
document.cookie
devuelve una cadena vacía. Las cookies aún se guardan en la memoria, aunque son un poco más difíciles de inspeccionar– Kevlarr
10 de febrero de 2019 a las 1:23
-
Borre eso, estaba obteniendo cadenas vacías porque las cookies en cuestión son HttpOnly, lo que significa que no hay acceso desde JS
– Kevlarr
15 de febrero de 2019 a las 3:35
De acuerdo a esta página: “Las cookies establecidas en las ventanas privadas se guardan temporalmente en la memoria, separadas de las cookies de las ventanas normales, y se descartan al final de su sesión privada”
– Jamie_D
18 de noviembre de 2018 a las 12:26