Vivaldi: Как мы подсчитываем количество пользователей?

  • Совсем скоро Vivaldi изменят технологию, с помощью которой компания считала пользователей своего браузера. Идентификация пользователей, которая многим так не нравилась постепенно уйдёт в прошлое. Но что придёт ей на замену и как теперь компания будет считать активных пользователей? Перевод заметки Vivaldi Technologies.


Как Vivaldi считает активных пользователей?

Подсчёт пользователей никогда не был для нас приоритетной задачей. Однако это довольно важный показатель, а значит, нам, так или иначе, приходится отслеживать количество активных пользователей. И наш метод подсчёта далек от идеала: несколько раз пользователи поднимали вопрос об уникальных идентификаторах (ID), которые мы используем, чтобы различать уникальных пользователей нашего браузера.

И хотя одного лишь вашего ID недостаточно, чтобы отследить вашу активность в сети, я всё же понимаю некоторую обеспокоенность активных пользователей. В мире, в котором слежка и постоянные утечки давно стали привычным явлением, любой вид идентификации пользователей может напугать тех, кто заботится о своей приватности.

Несколько месяцев назад я узнал, что количество активных пользователей можно подсчитать и без уникальных идентификаторов. Разумеется, я сразу же заинтересовался этой темой. Кроме того, на подходе мобильная версия браузера для Android, а значит, перед нами снова встаёт вопрос подсчёта аудитории. Пришло время изменить подход к столь важному, но рутинному процессу. Причём при разработке нового метода подсчёта нужно учесть сразу несколько платформ, на которых будет доступен браузер, и навсегда избавится от столь нелюбимых пользователями идентификаторов.

Однако, всё это будет не так просто, как могло показаться. Ниже я объясню, чего стоит ждать от новой системы мониторинга активной аудитории. Текста будет много, но вот основные моменты, на которые вы можете рассчитывать:
  • Начиная со следующий версии (Vivaldi 2.7) браузер будет делать ещё один запрос к системе подсчёта пользователей. Этот запрос будет аналогичен текущему и также будет включать в себя уникальный идентификатор, к которому добавятся и некоторые дополнительные параметры, которые понадобятся для реализации новой системы подсчёта (без идентификаторов).
  • Через несколько версий, старый счётчик активных пользователей (основанный на уникальных ID) будет полностью удалён.
  • Даже когда уникальный идентификатор исчезнет из запросов, которые мы отправляем, мы продолжим локально генерировать уникальные ID, чтобы учесть компьютеры, на которых установлено сразу несколько версий Vivaldi. Эти данные будут хранится на вашем ПК и не будут передаваться на наши серверы.

Обратите внимание, что код, который мы собираемся использовать для генерации новых запросов, полностью написаны на C++, и сразу же после того, как новая система подсчёта начнёт работу, мы опубликуем исходный код, чтобы каждый желающий мог убедиться в том, что система подсчёта работает именно так, как было заявлено.

Итак, почему всё так долго и так запутанно? А вот почему!

Подсчёт пользователей должен быть точным

Мы хотим убедится, что новый код, о которым мы сейчас говорим, работает именно так, как мы задумали, и даёт нам те же цифры, что и старая система подсчёта. Поэтому на первом этапе мы сохраним старую систему, а затем сравним полученные результаты. Прежде, чем навсегда избавится от старой системы идентификации уникальных пользователей, мы должны убедится, что новая система работает не хуже и выдаёт нам те же результаты.

После этого моя коллега Клаудия настроит наши сервера таким образом, чтобы они могли вести учёт активных пользователей, не прибегая к использованию уникальных идентификаторов. Нам может понадобится некоторое время, чтобы подобрать нужные настройки как в самом браузере, так и на нашем сервере. Результаты подсчёта пользователей с использованием ID и без должны полностью совпадать. И наконец, когда работа будет завершена, мы навсегда удалим уникальные идентификаторы из наших запросов. Пока мы надеемся, что это не займёт много времени, но сперва мы должны убедиться, что всё действительно работает.

Подсчёт пользователей должен соответствовать некоторым требованиям

Идея проста: если мы настроим браузер таким образом, чтобы раз в день он отправлял запрос на наш сервер, а затем посчитаем количество таких запросов за последнее 24 часа, мы узнаем и количество пользователей, которые запускали браузер в этот день. Этот показатель полезен, если мы хотим знать точное количество активных пользователей, но иногда нам нужно узнать сколько пользователей запускали браузер на этой неделе или в этом месяце. Этот показатель слегка сгладит просадки ежедневной аудитории, которые обычно наблюдаются вы выходные и праздничные дни. Реализовано это будет точно также: помимо ежедневных запросов браузер будет отправлять ещё и еженедельные / ежемесячные, чтобы мы могли посчитать количество пользователей, которые запускали браузер в обозначенный период.

Кроме того, есть и другие данные, которые были бы нам полезны (их совсем немного). Например, мы бы хотели знать, что пользователь впервые запустил браузер. Сделать это можно локально. Так что мы просто добавим эту информацию в первый ежедневный запрос.

