Считать клики, не читая текст ссылки
Счётчик отвечает на вопрос «сколько пришло». Более полезный вопрос обычно звучит «сколько что-то сделало» — нажали на ссылку контактов, открыли загрузку, ушли на профиль в соцсети. У этой службы есть для этого события с самого их создания: поставьте data-s4u-event="kontakt" на элемент, и клики по нему считаются под этим именем.
Почти никто этим не пользовался, потому что почти никто не знал. Поэтому теперь есть галочка: считать клики по ссылкам автоматически, без атрибутов. Интересен не переключатель. Интересно то, как называется посчитанное.
Не текст ссылки
Очевидное имя для клика — это слова, по которым посетитель нажал. Оно же и неверное.
Текст ссылки — это свободное содержимое. Ссылка может гласить «Заказ 4711» или «Сообщение от Анны», нести номер дома, номер брони, адрес почты. Всё это попало бы в столбец базы данных с названием name и там бы и осталось. Политика конфиденциальности этой службы говорит, что статистика не содержит персональных данных, и это должно оставаться правдой, не завися от того, что владелец сайта случайно напишет внутри тега ссылки.
Есть и вторая проблема, меньше, но настоящая: двадцать ссылок со словом «здесь» на одной странице — это одно имя, которое ничего не говорит, а та же ссылка в одиннадцати переводах была бы одиннадцатью именами из пятидесяти, положенных счётчику.
Поэтому имя берётся из пути назначения. Его выбрал владелец сайта, он устойчив, и он уже является ключом, которым пользуется постраничная статистика.
Три нормализации, каждая по своей причине
- Языковой префикс убран.
/de/blogи/pl/blog— это одна и та же страница. Без этого один только переключатель языка многоязычного сайта съел бы одиннадцать из пятидесяти имён. - Последовательности из пяти и более цифр становятся
n. Две страницы статистики с разными номерами счётчиков — это не две страницы, а дважды одна. - Ссылки, уходящие с сайта, становятся
ex-плюс хост. Путь чужой страницы владельцу ничего не говорит. А вот куда ушёл клик — говорит.
Якоря, mailto:, tel: и javascript: пропускаются — это не те цели, для которых кому-то нужно число. Элементы, у которых уже есть собственное имя события, тоже пропускаются, иначе один и тот же клик считался бы дважды.
Во что это обходится
Скрипт в браузере вырос на 1022 байта в сжатом виде, один раз за первое посещение. Больше ни во что: признак едет в запросе, который скрипт и так делает при каждой загрузке страницы — в запросе, который до сих пор всегда отвечал одной и той же константой — так что второй поездки нет. На сервере список счётчиков с включённым переключателем живёт в небольшом файле, а не в запросе, потому что этот запрос — полный проход по 166 433 строкам и стоит измеренных 143,9 миллисекунды.
По умолчанию выключено, и таким остаётся. При этом объёме включение везде добавило бы примерно девять тысяч записей в день в самую нагруженную на запись таблицу, какая здесь есть. Это то, что включают, а не то, что с тобой случается.