Рубрика:

Опубликовано:

02.10.2026

Изменено:

02.10.2026

Источники данных «Толпы»

02.10.2026

«Толпа» не придумывает ни одной строки. Всё, что видит посетитель, приходит из шести источников: заявок ваших виджетов, событий сайта через JS API, событий с сервера через вебхук, живого счётчика посетителей, итога за период и ваших объявлений. В статье разобрано, как подключить каждый источник, какие данные он передаёт, какие есть ограничения и почему в виджете нет генераторов «покупателей». Все источники настраиваются в карточках «Что показывать» и «Объявления» редактора и доступны на любом тарифе.

Источники коротко

ИсточникПример уведомленияКак подключить
Заявки из ваших виджетов«Новая заявка на обратный звонок · 12 минут назад»Переключатель, включён сразу
JS API«Оформлен заказ: Кроссовки Nike Pegasus · 5 минут назад»Строка кода на странице «Спасибо»
Вебхук«Новая запись на консультацию · 1 час назад · ✓ подтверждено»Запрос с вашего сервера с секретным ключом
Живой счётчик«Эту страницу сейчас смотрят 3 человека»Переключатель, включён сразу
Итог за период«За неделю на сайте оставили 38 заявок»Переключатель, по умолчанию выключен
Объявления«Бесплатная доставка от 3 000 ₽ · до 15 октября»Кнопка «Добавить объявление»

Время у событий всегда настоящее: виджет считает его от даты события («5 минут назад», «3 часа назад», «2 дня назад»). Подставить своё время в текст нельзя. В поле «Показывать события не старше» выбирается окно свежести: сутки, 3, 7, 14 или 30 дней (по умолчанию 7). Более старые события не показываются.

Заявки из ваших виджетов

Блок «Заявки из ваших виджетов» берёт заявки из других виджетов вашего аккаунта: «Обратный звонок», «Квизы», «Калькулятор», «Ловец лидов», «Мультикнопка», «Фокус», «Колесо фортуны» и «Вам подарок». У каждого источника есть свой переключатель, текст уведомления (до 90 символов) и «Ссылка при клике». Справа виден счётчик реальных событий за окно свежести, например «2 за 7 дней», или «пока нет».

Что попадает в уведомление:

  • Только текст источника и время. Имя, телефон, email и текст сообщения из заявки не показываются никогда. Промокоды и контакты из колеса фортуны и подарка тоже: в их текстах {item} заменяется только названием приза, например «Выигран приз в колесе: Скидка 10%».
  • Город, если вы его разрешили. Переключатель «Показывать город, если он есть в заявке» добавляет город, но только из поля «Город» самой заявки (квиз, калькулятор, ловец лидов) или из события сайта. По IP город не определяется.
  • Без спама и повторов. Заявки, помеченные как спам, не показываются. Один человек (один телефон или email) даёт одно уведомление за 30 минут, даже если отправил форму три раза подряд.

Чьи именно заявки попадут в ленту, задаёт переключатель «Чьи заявки показывать»:

  • «Только с этого сайта» — вариант по умолчанию, в том числе для уже созданных виджетов. Заявка показывается только на том сайте, с которого её отправили: виджет сравнивает адрес страницы заявки с сайтом, где стоит код «Толпы», приставка www. значения не имеет. Если в аккаунте несколько сайтов, заявки не перепутаются. Если сайт запрещает браузеру передавать адрес страницы (заголовок Referrer-Policy: no-referrer), в этом режиме заявки не показываются.
  • «Только выбранных виджетов» — заявки отмеченных в списке виджетов аккаунта, на каком бы сайте ни стоял код «Толпы».
  • «Со всех сайтов аккаунта» — подходит, если сайт в аккаунте один или все сайты относятся к одному бизнесу.

Под переключателем редактор показывает, на каких сайтах код этой «Толпы» уже замечен.

Блок «Заявки из ваших виджетов»: восемь источников со своими текстами и ссылками
Источники заявок: у каждого текст, ссылка и счётчик реальных событий