Ещё нам бы  было бы полезно знать, как долго вы используете Vivaldi. Мы хотим создать браузер, которым вам бы действительно хотелось пользоваться. Поэтому мы хотим знать, достаточно ли у нас преданных пользователей. Так что к запросу мы добавим число недель, в течении которых вы используете браузер.

И наконец в запрос мы также добавит и информацию о том, сколько дней браузер по каким-то причинам не смог отправлять запросы на сервер. Это поможет нам отследить количество вернувшихся пользователей.

Ну и в добавок к этом мы по-прежнему собираем информацию о вашем процессоре, разрешении экрана, и настройках UserAgent. Это никак не связано с подсчётом активных пользователей, но это позволяет нам лучше понять, на какие устройства нам следует ориентироваться при разработке браузера.

Это не так страшно, как кажется. Многие компании, ориентированные на приватность, также собирают аналогичные данные, чтобы подсчитать количество своих пользователей. Нам кажется, что мы нашли надёжный способ отказаться от уникальных идентификаторов пользователей. Даже не верится, что решение было таким простым!


Подсчёт нескольких версий Vivaldi на одном ПК

Vivaldi предлагает пользователям несколько вариантов установки. Таким образом на одном ПК может быть установлено сразу несколько копий браузера: для всех пользователей, для каждого отдельного пользователя и stand-alone версия для флэшек. Всё это существенно усложняет подсчёт пользователей. И причин на то ровно две...

Во-первых, пользователь мог установить на компьютер несколько копий браузера, чтобы протестировать различные версии. В этом случае мы бы хотели считать все эти браузеры как одного пользователя. Но мы должны убедиться, что всеми этими версиями браузера пользуется один человек. Тогда вместо нескольких запросов мы могли бы отправлять только один.

Во-вторых, несколько человек могут использовать один компьютер и одну учётную запись, но каждый из них может пользоваться собственной portable-версией Vivaldi. В этом случае мы должны понимать, что каждую из этих версий браузера используют разные люди, каждого из которых нужно считать отдельно. Смешивать их запросы в один было бы неправильно.

До сих пор у нас было решение этой проблемы: мы просто сохраняли копию идентификатора пользователя в файле LocalState и в профиле пользователя ОС. Если одна из этих копий отсутствовала, она устанавливалась заново. Если копии не совпадают, значит, скорее всего, речь идёт о portable-версии, перенесённой с другого ПК (то есть сценарий №2). Во всех остальных случаях мы считаем, что это сценарий №1.

Я так и не нашёл способ решить эту проблему без использования уникальных идентификаторов. Поэтому нам придётся оставить ID, но хранится они будут локально, то есть только на вашем ПК. Мы не будем передавать эти данные на наши серверы. Так мы будем уверены, что не посчитали одного и того же пользователя несколько раз.

Кажется, что мы уж слишком заморочились со всякими мелочами. И всё это ради такой незначительной вещи как подсчёт пользователей... Но такова реальность: нам нужно знать нашу аудиторию!

Почему подсчёт так важен?

Чем больше активных пользователей мы имеем, тем больше крутых возможностей мы можем реализовать. В основном это сводится к партнёрским соглашениям. Недавно Кристиан подробно рассказывал об этом в своём блоги, рекомендую ознакомится.

Чтобы выстроить такие взаимоотношения и иметь возможность заключать выгодные нам сделки, нам нужно точно знать, сколько пользователей мы сейчас имеем. Для компаний, с которыми мы сотрудничаем, количество пользователей демонстрирует, какую аудиторию они смогут привлечь с помощью нашего браузера. Чем больше у нас пользователей, тем выше потенциальный отклик.

Но помимо коммерческих соглашений у нас есть и ряд технических партнёров. Если мы пытаемся реализовать функционал, затрагивающий возможности ОС или конкретного железа (например, поддержку Razer Chroma, которую мы добавили несколько месяцев назад), широкая аудитория браузера с большей вероятностью сможет гарантировать нам адекватное техническое сопровождение и поддержку. Чем большее количество пользователей сможет воспользоваться новым функционалом, тем выше интерес сторонних компаний.

Вот почему счётчик так важен. Наши партнёры должны видеть, что мы сделали всё возможное для того, чтобы он работал максимально точно. Числа ничего не значат, если за ними не стоят реальные пользователи, которые действительно используют наш браузер.

Вот почему мы тай серьёзно подошли к такому простому процессу. Подсчёт пользователей должен быть точным, но при этом мы не хотим вмешиваться в вашу личную жизнь и собирать избыточные данные. Надеюсь, отказ от уникальных идентификаторов и переход к системе подсчёта, основанной на простых запросах, убедит вас в том, что для нас действительно важна ваша приватность.

Если остались какие-то вопросы или нужны более детальные объяснения (тема действительно очень сложная), не стесняйтесь спрашивать обо всём, что вас интересует, в комментариях. Я постараюсь ответить.

Жюльен Пикалауса,
разработчик ПО,
Vivaldi Technologies
14 августа 2019 г.

Рассказать друзьям через AddThis или Shareaholic
Translate via GoogleYandexBing or Promt
Другие заметки о Vivaldi
The same in English

Комментарии

Популярные сообщения