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

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

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

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

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

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

Однако, всё это будет не так просто, как могло показаться. Ниже мы объясним, чего стоит ждать от новой системы подсчёта активной аудитории. Текста будет много, но вот основные моменты, на которые вы можете рассчитывать:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

14 августа 2019 г.

How we count our users

Join the Conversation

Comment