Сами заявки «Толпа» не собирает и в раздел «Заявки» ничего не добавляет. Куда приходят заявки исходных виджетов, описано в статье «Заявки из новых виджетов: раздел «Заявки», почта, Telegram, вебхук».

События сайта через JS API

JS API нужен, чтобы показывать события, которые происходят на вашем сайте без наших виджетов: заказы в корзине, записи, регистрации, подписки. Включите «Принимать события из JS API» в блоке «События вашего сайта», нажмите «Сохранить» и добавьте вызов на страницу, которая открывается после успешного действия. Код виджета на этой странице уже должен стоять.

Синтаксис

<script>
  window.AWCrowd = window.AWCrowd || [];
  AWCrowd.push({
    type: 'order',
    item: 'Кроссовки Nike Pegasus',
    url: '/catalog/pegasus/',
    city: 'Пермь'
  });
</script>

Здесь type задаёт вид события, а item (что заказали), url (куда ведёт клик) и city (город, если известен) необязательны. Первая строка позволяет вызывать AWCrowd.push() до того, как загрузился код виджета: событие встанет в очередь и отправится, как только виджет загрузится. Поэтому порядок скриптов на странице не важен.

Поля события

ПолеЧто передатьОграничения
typeВид события: order, signup, booking, lead, review, subscribe, customНеизвестное значение считается custom
textСвой текст вместо стандартногоДо 100 символов. Обязателен для custom. Без времени («только что», «5 минут назад»)
itemТовар или услугаДо 100 символов, добавляется через двоеточие
cityГородДо 40 символов, только буквы, пробел, дефис, точка. Показывается, если включён показ города
urlСсылка при кликеПуть сайта (/catalog/…) или адрес с http:// или https://. Кириллический домен (https://пример.рф/…) виджет сам переводит в punycode, русские буквы в пути кодирует
imageКартинка товара вместо иконкиТолько https://, кириллический домен тоже переводится в punycode
name, consentИмя и отметка согласия на его показИмя показывается как «Анна К.» и только при consent: true, см. ниже

Стандартные тексты по видам: order «Оформлен заказ», signup «Новая регистрация», booking «Новая запись», lead «Новая заявка», review «Новый отзыв», subscribe «Новая подписка», custom «Новое событие» (для него нужен свой text). Заголовок уведомления собирается как «текст: item», например «Новая запись: Стрижка и укладка».

Примеры

Своё событие без товара:

<script>
  window.AWCrowd = window.AWCrowd || [];
  AWCrowd.push({ type: 'custom', text: 'Забронирован столик на вечер' });
</script>

Заказ с картинкой товара, значения подставляет ваша CMS:

<script>
  window.AWCrowd = window.AWCrowd || [];
  AWCrowd.push({
    type: 'order',
    item: 'Диван «Сканди»',
    url: '/catalog/skandi/',
    image: 'https://ваш-сайт.ru/img/skandi.jpg'
  });
</script>

Форма записи без перезагрузки страницы: событие отправляется только после успешного ответа сервера.

fetch('/api/booking', { method: 'POST', body: new FormData(form) })
  .then(function (r) {
    if (r.ok) {
      window.AWCrowd = window.AWCrowd || [];
      AWCrowd.push({ type: 'booking', item: 'Консультация юриста' });
    }
  });

AWCrowd.push() возвращает true, если событие отправлено, и false, если приём событий из JS API выключен в настройках (в консоли браузера появится предупреждение). Неверная ссылка или картинка не отбрасывается молча: сервер отклоняет такое событие с ошибкой bad_url или bad_image.

Пауза показа

Если на сайте открывается ваше собственное окно, которое «Толпа» не распознала, приостановите уведомления на это время:

AWCrowd.pause();   // открыли своё окно
AWCrowd.resume();  // закрыли

