Перейти к содержимому

Блог

LinkedIn читает профиль до первого клика: восемь путей своей слежки

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

Команда ARMANOS7 мин

Счётчик уходит на тот же сайт

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

Поэтому площадка считает вас своими же запросами, и идут они вперемешку с нужными. Отличает их только кусок адреса, потому что домен у всего одинаковый, и по домену тут не отличить ничего.

Восемь адресов, на которые уходит визит

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

Три последних это голые слова: beacon, telemetry и viewedEntity. В адресах они встречаются и на чужих сайтах, поэтому судить по ним можно только внутри самой площадки, и правило заперто на её адресах.

Что стоит в адресеЧто уходит вместе с ним
/li/trackОтчёт о вашем действии на самом сайте
/px/Счётчик-картинка на адресе самой площадки
/li/ftaОтметка первого касания: откуда вы пришли
/csp/ftaТо же касание, снятое вторым адресом
/voyager/api/identity/profileViewПросмотр чужой страницы, названный прямо
beaconОтчёт, уходящий даже при закрытии вкладки
telemetryОбщий поток показаний страницы о вас
viewedEntityЧто именно попало вам на экран

Два запроса выдают вас не всегда

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

Переписка так рассказывает, что письмо прочитано и что вы набираете ответ прямо сейчас. Поиск рассказывает, что вам показали и на что вы посмотрели, и обе подсказки уходят до вашего ответа.

Запрос площадкиКогда он становится отчётом
/voyager/api/messaging/conversationsВ адресе появилось seen или typing
/voyager/api/searchВ адресе появилось track, analytics или impression

Чужие счётчики на той же странице

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

Одиннадцать адресов площадке вообще не принадлежат: поисковик, соцсеть, реклама, сборщик отказов. Остальные стоят на её собственных адресах и на адресе её хранилища картинок, и это тоже отдельные адреса, а не пути.

РазрядАдресов
Реклама и аналитика5
Отметки визита6
Тег Insight1
Счётчики со стороны11

Тег площадки стоит на чужих сайтах

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

Стоит он не на площадке, а на чужом сайте, и сообщает туда о вашем заходе. Поэтому площадка знает про магазины и блоги, где вы в свой аккаунт никогда не входили, и связывает их с аккаунтом по тем же мелочам браузера.

Просмотры профилей площадка считает сама

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

Отдельный сценарий «Работа / LinkedIn» с четырьмя дневными потолками у нас был и слит со сценарием использования «Соцсети»: выбрать его теперь нельзя, а потолков у соцсетей десять. Потолок это не запрет, а ориентир: полоса «Безопасный темп» желтеет на четырёх пятых и остановить вас не пытается.

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

Действие за деньПотолок
Просмотры профилей50
Приглашения15
Сообщения25
Поисковые запросы30

Десять потолков сценария «Соцсети»

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

Считать эти действия за вас программа не умеет, поэтому строки под полосой, в блоке «Безопасный предел в день», это числа без цвета, с порогом «предупреждение с N» второй строкой. Красится только полоса открытых страниц, а решение по остальным остаётся вашим.

ДействиеПервый деньПолный потолок
Просмотры профилей1050
Приглашения315
Поисковые запросы630
Подписки840
Лайки24120
Комментарии630
Личные сообщения525
Заявки в друзья420
Посты315
Смены аккаунта12

Ссылка помнит, откуда вы её взяли

Ссылку на чужую страницу вы копируете вместе с хвостом. В хвосте лежит отметка о том, откуда вы пришли и кто вам эту страницу показал, и живёт она там до первого перехода.

Программа знает сорок таких меток, среди них trk, lipi, trackingId и li_fat_id, и срезает их при переходе по ссылке в профиле, а сама страница открывается та же. Скопированной ссылки это не касается: чистится то, куда вы идёте, а не то, что вы копируете.

Три списка счётчиков у одного сценария

Сценарий «Соцсети» подключает к профилю три списка сразу: общий, список этой площадки и список соцсетей. Список площадки это те восемь кусков адреса и два правила по запросу, о которых шла речь выше, и работает он только на её собственных адресах.

Шестнадцать из сорока меток, которые программа срезает из ссылок, пришли именно с адресов этой площадки: trk, trkInfo, lipi, lici, trackingId, refId и остальные. Чистка ссылок в сценарии включена, и переход по ссылке из письма приходит на площадку без хвоста.

Чужие сайты от этого не ломаются

Голое слово beacon стоит в адресах на множестве сайтов, и почти везде это обычный файл, а не отчёт. Перекрытое везде, оно ломало посторонние страницы: ради этого правила и заперты на хостах площадки.

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

Как посмотреть это у себя

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

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

  1. 1

    Откройте вкладку с запросами

    До перехода на площадку, иначе первые запросы вы пропустите.

  2. 2

    Отфильтруйте по куску адреса

    Строка поиска над списком принимает кусок адреса целиком.

  3. 3

    Посмотрите на время

    Отчёты уходят раньше, чем страница дорисуется до конца.

  4. 4

    Повторите в профиле

    Сравните, что уходит из обычного окна и что из профиля.

Чего это не утверждает

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

Где это можно увидеть самому

Каждое число выше выходит из кода, который можно открыть и запустить.

Восемь кусков адреса и два правила по запросу стоят одним списком
apps/desktop/src/lib/tracker-rules.js
На чужом сайте эти правила не срабатывают ни одним словом
apps/desktop/test/слежка-по-хостам.js
Встроенный движок и ARMANOS Browser перекрывают на профиле одно и то же
apps/desktop/test/слежка-по-хостам.js
Чужие счётчики перечислены по разрядам, адрес к адресу
apps/desktop/assets/trackers_linkedin.json
Дневные потолки сценариев лежат в одном месте
packages/shared/src/index.js
Метки, которые уходят из вашей ссылки, названы списком
packages/shared/src/index.js

Вопросы

Я ничего не нажимал, что там вообще считать?
Сам заход и есть событие: страница отчитывается о том, что открылась, кем открылась и откуда пришла. Нажатие добавляет к этому подробностей, но начинается всё без него.
Режим инкогнито это закрывает?
Он забывает куки при закрытии окна и ничего не делает с отчётами: они уходят из любого окна одинаково. Площадка узнаёт не куки, а машину и путь, которым вы пришли.
А обычный блокировщик рекламы справится?
С чужими счётчиками справится, их адреса в его списках есть. Запрос на сам сайт площадки он пропускает, потому что отличить его от загрузки ленты по домену нельзя.
Прокси тут помогает?
Прокси меняет адрес, с которого вы пришли, и на содержимое отчётов не влияет. Просмотр чужой страницы уйдёт в отчёт с любого адреса.
Если эти отчёты перекрыть, площадка заметит?
Перекрытый отчёт выглядит как неудавшийся запрос, а их у любого браузера хватает и без вас. Заметнее другое: темп действий за день, который площадка считает у себя на сервере.
Сколько таких аккаунтов выдержит один компьютер?
Счёт тут не в аккаунтах, а в том, насколько профили непохожи и насколько спокоен ваш темп. Пока экран, шрифты и память у профилей разные, вопрос переходит в другой: насколько разные.

Посмотрите, что отвечает ваш браузер

Проверка читает 12 значений и никуда их не отправляет.