Как броим своите потребители

This post is also available in: English 日本語 Русский Français Español Deutsch Nederlands Српски Português 简体中文

Обновяване: проектът за премахване на нашия уникален идентификатор е замразен, след като се сблъскахме с неочаквани отклонения в броя на потребителите, преброени по други методи. Отделихме много време да проучим и разберем причините за това. Стигнахме до заключение, че броят на потребителите, които получаваме с помощта на уникалния идентификатор, е по-точен, така че засега ще се придържаме към него. В разработването на Vivaldi е важно както да не преброим твърде много потребители, така и да не преброим твърде малко.


От версия 2.7 на Vivaldi броенето на потребителите беше променено така, че постепенно да се откажем от използването на уникални идентификатори.

  • В момента отправяме допълнителна заявка към крайната точка за преброяване на потребители. Тази заявка е подобна на старата и включва уникалния идентификатор, но съдържа допълнителни параметри, които ще се използват от новата реализация без уникален идентификатор.
  • След няколко версии старата заявка за преброяване на потребители ще бъде премахната.
  • По-късно уникалният идентификатор ще бъде премахнат от новата заявка. Ще продължим да го генерираме локално, за да подпомогнем преброяването на компютри с няколко инсталации на Vivaldi, но ще се използва само локално.

Кодът, използван за генериране на новата заявка, е написан изцяло на C++ и ще бъде публикуван заедно с нашите издания на изходния код, което ще ви позволи да проверите дали кодът прави това, което твърдим, че прави.


Внедряване на преброяването на потребителите

Решихме да променим начина, по който броим потребителите на Vivaldi, защото някои хора смятат използването на уникален идентификатор като форма на проследяване, а ние искаме да избегнем това. Когато открихме по-добър начин за преброяване на нашите потребители по начин, който не изисква уникален идентификатор, решихме да го внедрим.

Многото етапи на внедряването са необходими, за да се уверим, че новият код работи по предназначение и че можем да се доверим на числата, отчетени от новия код.


Защо броим потребителите на Vivaldi?

Трябва да знаем броя на нашите потребители, защото наличието на повече потребители ни дава възможност да развиваме Vivaldi. Това се свежда най-вече до изграждане на партньорства за получаване на приходи и технически партньорства, като например това с Chroma на Razer. Колкото по-точен е броят, толкова по-добри сделки и подкрепа можем да получим.

Броим:

  • дневните потребители;
  • седмичните потребители;
  • месечните потребители.

Получаваме и следната информация:

  • когато нов потребител изпълни Vivaldi за първи път;
  • от кога потребителят използва браузъра;
  • броя на неактивните дни, за да разберем завръщащите се потребители;
  • архитектурата на процесора;
  • разделителната способност на екрана;
  • потребителския агент.

Последните три не са свързани с преброяването на потребителите, но информацията ни позволява да разберем за какви машини проектираме Vivaldi.


Преброяване на множество инсталации

Тъй като е възможно да имате няколко копия на Vivaldi в една и съща система, например чрез самостоятелни инсталации, това затруднява преброяването.

Когато някой инсталира Vivaldi многократно на компютъра си, използвайки отделни профили, искаме да го броим за един потребител.

От друга страна, когато няколко души използват собствена самостоятелна инсталация на Vivaldi (с помощта на собствен преносим диск) на един и същ компютър, в един и същ профил на операционната система, ние искаме да ги броим за отделни потребители.

За да можем да различаваме тези случаи, съхраняваме едно копие на уникалния идентификатор като част от файла LocalState и едно копие в потребителския профил на операционната система. Ако едно от копията липсва, то се настройва отново, като се използва другото налично копие. Ако и двете копия са налични, но не съвпадат, можем да приемем, че имаме работа със самостоятелна инсталация, която е била преместена в друга система (вторият сценарий). Във всички останали случаи приемаме първия сценарий.

За тази цел ще продължим да генерираме и съхраняваме уникални идентификатори, след като спрем да ги изпращаме. Те ще се използват само за да разберем дали Vivaldi трябва да си сътрудничи с други инсталации в системата, за да сме сигурни, че те ще бъдат преброени само веднъж.