Ограничения и защита от мусора

  • Принимаются только вызовы со страниц вашего сайта: служебный токен в коде виджета привязан к домену.
  • Повтор того же события (вид, текст, товар) с того же адреса в течение 10 минут не дублируется. Обновление страницы «Спасибо» не создаст второй заказ.
  • Не больше 500 событий на виджет в сутки (JS API и вебхук вместе) и не больше 300 запросов за 5 минут с одного адреса. Живой сайт в эти пределы не упирается.
  • У событий JS API нет отметки «подтверждено»: вызвать AWCrowd.push() технически может любой посетитель из консоли браузера.

Последние 30 событий сайта видны в списке «Последние события сайта» внизу блока. Лишнее событие можно убрать кнопкой «Скрыть» и вернуть кнопкой «Вернуть». Скрытое событие пропадает с сайта в течение минуты.

Входящий вебхук

Вебхук подходит, когда заказ или запись фиксирует сервер: CMS, CRM, интернет-магазин, сервис онлайн-записи. Такой запрос невозможно подделать со страницы, потому что он идёт с секретным ключом. Поэтому события вебхука могут показываться с отметкой «✓ подтверждено».

Как включить

  1. В блоке «События вашего сайта» включите «Принимать события по вебхуку (с отметкой «подтверждено»)».
  2. Нажмите «Создать ключ». В поле «Секретный ключ» появится ключ из 32 символов, он же подставится в пример запроса.
  3. Нажмите «Сохранить». Новый ключ начинает работать после сохранения, старый перестаёт. Если включить вебхук без ключа, кабинет попросит нажать «Создать ключ».
  4. Скопируйте пример кнопкой «Скопировать» и передайте адрес и ключ разработчику или вставьте в настройки своей системы.

Ключ храните только на сервере. Не вставляйте его в код страниц: тогда его увидит любой посетитель.

Блок «События вашего сайта»: код JS API, ключ и пример вебхука, последние события
JS API, вебхук с кнопкой «Создать ключ» и список «Последние события сайта»

Запрос

  • Метод и адрес: POST https://app.allwidgets.ru/s/crowd/hook/index.php?uuid=<идентификатор виджета>. Готовый адрес с вашим идентификатором показан в примере в редакторе.
  • Ключ: заголовок X-AW-Key (или поле key в теле).
  • Тело: JSON с заголовком Content-Type: application/json (до 16 КБ) или обычная форма application/x-www-form-urlencoded.
  • Поля те же, что у JS API: type, text, item, city, url, image, name, consent. Дополнительно time: время события в ISO-8601 или unix-времени, не старше 30 дней и не в будущем. Без time берётся момент запроса.
curl -X POST 'https://app.allwidgets.ru/s/crowd/hook/index.php?uuid=ВАШ_UUID' \
  -H 'X-AW-Key: ВАШ_КЛЮЧ' \
  -H 'Content-Type: application/json' \
  -d '{"type":"order","item":"Диван «Сканди»","city":"Пермь","url":"https://ваш-сайт.ru/catalog/skandi/","time":"2026-10-02T12:00:00Z"}'

То же на PHP, например в обработчике нового заказа:

$ch = curl_init('https://app.allwidgets.ru/s/crowd/hook/index.php?uuid=ВАШ_UUID');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['X-AW-Key: ВАШ_КЛЮЧ', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode(['type' => 'order', 'item' => $product_name, 'url' => $product_url], JSON_UNESCAPED_UNICODE),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 5,
]);
$answer = curl_exec($ch);
curl_close($ch);

Ответы

КодОтветЧто значит
200{"ok":true,"id":…,"dup":false}Событие принято
200{"ok":true,"id":…,"dup":true}Такое же событие с этого адреса уже было за последние 10 минут, второе не создано
400bad_jsonТело с типом JSON не разобралось
401unauthorizedНет ключа, ключ неверный, виджет не найден или отключён
409disabledВебхук выключен в настройках виджета
422text_required, no_time_in_text, bad_timeДля custom не передан text; в тексте есть время; time старше 30 дней, в будущем или не распознано
422bad_url, bad_image, idn_unsupportedurl не начинается с https://, http:// или /; image не с https://; кириллический домен не удалось перевести в punycode (тогда передайте домен в виде xn--…). В ответе есть поле message с пояснением
429rate_limited, daily_quotaСлишком много запросов за 5 минут или исчерпан лимит 500 событий в сутки
503unavailableВременная недоступность, повторите через время из заголовка Retry-After

