Как определить уровень продвинутости пользователя при посещении им web сайта?
Кратко изложу свою идею. Когда пользователь заходит на наш сайт и заполняет поля на формах мы можем попытаться определить уровень его "продвинутости" и подстроить под него содержимое/интерфейс. На самом деле, идея касается только окна чата, а не глобальных перестроек логики и интерфейса. Для продвинутых показывать просто маленькую кнопочку "Чат", а для непродвинутых чтобы окно появлялось где-то в углу экрана само. Просто лично меня сильно раздражают такие окна и когда мне нужно я и сам его найду, но кто-то сам может и не найти (для них чтобы всплывало само).
Например, можно выделить некоторые критерии продвинутости и присвоить им весовые коэффициенты:
1. Скорость набора символов при заполнении полей форм. Например, 150 символов в минуту и более - коэффициент 0.5, 120 - 0.4 и т.д. (зависимость линейная)
2. Последняя ли версия браузера установлена у пользователя (определяется по заголовку HTTP запроса) - коэфф 0.1
3. ...
Суммируем. Если пользователь в сумме набрал, скажем, больше 75%, то относим его к "продвинутому". Также при необходимости можно ввести более широкую градацию уровней "продвинутости"...
Что ещё можно добавить в критерии? Как улучшить алгоритм?
На мой взгляд менять интерфейс не стоит вообще, поскольку пользователь может ривыкнуть в одному, а вы ему другой через некоторое время подсунете. Единственное впечатление, которое останется - что-то не так. Настолько не так что чисто интуитивно пользователю захочется уйти с сайта. Вы в конечном счете делаете на целевую аудиторию. Какая у вас целевая? Продвинутые или нет? Для тех и делайте изначально.
Едея на самом деле касается только окна чата. Для продвинутых показывать просто маленькую кнопочку "Чат", а для непродвинутых чтобы окно появлялось где-то в углу экрана само. Просто лично меня сильно раздражают такие окна и когда мне нужно я и сам его найду, но кто-то сам может и не найти (для них чтобы всплывало само).
Знаете что меня раздражает в софте? Когда он сам решает что мне будет лучше, и при этом на его решение не повлиять. Вот не нужно так, сделайте отдельную настройку.
Почему бы не дать юзеру выбрать интерфейс и записать какую-то куку? Меня бы выбесило, если бы я начал быстро набирать данные в форме, а тут интерфейс скакать начинает.
Потому что часть пользователей вообще не догадывается, что есть что-то такое называемое "настройками" и для них лучше показать окошко чата сразу. Ну а в нем уже вставить кнопочку не показывать при следующем запуске. Вы правы, что настройка должна быть и пользователь должен иметь выбор. Но при первом посещении хотелось бы не показывать "занудливое окно" тем, кому оно не нужно.
Возможно, стоит глянуть в сторону оповещений как, например, баллоны как в трее Windows. На jQuery всего несколько строчек кода. И не очень навязчиво, и внимание привлекает.
Сори, но мне кажется, фигня идея. Просто замучаетесь несколько интерфейсов поддерживать. И я что-то не припомню, чтобы кто-то вообще где-то так делал. Но если прям очень хочется, я бы ограничился простой эвристикой "посмотреть на UserAgent". Если в нем написано, что юзер сидит под Windows - почти наверняка просто пользователь, иначе - продвинутый.