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

Агентствам

Для агентств

Вы ведёте чужие аккаунты за чужие деньги. Эта страница о том, что решает, кто к чему прикасается: места, роли, группы, профиль, открытый в одном месте, и журнал, который отвечает потом.
5
Ролей, от участника до владельца
3 $ / мес
Одно дополнительное место в команде
3
Места в Business, владелец среди них
62
Названных видов событий в журнале

Агентство теряет аккаунты на людях

Двенадцать клиентов, четыре человека, один список логинов в таблице. Так и живут, пока кто-нибудь не откроет чужой аккаунт не с той машины.

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

Как это устроено сегодня

Обычные договорённости держатся на доверии и привычке и работают, пока команда небольшая.

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

ПорядокДержится, покаЧего не может
Список логинов в таблицеНикто не уходитЗабрать доступ и сказать, кто им пользовался
Один общий ноутбукРаботает один человекДать двоим работать не встречаясь
По профилю браузера на каждогоВсе аккаунты ваши собственныеУбрать куки клиента с личной машины
Пароли в перепискеПереписка не утеклаУстареть и перестать расходиться дальше
Одно пространство ARMANOSПодписка оплаченаРешать, как площадка оценит профиль

Место занимает человек

Места считаются по людям, а не по машинам. В Business их три, включая вас, а дополнительное место стоит три доллара в месяц.

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

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

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

Business, 200 профилей
42 $ / мес
Два места сверх трёх включённых
+6 $ / мес
Итого в месяц
48 $
Тот же заказ на год
38 $ / мес, 456 $ за год

Браузер только просит. Окончательную цену называет сервер при оформлении.

FreeProfessionalBusinessEnterprise
Профили2от 10 до 100от 200 до 10005000 и больше
Цена в месяц0 $от 6 до 25 $от 42 до 139 $по договору
Мест в команде, вместе с владельцем11320
Дополнительное место в месяцне продаётся3 $3 $по договору
Дополнительный профиль в месяцне продаётся2 $2 $по договору
Машины12520
Ключи для программ–ДаДаДа
Экран «Участники»: счётчик мест показывает, что занято 1 место из 3 на тарифе Business, рядом кнопка «Пригласить участника», в списке один владелец, ниже раздел «Журналы» с вкладками «Действия», «Сессии профилей» и «Журнал IP».
Участники, в программе. Число мест приходит из подписки, а не рисуется на экране.

Пять ролей и что каждой можно

Роли такие: владелец, администратор, менеджер, оператор и участник. Это ступени, поэтому старшая закрывает требование младшей.

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

Правка профиля вообще не вопрос роли. Переименовать профиль или сменить ему прокси может только та запись, которая его завела, а всем прочим сервер отвечает, что такого нет.

Что можноУчастник, операторМенеджерАдминистраторВладелец
Открыть профиль, который ему далиДаДаДаДа
Заводить профили в общей нормеДаДаДаДа
Переименовать или удалить свой профильДаДаДаДа
Группы: завести, поправить, удалить–ДаДаДа
Библиотека прокси: добавить, поправить, удалить, забрать с паролями–ДаДаДа
Запросить доступ у поставщика прокси–ДаДаДа
Сценарии и расписания: завести, поправить, удалить–ДаДаДа
Прочитать пароль прокси из библиотекитолько вместе с открытым ему профилемДаДаДа
Приглашать, менять роли, открывать группы––ДаДа
Тариф, места, доплата за профили, оплата––ДаДа
Читать экран «История» и раздел «Журналы»––ДаДа
Отвязать чужую машину––ДаДа
Нельзя исключить и понизить–––Да

Группы сужают видимое участнику

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

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

  1. 1

    Заведите группу под клиента

    Экран «Группы». Назовите её так же, как клиент назван у вас в счетах.

  2. 2

    Положите в неё профили этого клиента

    У профиля одна группа, а профили вне групп ограниченному участнику не видны.

  3. 3

    Пригласите подрядчика оператором

    Сначала он заводит запись, потом вы приглашаете адрес, и он принимает в течение семи дней.

  4. 4

    Откройте ему одну эту группу

    Экран «Участники», кнопка «Группы» у этого человека. Одна выбранная группа значит один видимый клиент.

  5. 5

    Отдайте профили, которые он откроет

    Группа сужает видимое, а запускать позволяет именно общий доступ, пункт «Открыть доступ команде» в меню профиля.

Экран «Группы» с группами Marketplaces, Social media, Ad accounts и Clients.
Экран «Группы». Группы хранятся на этом компьютере; когда профиль уходит в аккаунт, его группа заводится и там, и видимость участникам раздаётся по группам аккаунта.

Ограничение остаётся в вашем пространстве

Записи доступа пишутся к вашему пространству, а не к человеку. Ваше ограничение не уезжает с подрядчиком к следующему клиенту и стирается, когда он от вас уходит.

Профиль открывается в одном месте

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

Запуск занимает профиль на три минуты, а программа продлевает занятость каждые шестьдесят секунд. Второй машине отказывают по имени: кто держит и с какого времени.

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

Ответ
409 Conflict
error
profile_busy
busy.name
Анна, MacBook Pro
busy.since
2026-09-10T09:14:02Z
busy.sameUser
false

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