Отметку у событий вебхука включает переключатель «Показывать отметку «✓ подтверждено» у событий вебхука». Новые события появляются на сайте в течение минуты.

Имя человека: только с согласием

По умолчанию «Толпа» не показывает имён. Переключатель «Показывать имя, если человек дал согласие» разрешает имя только у событий JS API и вебхука, переданных с полями name и consent: true. Имя сокращается: «Анна Ковалёва» превращается в «Анна К.».

AWCrowd.push({ type: 'review', item: 'Кухня «Лофт»', name: 'Анна Ковалёва', consent: true });

Передавайте consent: true, только если человек на вашем сайте отдельно согласился на показ имени, например отдельной галочкой «Согласен, чтобы моё имя показывалось на сайте». Показ имени посетителям сайта означает распространение персональных данных, для него 152-ФЗ (ст. 10.1) требует отдельного согласия. Ответственность за согласие несёт владелец сайта. Из заявок наших виджетов имена не показываются никогда.

Живой счётчик посетителей

Блок «Живой счётчик посетителей» показывает, сколько людей прямо сейчас на сайте или на этой странице. Как он считает:

  • Каждая открытая и видимая вкладка с кодом виджета примерно раз в 50 секунд сообщает, что посетитель на месте (на больших сайтах реже). Человек считается присутствующим 2 минуты после последнего сигнала. Сигналы идут не дольше 30 минут с одной страницы.
  • Несколько вкладок одного браузера считаются одним человеком.
  • С одной сети учитывается не больше 5 человек. Офис за общим адресом может быть занижен, но накрутить счётчик скриптом с одного компьютера не получится.
  • Поисковые роботы и автоматические браузеры не считаются.
  • Множителей и минимальных значений «для красоты» нет. Cookie не используются, IP-адреса не хранятся.

Настройки:

  • «Что считать»: «Эту страницу, а если мало — весь сайт», «Только эту страницу» или «Весь сайт».
  • «Показывать, если человек не меньше»: порог, не меньше 2, по умолчанию 3. Посетитель, который видит уведомление, тоже считается. Если людей меньше порога, уведомление не показывается.
  • «Текст для всего сайта», «Текст для этой страницы» и «Подпись второй строкой». В текстах {n} заменяется числом, а {человек|человека|человек} выбирает слово в нужной форме для 1, 2–4 и 5+.

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

Блоки «Живой счётчик посетителей» и «Итог за период» в редакторе
Живой счётчик и итог за период: пороги и тексты с переменными

Итог за период

Блок «Итог за период» показывает одно уведомление вроде «За неделю на сайте оставили 38 заявок». Число считается по реальным событиям включённых источников: заявкам виджетов, событиям JS API и вебхука. Повторы одного человека за 30 минут и скрытые события не учитываются. Рядом с переключателем видно текущее значение, например «сейчас: 8 за 7 дней».

  • «Период»: «Сутки», «Неделя» или «30 дней».
  • «Показывать, если событий не меньше»: ниже порога уведомление не показывается. По умолчанию 10.
  • «Текст» с теми же переменными {n} и {заявку|заявки|заявок}. Период в тексте укажите словами так же, как выбран выше: если выбраны сутки, не пишите «за неделю».
  • «Ссылка (необязательно)», например на страницу отзывов.

Объявления

Карточка «Объявления» для фактов, которые не являются событиями: акции, условия доставки, гарантии, рейтинг со ссылкой на источник. Кнопка «Добавить объявление» добавляет строку, всего до 10 объявлений. У каждого есть:

  • иконка: «Рупор», «Скидка», «Доставка», «Рейтинг», «Подарок», «Время», «Гарантия», «Информация», «Сердце» (изображений людей нет);
  • заголовок до 90 символов и вторая строка до 120 символов;
  • ссылка: путь сайта (/dostavka/) или адрес с https://;
  • переключатель «Показывать» и кнопки «Выше», «Ниже», «Удалить».

