Cuánto tiempo sin escribir jaja esto merece un saludo: ¡feliz verano a tod@s! deseo que estéis bien :) ¡vamos a ello!
A menudo nos podemos encontrar con buscadores internos de web muy completos, basados en herramientas tipo Doofinder por ej., o programados ad hoc, muy muy completos pero con una gran pega: que no se miden automáticamente en Google Analytics porque no escriben un parámetro o querie en la URL de la página (al margen de otras complejidades que vemos también).
¿Cómo se comporta el buscador del caso que aquí veremos? Tiene al menos un par de puntos especiales para la medición, que la hacen bastante más compleja:
- No ponen un parámetro en la URL de la página tras hacer la consulta. Las URLs de resultados son de este estilo: https://www.anabi.online/es/#/dfclassic/query=anillos&… /// https://www.anabi.online/es/#/dfclassic/query=abcd&…
- Algo también muy importante: recalculan la página y muestran resultados en vivo conforme vamos escribiendo la consulta.
¡Todo un logro medir esto bien! ¡A por ello! :D
Un par de capturas, con y sin resultados:
La primera dificultad o aprendizaje de este post es aprender a resolver lo de la URL, capturar un trozo distinto a un parámetro, consulta o querie, que es lo que hace Analytics por defecto. En concreto vemos que la palabra consultada aparece en un trozo del fragment, es como una querie o parámetro, pero en lugar de llevar ? delante, lleva #, lo cual nos rompe la medición automática de Google Analytics (tanto Universal como GA4, que dependen de parámetros).
¿Cómo podemos hacer para capturar esto? queremos sacar la palabra «anillos» de ahí, limpia. La forma más limpia de hacerlo en Tag Manager, además de «sencilla» entre comillas :) es, a mi gusto, mediante una variable de GTM de tipo tabla regEx (de expresiones regulares). Lo que deseamos hacer es extraer una parte de un todo mayor que la contiene, y para esto las expresiones regulares son perfectas.
¿De dónde la sacamos? Por ej. podríamos pensar que de la variable {{Page URL}} peeero… dicha variable no incluye el fragmento de página (lo que aparece tras la almohadilla #). Podríamos crear una variable personalizada, de tipo URL, llamada precisamente {{Page Fragment}} para recordar que recopila en fragmento. La creamos así, en Variables // Variables personalizadas o definidas por el usuario // Tipo de variable: URL // Tipo de componente: Fragmento.
Esta variable nos va a devolver todo lo que va desde la # en adelante, es decir lo marcado en negrita abajo:
De todos modos, como lo que buscamos medir ocurre con un cambio de historial de navegación (la página cambia de contenido, ofreciendo los resultados de búsqueda, pero sin hacer una recarga completa en el navegador), es más acertado usar o partir de una variable asociada al evento Cambio de Historial, en concreto una de las por defecto: {{New History State}} o {{New History Fragment}}. Las habilitamos ambas primeramente para ver cuál funciona en este caso:
Para ver cuál usar hacemos una prueba, creando un activador de Cambio de Historial de prueba, para poder acceder a esos puntos de activación y testeo en la vista previa y ver qué variable/s se rellena/n:
Y después haciendo el proceso de búsqueda en la web con Doofinder teniendo abierta la vista previa de GTM:
Al final vemos que nos valdría con {{New History Fragment}} y también con {{Page Fragment}}.
Y ahora nos faltaría limpiar esa parte para quedarnos solo con lo que va entre query= y &. Vamos a usar esta variable regEx table para ello:
Ahora tenemos otro desafío a afrontar: ¿en qué punto activar nuestra etiqueta? si nos fijamos bien, por cada letra que introducimos en el buscador, sale un punto de activación tipo «History» en el menú izquierdo de la herramienta Vista Previa de Google Tag Manager. Con lo cual, no podemos medir todos los eventos de historial, hemos de buscar otras maneras de medirlo.
Como aproximación a la solución óptima, se me ocurren al menos estas dos ideas, dos opciones para hacer una medición completa del buscador Doofinder con Google Tag Manager y Google Analytics (en sus dos versiones: GA4 y Universal).
ACTIVADOR – CLICK RESULTADOS BÚSQUEDA INTERNA DOOFINDER
ETIQUETA UNIVERSAL ANALYTICS – CLICK RESULTADOS BÚSQUEDA INTERNA DOOFINDER
ETIQUETA GA4 – CLICK RESULTADOS BÚSQUEDA INTERNA DOOFINDER
Utilizaremos el nombre de evento y parámetro estándar de la medición mejorada de GA4 para el buscador interno (view_search_results y search_term, respectivamente). Y además, añado un evento y un parámetro personalizados (click_search_results y search_result). OJO, No olvides dar de alta dicho parámetro en GA4 (search_result) o no lo verás en informes ni Análisis/Exploraciones, al igual que el de término de búsqueda (search_term).
b) Opcionalmente: También medir cuando pasan X milisegundos de mostrar unos resultados concretos. Esto sería más avanzado pues se trata de medir la impresión de resultados de búsqueda en pantalla. Yo por ej. voy a empezar con 3 segundos de visibilidad en pantalla:
ACTIVADOR VER RESULTADOS DOOFINDER EN TAG MANAGER (3 segundos)
ETIQUETA UNIVERSAL ANALYTICS – VER RESULTADOS BÚSQUEDA INTERNA DOOFINDER
ETIQUETA GA4 – VER RESULTADOS BÚSQUEDA INTERNA DOOFINDER
Necesitamos esta variable para rescatar el primer resultado mostrado:
Si quieres aprender a hacer por ti mism@ este tipo de soluciones avanzadas, te animo a hacer mi curso online avanzado de Google Tag Manager, Analytics y conversiones. Contarás con unos apuntes súper completos en PDF, ejercicios, sitio de pruebas, mi ayuda personalizada para aprender durante 3 meses (soporte por email o foro), más actualizaciones de los apuntes durante un año.
Gracias a la clienta anabi.online por dejarme mostrar su caso en este post :)
O si prefieres una formación in company, en tu empresa, sobre:
- Tag Manager y Píxeles de Conversión
- Google Analytics básico o avanzado
- Data Studio
- Supermetrics Functions
- SEO
- Google Ads