javascript - tag - google optimize
Pruebas AB con almacenamiento local y Google Analytics (1)
Esto es algo así como un tiro en la oscuridad ya que he ejecutado su código y el evento se desencadenaría cada vez (supongo que sus objetos / funciones de Cookies
están funcionando), pero lo que me pregunto es si el número de 12,000 puede no ser correcto...
¿El fragmento aquí es exactamente lo que está ejecutando su sitio? ¿A dónde estás enviando la página de GA? Lo pregunto porque veo que el evento es inmediatamente posterior a tu función de create
. El otro problema potencial de informes que veo es que el evento es interactivo, lo que significa que afectará su tasa de rebote si también está enviando una vista de página (que asumo que es).
¿A qué métrica específicamente se refiere cuando dice 12,000 visitas ? Sesiones?
El envío de eventos antes de las vistas de página también le dará un montón de dimensiones de la página de aterrizaje (not set)
. Eso significa que el evento no se asociará con ninguna página de destino, y cuando se envía la vista de página también aumenta el número de usuarios ... Por lo tanto, si está viendo más usuarios que sesiones, esto indicaría que se trata de un problema.
Algunas cosas para probar:
- Envíe la vista de página antes del evento.
- Establezca el evento como un evento sin interacción con
{nonInteraction: true}
. - Otra cosa que haría es poner el evento dentro del condicional: el envío de
create
y vista de página siempre debería ocurrir independientemente de la condición de almacenamiento local. - Editar: también estás esperando que DOM esté listo para
create
. Me gustaría mover eso a la etiqueta<head>
para que el evento sea lo único que espera el documento listo.
<head>
<script>
//Your preferred method of loading analytics.js here...
ga(''create'', ''UA-XXXXXXXX-1'', ''auto'');
ga(''send'', ''pageview'');
</script>
</head>
function isLocalStorageNameSupported() {
var testKey = ''test'', storage = window.localStorage;
try {
storage.setItem(testKey, ''1'');
storage.removeItem(testKey);
return true;
} catch (error) {
return false;
}
}
$(function() {
if(isLocalStorageNameSupported()){
var version = Cookies.get("version");
if (version == null) {
if (Math.random() >= 0.5){
Cookies.set("version", "A");
var version = "A"
}else{
Cookies.set("version", "B");
var version = "B"
}
ga(''send'', ''event'', ''Pricing Experiment'', ''New Unique Visit'', version, 0, {nonInteraction: true});
}
}
});
Vea si eso acerca sus métricas y luego considere esta forma alternativa de rastrear los datos:
Tal vez un evento aquí no sea la mejor solución por completo. Lo que está haciendo suena como un excelente candidato para usar una dimensión personalizada con alcance para el usuario.
Recomiendo crear una dimensión personalizada llamada "Experimento de fijación de precios" con un alcance de Usuario (porque con los Experimentos de GA, el usuario siempre verá la misma variación en sesiones sucesivas) y luego después de su función de create
, reemplace el evento con esto: ga(''set'', ''dimension1'', version);
(asegúrese de reemplazar la dimension1
con su número real).
Finalmente, envíe una vista de página después de establecer la dimensión (las dimensiones personalizadas usan tipos de aciertos para ser transportados a GA).
<head>
<script>
//Your preferred method of loading analytics.js here...
ga(''create'', ''UA-XXXXXXXX-1'', ''auto'');
if(isLocalStorageNameSupported()){
var version = Cookies.get("version");
if (version == null) {
if (Math.random() >= 0.5){
Cookies.set("version", "A");
var version = "A"
}else{
Cookies.set("version", "B");
var version = "B"
}
ga(''set'', ''dimension1'', version);
}
}
ga(''send'', ''pageview'');
function isLocalStorageNameSupported() {
var testKey = ''test'', storage = window.localStorage;
try {
storage.setItem(testKey, ''1'');
storage.removeItem(testKey);
return true;
} catch (error) {
return false;
}
}
</script>
</head>
Ahora, cuando ve cualquier otro informe, puede aplicar una dimensión secundaria de "Experimento de fijación de precios" y podrá mostrar qué versión vieron.
De esta forma, podrá obtener los datos contextuales sin interferir con los tipos de aciertos que alteran las métricas de informes.
De nuevo, me disculpo si esto no está iluminando perfectamente su problema. Tomaré el fragmento que me proporcionó literalmente y llenaré los espacios en blanco lo mejor que pueda.
Estoy ejecutando una prueba AB en todo el sitio en mi sitio de comercio electrónico. Después de que un visitante aterriza, les asigno una clave / valor de almacenamiento local:
function isLocalStorageNameSupported() {
var testKey = ''test'', storage = window.localStorage;
try {
storage.setItem(testKey, ''1'');
storage.removeItem(testKey);
return true;
} catch (error) {
return false;
}
}
$(function() {
if(isLocalStorageNameSupported()){
var version = Cookies.get("version");
if (version == null) {
if (Math.random() >= 0.5){
Cookies.set("version", "A");
var version = "A"
}else{
Cookies.set("version", "B");
var version = "B"
}
ga(''create'', ''UA-XXXXXXXX-1'', ''auto'');
ga(''send'', {
hitType: ''event'',
eventCategory: ''Pricing Experiment'',
eventAction: ''New Unique Visit'',
eventLabel: version,
eventValue: 0
});
}
}
});
Después de que un visitante se retira, compruebo en qué versión están y envío otro evento de Google Analytics.
Mis eventos de conversión de pago están apareciendo muy bien. Pero solo recibo alrededor del 25% de los eventos de "Nueva visita única". Analytics muestra 12000 visitas al sitio, pero solo tengo 3000 de mis eventos personalizados.
¿Qué parte de mi código está causando esta discrepancia y cómo puedo activar un evento en todas las visitas?