Объявления показываются по очереди, каждое не больше одного раза за визит, и никогда не получают отметку времени. Если в тексте объявления есть «только что» или «N минут назад», редактор предупредит, а «Сохранить» вернёт ошибку. Если текст похож на событие с человеком («Игорь из Пензы купил…»), редактор подскажет переписать его как факт об акции или условиях.

Карточка «Объявления»: предупреждение о законности и два объявления
Объявления: иконка, заголовок, вторая строка и ссылка

Почему без выдуманных людей: закон и честность

Многие сервисы социального доказательства показывают случайные имена, города и суммы: «Игорь из Пензы только что купил ноутбук». Посетитель видит покупку, которой не было. В «Толпе» такой возможности нет намеренно, и вот почему.

  • Закон «О рекламе» (38-ФЗ). Статья 5 требует, чтобы реклама была добросовестной и достоверной; недостоверной считается реклама со сведениями, которые не соответствуют действительности. За нарушение статья 14.3 КоАП предусматривает штраф, для организаций до 500 тысяч рублей. Считается ли уведомление на собственном сайте рекламой, вопрос толкования, но выдуманная покупка в любом случае сообщает неправду о спросе на товар.
  • Закон «О защите прав потребителей». Статья 10 даёт покупателю право на необходимую и достоверную информацию о товаре. Ложное впечатление, что товар массово покупают, вводит в заблуждение. Кроме того, такое введение в заблуждение может рассматриваться как недобросовестная конкуренция (закон «О защите конкуренции», ст. 14.2).
  • Персональные данные (152-ФЗ). Имя и город реального покупателя на сайте означают распространение его персональных данных, для этого нужно отдельное согласие. Поэтому по умолчанию имён нет, а город берётся только из заявки или события, которые вы передали сами.
  • Доверие. Посетители замечают, что один и тот же «покупатель» появляется каждый день. Одна такая находка перечёркивает доверие к сайту сильнее, чем отсутствие уведомлений.

Это не юридическая консультация. Если сомневаетесь в конкретной формулировке, уточните у юриста.

Что можно и чего нельзя писать в объявлениях

МожноНельзя
«Бесплатная доставка от 3 000 ₽ · до 15 октября»«Игорь из Пензы только что оформил заказ»
«Рейтинг 4,8 на Яндекс Картах» со ссылкой на карточку организации«Рейтинг 5,0», если подтвердить его нечем
«Гарантия 2 года на всю мебель»«Осталось 2 места», если мест на самом деле больше
«Скидка 10 % на кресла · до 20 октября»«Акция заканчивается через 15 минут» у бессрочной акции
«Работаем с 2015 года»«Сегодня купили 120 человек» без реального подсчёта

Для чисел о продажах используйте не объявления, а «Итог за период»: он считает реальные события. То же касается JS API и вебхука: через них можно передавать только то, что действительно произошло. За достоверность событий, переданных с вашего сайта, отвечает владелец сайта.

Хранение данных

  • События JS API и вебхука хранятся 90 дней, затем удаляются автоматически, скрытые тоже. В событии хранятся вид, текст, товар, город, ссылка, картинка и сокращённое имя (только при согласии). Телефонов, email и IP-адресов в событиях нет: для склейки повторов используется хеш, ключ которого меняется каждые сутки.
  • Заявки виджетов «Толпа» не копирует. Она читает их из вашего аккаунта и отдаёт на сайт только текст источника, время и город (если разрешён). Контакты из заявок в код страницы не попадают.
  • Живой счётчик хранит обезличенную отметку присутствия несколько минут, по ней нельзя восстановить IP или связать визиты разных дней.

Показы и клики по уведомлениям можно отправлять в Метрику целями aw_crowd_show и aw_crowd_click, см. «Цели Яндекс Метрики новых виджетов», а CTR по каждому источнику виден на странице статистики виджета.

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

Поделиться

Попробуйте виджеты для сайта бесплатно!