Рахувати кліки, не читаючи тексту посилання
Лічильник відповідає на питання «скільки прийшло». Кориснішим питанням зазвичай є «скільки щось зробило» — натиснули на посилання контактів, відкрили завантаження, пішли на профіль у соцмережі. У цієї служби є для цього події від самого їх створення: поставте data-s4u-event="kontakt" на елемент, і кліки по ньому рахуються під цією назвою.
Майже ніхто цим не користувався, бо майже ніхто не знав. Тому тепер є прапорець: рахувати кліки за посиланнями автоматично, без атрибутів. Цікавий не перемикач. Цікаво те, як зветься полічене.
Не текст посилання
Очевидною назвою для кліка є слова, на які натиснув відвідувач. Вона ж і хибна.
Текст посилання — це вільний зміст. Посилання може казати «Замовлення 4711» або «Повідомлення від Анни», нести номер будинку, номер броні, поштову адресу. Усе це потрапило б до стовпця бази даних із назвою name і там би й лишилося. Політика приватності цієї служби каже, що статистика не містить персональних даних, і це має лишатися правдою, не залежачи від того, що власник сайту випадково напише всередині тега посилання.
Є й друга проблема, менша, але справжня: двадцять посилань зі словом «тут» на одній сторінці — це одна назва, яка нічого не каже, а те саме посилання в одинадцяти перекладах було б одинадцятьма назвами з п’ятдесяти, покладених лічильникові.
Тому назва береться зі шляху призначення. Його обрав власник сайту, він сталий, і він уже є ключем, яким користується посторінкова статистика.
Три нормалізації, кожна зі своєї причини
- Мовний префікс прибрано.
/de/blogі/pl/blog— це одна й та сама сторінка. Без цього сам лише перемикач мови багатомовного сайту з’їв би одинадцять із п’ятдесяти назв. - Послідовності з п’яти й більше цифр стають
n. Дві сторінки статистики з різними номерами лічильників — це не дві сторінки, а двічі одна. - Посилання, що виходять із сайту, стають
ex-плюс хост. Шлях чужої сторінки власникові нічого не каже. А куди пішов клік — каже.
Якорі, mailto:, tel: і javascript: пропускаються — це не ті цілі, для яких комусь потрібне число. Елементи, що вже мають власну назву події, теж пропускаються, інакше той самий клік рахувався б двічі.
У що це обходиться
Скрипт у браузері виріс на 1022 байти в стисненому вигляді, один раз за перше відвідування. Більше ні в що: ознака їде в запиті, який скрипт і так робить при кожному завантаженні сторінки — у запиті, який досі завжди відповідав тією самою сталою — отже другої поїздки немає. На сервері список лічильників із увімкненим перемикачем живе в невеликому файлі, а не в запиті, бо цей запит — повний прохід по 166 433 рядках і коштує виміряних 143,9 мілісекунди.
Типово вимкнено, і таким лишається. За цього обсягу увімкнення всюди додало б близько дев’яти тисяч записів на день до найнавантаженішої на запис таблиці, яка тут є. Це те, що вмикають, а не те, що з тобою стається.