Contar clics sin leer el texto del enlace
Un contador responde a «cuántos vinieron». La pregunta más útil suele ser «cuántos hicieron algo» — pulsaron el enlace de contacto, abrieron la descarga, salieron hacia un perfil social. Este servicio tiene eventos para eso desde que se construyeron: pon data-s4u-event="contacto" en un elemento y los clics sobre él se cuentan con ese nombre.
Casi nadie lo usaba, porque casi nadie lo sabía. Así que ahora hay una casilla: contar los clics en enlaces automáticamente, sin atributos. Lo interesante no es el interruptor. Es cómo se llama lo que se cuenta.
El texto del enlace no
El nombre evidente para un clic son las palabras sobre las que pulsó el visitante. También es el equivocado.
El texto de un enlace es contenido libre. Un enlace puede decir «Pedido 4711» o «Mensaje de Ana», puede llevar un número de portal, una referencia de reserva, una dirección de correo. Todo eso acabaría en una columna de base de datos llamada name y se quedaría ahí. La política de privacidad de este servicio dice que las estadísticas no contienen datos personales, y eso tiene que seguir siendo cierto sin depender de lo que cualquier propietario de un sitio escriba dentro de una etiqueta de enlace.
Hay un segundo problema, menor pero real: veinte enlaces que dicen «aquí» en una página son un nombre que no dice nada, y el mismo enlace en once traducciones serían once nombres de los cincuenta que un contador puede tener.
Por eso el nombre viene de la ruta de destino. La eligió el propietario del sitio, es estable y ya es la clave que usan las estadísticas de páginas.
Tres normalizaciones, cada una por un motivo
- Prefijo de idioma eliminado.
/de/blogy/pl/blogson la misma página. Sin esto, el selector de idioma de un solo sitio multilingüe consumiría once de los cincuenta nombres. - Las series de cinco o más cifras pasan a
n. Dos páginas de estadísticas con números de contador distintos no son dos páginas; son dos veces la misma. - Los enlaces que salen del sitio pasan a
ex-más el anfitrión. La ruta de una página ajena no le dice nada al propietario. A dónde fue el clic, sí.
Las anclas, mailto:, tel: y javascript: se omiten — no son destinos para los que nadie necesite una cifra. Los elementos que ya llevan su propio nombre de evento también se omiten, o el mismo clic se contaría dos veces.
Lo que cuesta
El script del navegador creció 1.022 bytes comprimidos, una vez por primera visita. Nada más: el indicador viaja dentro de una petición que el script ya hace en cada carga de página — una petición que hasta ahora siempre respondía la misma constante — así que no hay un segundo viaje. En el servidor, la lista de contadores con el interruptor activado vive en un archivo pequeño y no en una consulta, porque esa consulta es un recorrido completo de 166.433 filas y cuesta 143,9 milisegundos medidos.
Por defecto está desactivado, y así se queda. Con este volumen, activarlo en todas partes añadiría unas nueve mil escrituras diarias a la tabla con más escritura que hay aquí. Eso es algo que uno activa, no algo que le ocurre.