Analizar lo que la gente escribe en tu campo de búsqueda del sitio es prácticamente una de las cosas más inteligentes que puede hacer para el seguimiento de su sitio net. Si ciertos términos aparecen una y otra vez en los informes de búsqueda internos, significa que su sitio no proporciona las respuestas que la gente busca, lo que significa que tiene una excelente oportunidad de satisfacer la demanda.
Sin embargo, no todas las aplicaciones de búsqueda de sitios se pueden rastrear desde el primer momento. En esta publicación, analizo tres escenarios y proporciono tres soluciones para abordar los problemas de búsqueda interna de sitios en Administrador de etiquetas de Google.
1) No hay parámetro de consulta en la URL
La configuración de búsqueda del sitio de Google Analytics requiere un parámetro de consulta en la URL, por ejemplo https://www.simoahava.com/search?q=analytics
. Sin embargo, a menudo la herramienta de búsqueda del sitio no aplica un parámetro de consulta a la URL. Más bien, la palabra clave podría ser una carpeta URL típica, como https://www.simoahava.com/search/analytics
.
Esto es bastante común. Es posible que hayas visto este fenómeno en drupal sitios net. Es fácil de arreglar con una macro de URL y el página campo en su etiqueta de vista de página.
2) No hay ningún término de búsqueda en la URL
Esto es un poco más difícil porque ya no puedes usar la URL. Esto significa que la URL permanece igual (o tiene alguna ruta de búsqueda genérica) y es necesario buscar en los elementos de la página información sobre lo que buscó el usuario. Algunos raspados de DOM y el página El campo debería funcionar.
3) No hay nada en la página para usar.
Este es el escenario más difícil de manejar, ya que no hay nada en la página a lo que puedas aferrarte. Quizás el término de búsqueda no se repite (estúpido) o no está contenido en un elemento DOM (estúpido, estúpido). Esta vez, intentaremos obtener el valor del campo de búsqueda en el evento de envío del formulario y pasarlo como una página vista digital.
incógnita
El boletín a fuego lento
Suscríbete al Boletín a fuego lento para recibir las últimas noticias y contenido de Simo Ahava en su bandeja de entrada de correo electrónico.
1) No hay parámetro de consulta en la URL
Veo esto con bastante frecuencia. Tiene una herramienta de búsqueda pero no utiliza un parámetro de consulta para el término de búsqueda. Más bien, muestra la palabra clave en una carpeta digital en el URI. No hay nada de malo en eso, aunque cada CMS debería permitirle elegir cómo se muestran los términos de búsqueda en la URL.
Esto es lo que vas a hacer:
-
En su etiqueta de página vista regular, hace clic en abrir el Campos para configurar configuración y agrega un nuevo campo con página como nombre del campo. El valor del campo sería la referencia a una macro de JavaScript personalizada.
{{search path}}
. -
Esta macro buscará el término de búsqueda en la URL.
-
Si encuentra un término de búsqueda, devolverá la ruta del documento modificado con el término de búsqueda como parámetro de consulta.
-
Si no se encuentra ningún término de búsqueda, la macro devuelve falso, lo que significa que la ruta del documento no se modificará y la vista de página se activará normalmente.
Esa es la belleza de GTM, nuevamente. Dado que la macro devuelve falso para las páginas vistas que no son de búsqueda, solo necesitará una única etiqueta de página vista regular y ordinaria para cubrir también todas las búsquedas. No hay necesidad de etiquetas adicionales, ¡guau!
Entonces, digamos que el término de búsqueda del sitio se muestra como se muestra en www.drupal.org: /búsqueda/sitio/palabra clave. El {{search path}}
La macro primero debe verificar si el URI comienza con /search/web site/ y, si lo hace, debe devolver lo que viene después, modificado correctamente en una ruta adecuada.
Aquí está el código para el {{search path}}
macro:
perform() {
var regex = /^/search/web site/(.*)/;
if(regex.check({{url path}})) {
return "/search/web site?q=" + regex.exec({{url path}})(1);
}
return;
}
La expresión common mira el {{url path}}
macro (que almacena el URI precise de la página), y si la ruta comienza con /search/web site/, devuelve una versión modificada del URI con el término de búsqueda agregado como valor del parámetro de consulta q. Cambie este parámetro para reflejar lo que desee tener en la configuración de búsqueda del sitio de su vista de Google Analytics.
Finalmente, simplemente edite su etiqueta de vista de página, agregue un nuevo campo a Campos para configurarcolocar página como nombre del campo y agregue su macro como valor. ¡Eso es todo lo que hay que hacer!
No olvide realizar una vista previa y depuración, y también consultar con un depurador como AVISPA para ver si la ruta se envía correctamente para los términos de búsqueda (¡y también correctamente para todas las demás páginas!).
2) No hay ningún término de búsqueda en la URL
Bien, este es un poco más complicado. En este caso, no hay ningún término de búsqueda en la URL que pueda utilizar. Esta solución requiere que el término de búsqueda se presente explícitamente en un elemento HTML al que podamos acceder. La mejor manera es tenerlo en un span
o div
con un atributo de identificación único. Como es la mejor manera, es la que usaré en este ejemplo, con un elemento como envoltorio. Siéntase libre de ser creativo con el DOM si su término de búsqueda está oculto más profundamente en la página.
Para que esto funcione, esto es lo que sucede:
-
En su etiqueta de página vista regular, hace clic en abrir el Campos para configurar configuración y agrega un nuevo campo con página como nombre del campo. El valor del campo sería la referencia a una macro de JavaScript personalizada.
{{search path}}
-
Esta macro buscará el término de búsqueda en el elemento HTML con el ID que usted especifique, utilizando una nueva macro de elemento DOM.
{{search time period}}
-
Si encuentra un término de búsqueda, el
{{search path}}
La macro devolverá la ruta del documento modificado con el término de búsqueda como parámetro de consulta. -
Si no se encuentra ningún término de búsqueda, la macro devuelve falso, lo que significa que la ruta del documento no se modificará y la vista de página se activará normalmente.
Primero, creemos la macro del elemento DOM. {{search time period}}
.
Reemplace el ID de elemento campo con lo que sea que esté usando su página.
A continuación, necesitaremos editar la macro de JavaScript personalizada. {{search path}}
:
perform() {
if({{search time period}} && {{search time period}} !== 'null') {
return "/search/web site?q=" + {{search time period}};
}
return;
}
Primero verificamos si existe un elemento con el ID que usted especifica. Si es así, la macro regresa "/search/web site?q=
como ruta del documento, igual que en el ejemplo anterior. Si no se encuentra dicho elemento, la macro devuelve falso y se envía la ruta del documento unique (es decir, el URI de la página en la que se encuentra el visitante).
El paso last es el mismo que antes: edite su etiqueta de vista de página, agregue un nuevo campo al Campos para configurarestablezca el nombre del campo en páginay agrega esto {{search path}}
macro como valor del campo.
Ah, y no olvides obtener una vista previa, depurar y probar, probar, probar.
3) No hay nada en la página para usar.
Esto es sombrío, pero sucede. Hay absolutamente nada en el modelo de objetos del documento que puede utilizar para capturar el término de búsqueda. La URL está en blanco, no hay ningún término de búsqueda impreso en la página, ni hadas susurrándote al oído, NADA. Lo sé, apesta. Despide a tu desarrollador. Es una broma. No, en serio, despídelos. Sí, sólo estoy bromeando.
Elegí arreglar esto usando seguimiento de formularios. Básicamente requiere que su campo de búsqueda tenga algún identificador único que pueda obtener en el evento de envío. Espero que tenga una identificación adecuada para el campo (¡o al menos una CLASE o NOMBRE!). Estoy usando ID aquí nuevamente, pero siéntase libre de modificar el script para obtener el valor de la página.
La cuestión es que deberá enviar una página vista digital con el envío del formulario y tendrá el término de búsqueda en la ruta del documento como en los ejemplos anteriores. Sin embargo, si envía una nueva página vista con la búsqueda, contará dos veces sus vistas de búsqueda, ya que también enviará una página vista para cuando se cargue la página de búsqueda. No quieres eso. Es por eso que este caso es un poco más complejo, ya que usarás un cookie del navegador para llevar el término de búsqueda a la vista de página de la página de búsqueda, para que luego pueda usarlo como ruta del documento.
Esto es lo que está pasando:
-
Tener una etiqueta de escucha de envío de formulario activada en todas las páginas
-
Cree una nueva etiqueta HTML personalizada que se energetic
{{occasion}}
es igual a gtm.formSubmites decir, cuando se envía un formulario -
En esta etiqueta verifique que se realizó una búsqueda y recupere el término de búsqueda usando una macro de elemento DOM
{{search area worth}}
-
En la etiqueta, guarde este término de búsqueda en una nueva cookie del navegador llamada “palabra clave”.
-
Crear una nueva macro de cookies propias
{{cookie search time period}}
que recupera este valor de cookie -
En el
{{search path}}
Macro de JavaScript personalizada, verifique si existe una cookie; Si es así, utilícelo como ruta de la página digital. -
Utilizar
{{search path}}
como el valor de un nuevo campo en el Campos para configurar configuración de la etiqueta. Establezca el nombre del campo en página y la macro como valor del campo. -
Crear una nueva macro de JavaScript personalizada
{{searchCallback}}
que elimina la cookie en la función de devolución de llamada de la etiqueta de página vista
¡UF!
Primero, el oyente de envío de formulario. Esto es fácil, simplemente cree una nueva etiqueta de tipo Type Submit Listener y haga que se energetic en todas las páginas.
Después de eso, cree la macro del elemento DOM. {{search area worth}}
. Asegúrese de cambiar el ID de elemento configurando el ID del campo de formulario que utiliza su página net en la búsqueda del sitio.
A continuación, cree una nueva etiqueta HTML personalizada que se energetic {{occasion}}
es igual a gtm.formSubmit. Tener el siguiente código dentro:
<script>
if({{search area worth}} && {{search area worth}} !== 'null') {
doc.cookie = "key phrase="+{{search area worth}}+";path=/";
}
script>
Aquí buscamos un elemento HTML con el ID “campo de búsqueda” y con un atributo VALOR. Si se encuentra esto, el contenido de este atributo se configura en una nueva cookie denominada “palabra clave”. De hecho, esto es lo que se escribió en el campo de búsqueda en el momento de enviar el formulario.
(¡NOTA! Si hay varios formularios en una página, es posible que desee mejorar esta etiqueta comprobando que en realidad fue el formulario de búsqueda que se envió. Es posible que se envíe otro formulario con texto en el campo de búsqueda y este script interprete erróneamente este evento como un envío del formulario de búsqueda del sitio).
A continuación, cree una nueva macro de cookies propias, que recupera el valor de la cookie de “palabra clave”. llama a esto {{cookie search time period}}
.
A continuación, modifique la macro de JavaScript personalizada. {{search path}}
para verse así:
perform() {
if({{cookie search time period}}) {
return "/search/web site?q=" + {{cookie search time period}};
}
return;
}
Entonces, primero verificamos si la cookie existe. Si es así, su valor se devuelve como una ruta de documento con el formato adecuado para la etiqueta de vista de página.
Finalmente, cree una nueva macro de JavaScript personalizada. {{searchCallback}}
que se parece a esto:
perform() {
if({{cookie search time period}}) {
return perform() {
doc.cookie = "key phrase=;path=/;expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
return;
}
Esto busca la cookie de “palabra clave” y, si se encuentra una, la cookie se elimina. ¡Esto es extremadamente importante, ya que no querrás seguir enviando la página vista digital con cada carga de página! Las cookies se eliminan fijando su fecha de caducidad en el pasado.
Junte todo esto en la etiqueta de vista de página, utilizando el Campos para configurar con ambos hitDevolución de llamada y página poblada en consecuencia.
¿Por qué la eliminación de cookies se realiza en hitCallback y no en la macro que devuelve la ruta del documento? Bueno, dos razones:
-
No se debe utilizar una macro para configurar nada. La macro de devolución de llamada es obviamente una excepción, ya que DEVUELVE una función que establece algo.
-
Hay una condición de carrera extraña en juego, y si hace referencia a la macro Cookie de origen en el mismo script que también elimina la cookie, la macro devuelve un valor indefinido. Tendré que investigar un poco más este fenómeno.
Este fue mucho más difícil que los otros métodos, y seamos realistas: si necesitas recurrir al envío de formulario, probablemente deberías azotar a tu desarrollador primero. Oblígueles a crear un motor de búsqueda de sitios que realmente funcione con análisis, ya que realmente es una de las mejores cosas que puede medir.
Conclusiones
Hace tiempo que debía publicar una publicación tutorial tradicional, así que espero que hayas disfrutado de esta. Todavía estoy trabajando en JavaScript para GTM: Parte 2 (consulta la parte 1 aquí), pero ahora también sueño con las mini vacaciones que empiezan mañana.
Sin embargo, si esta publicación genera alguna pregunta, si tiene otras concepts para rastrear la búsqueda en el sitio o si tiene un problema con el que necesita ayuda, ¡no dude en escribirnos a continuación en los comentarios! Nada como un desafío de JavaScript para hacer que el verano sea más divertido.
¡Que tengan un verano fantástico, cálido y relajante, amigos míos! Vive la vida al máximo y sueña con JavaScript y todas las cosas maravillosas.