Занятость живёт на сервере

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

Журнал переживает самого человека

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

Строки подставляют почту участника и имя профиля, поэтому вы читаете слова, а не номера.

Из одних и тех же строк собраны три вкладки раздела «Журналы» на экране «Участники»: «Действия» со всеми действиями, «Сессии профилей» с открытиями и закрытиями браузера и «Журнал IP» со входами и регистрациями машин, где есть адрес и страна. Читают журналы администратор и владелец.

  • Кто

    Почта участника, подставленная по его номеру.

  • Что

    Одно из 62 названий, например profile.start, team.role, proxy.secret.read.

  • Какой профиль

    Имя профиля и его сценарий, вынутые из подробностей записи.

  • Откуда

    Адрес, страна и имя машины у входов и регистраций машин.

  • Чьё пространство

    Записано в саму строку, поэтому история переживает исключение участника.

Что помечается подозрительным

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

Когда человек уходит из команды

Исключение человека и его собственный уход идут одной дорогой. Это одна сделка, и порядок в ней такой.

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

  1. 1

    Общие доступы снимаются в обе стороны

    И то, что открыли ему, и то, что он открыл из профилей, уходящих вместе с ним.

  2. 2

    Его занятость отпускается

    Профиль, который он держал, не остаётся занятым после его ухода.

  3. 3

    Профили переходят, ссылки на библиотеку прокси стираются

    Число перешедших профилей попадает в запись журнала.

  4. 4

    Слепки, совпавшие с вашей библиотекой прокси, стираются

    Сверяются адрес, порт и логин, поэтому ваш прокси не уедет в чужом профиле.

  5. 5

    Его машины удаляются

    Места под устройства возвращаются пространству.

  6. 6

    Приглашения и записи групп гасятся

    Непринятое приглашение сгорает, а ваше ограничение не следует за человеком.

Чего это не делает

  • Роли, группы и занятость профиля решают, кто к чему прикасается внутри вашей команды. О том, как площадка оценит профиль, они не говорят ничего.
  • У общего доступа нет ступеней. Доступа «только посмотреть» к профилю не существует: тот, кому вы его открыли, работает со всем внутри, включая куки и входы.
  • Куки не едут вместе с доступом. Сессия лежит в папке профиля на той машине, которая его открыла, а перевозка живой сессии идёт через папку синхронизации («Синхронизировать сессии» на экране «Движок») и только у закрытого профиля.
  • Занятость это правило сервера. Без сети или при недоступном сервере программа всё равно откроет профиль, поэтому две отрезанные машины могут открыть один аккаунт.
  • Единого входа и корпоративного домена нет. Каждый заводит запись сам, дальше вы приглашаете адрес, а непринятое приглашение умирает через семь дней.
  • Один человек, одно пространство. Фрилансер, работающий на два агентства, не может состоять в обоих, и вступление к вам значит уход из второго.

Как проверить

Каждая строка называет файл, который делает работу, и стенд, который держит её честной.

Места считаются при приглашении, при приёме под замком на строке и при каждом запуске профиля
apps/server/src/team/team.service.ts · apps/server/src/common/workspace/workspace.service.ts · apps/server/test/team-money-seats.js · apps/server/test/quota-race-postgres.js
Участник видит только открытые ему группы, и в списке, и при прямом запуске по номеру
apps/server/src/profiles/profiles.service.ts · apps/server/src/team/team.service.ts · apps/server/test/group-access.js
Две машины не держат один профиль: 409 с именем держателя, условный перехват, спад через три минуты
apps/server/src/profiles/profiles.service.ts (LOCK_TTL_MS) · apps/server/test/profile-lock.js
Уход забирает доступы, занятость, машины, непринятые приглашения и записи групп одной сделкой
apps/server/src/team/team.service.ts (detach) · apps/server/test/team-money-seats.js
В строке журнала лежат почта участника и пространство
apps/server/src/common/audit/audit.service.ts · apps/server/test/audit-filters.js · apps/server/test/team-money-seats.js
Пароль прокси из библиотеки достаётся менеджеру и старше или вместе с прикреплённым профилем
apps/server/src/proxies/proxies.service.ts · apps/server/test/proxy-secret.js

Вопросы

Может ли ключ прочитать больше хозяина?
Нет. На запрос ключа работает та же проверка роли, поэтому ключ участника с правом logs:read журнал всё равно не прочитает.
Что если последнее место возьмут двое?
Приём приглашения идёт под замком на строке вашей подписки, поэтому один получит место, а второй понятный отказ.
Исключение человека стирает его историю?
Нет. В каждой строке записано пространство, в котором всё случилось, поэтому журнал не читается через нынешний список участников.
Что будет, если оплата задержится?
Действующей подписке даётся три дня после даты продления, а программа работает сутки без связи с нами.
Кто может отвязать машину?
Свою может отвязать любой, чужую только администратор и владелец. Отвязанная машина не запустит профиль и не продлит занятость.

Всё агентство на одной подписке

В Business входят три места и пять машин. Дополнительное место стоит три доллара в месяц, и оформление считает их за вас.