Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Пользователям iconПользователям
Разработчикам iconРазработчикам
Администраторам iconАдминистраторам
Русский
  • Русский
  • English
Войти
    Документация пользователяС чего начатьFAQТермины
      Обновления платформыarrow
    • v2026.2.77v2026.1.76v2025.4.75v2025.4.74v2025.3.73v2025.2.72v2025.1.71v2024.4.70v2024.3.69v2024.2.68.2v2024.1.68
      Хранение и сбор данныхarrow
    • Ресурсы подписокРабота с базами данныхПрофиль подписчикаИмпорт профилей клиентов и обновление данныхЧастые ошибки при импорте профилейИмпорт данных по расписаниюУправление таблицами данныхАвтоматизация сбора данных о профилеМассовое обновление профилей клиентовDouble opt-in подпискаСтоп-спискиСвязи между профилямиЭкспорт истории профилейЭкспорт профилейАвтоматическое создание статического сегмента при импортеКак открыть CSV-файлМатчингТипы полей в базе данныхГлобальные контрольные группыМенеджер подписок
      Каналы коммуникацииarrow
      • Emailarrow
        • Рассылка с нуляarrow
        • Быстрый стартПервая Email-рассылка
        Рекомендации по взаимодействию с ISPНастройка собственного from-доменаНастройка и использование постмастеровКак работает email-трекинг
        Pusharrow
        • Mobile Pusharrow
        • Первая Mobile push-рассылкаНастройка и подключение
            Провайдеры Mobile Pusharrow
          • Firebase Cloud MessagingApple Push Notification ServiceHuawei Mobile ServicesRuStoreYandex.AppMetrica
            Интеграция приложения с Altcraftarrow
          • Обработка и добавление подпискиРегистрация событийПровайдеры: структура push-сообщения
          Web Pusharrow
        • Первая Web push-рассылкаНастройка ресурса и сайта
            Провайдеры Web Pusharrow
          • Firebase Cloud MessagingApple SafariMozilla Services
          Передача данных в платформуМетоды Web Push SDKPWA и Push-уведомления
            Миграция и перенос подписокarrow
          • Перенос push-подписок из стороннего сервисаПеренос push-подписок для SafariМиграция с OneSignal
        SMSarrow
      • Первая SMS-рассылка
        Telegramarrow
      • Telegram BotTelegram Group
        Maxarrow
      • MAX BotMAX Group
      Viber™WhatsAppNotifyСхема работы каналов коммуникацииРуководство: SMS-рассылка через VK NotifyРуководство: SMS-рассылка через УТШРуководство: push-рассылка через сервис от "Согласие"
      Сегментацияarrow
    • Статические сегментыДинамические сегментыОбновляемые сегменты
        Условия сегментацииarrow
      • Сегментация по данным профиляСегментация по взаимодействиям с сущностямиСегментация по активности в каналах коммуникации
          Сегментация по внешним даннымarrow
        • Сегментация по внешним даннымСегментация по внешним SQL-таблицамРекомендации по сегментации по внешним данным
        Сегментация по структуре профиля
      Лучшее время отправки (BST)Логические операторы "И" и "ИЛИ"Рекомендации по работе с сегментами
      Шаблоны сообщенийarrow
      • Работа с шаблонами сообщенийarrow
      • Работа в редактореEmail-шаблонSMS-шаблонPush-шаблонMAX-шаблонTelegram-шаблонWhatsApp-шаблонViber-шаблонNotify-шаблон
        Визуальный редактор для email-шаблонаarrow
      • Интерфейс редактораДобавление элементовЭлементы и их настройкиПользовательские блокиСтили элементаСтруктура элементов
      Блочный редактор для email-шаблонаФрагменты шаблоновИзображения в сообщенияхПерсонализация контента в сообщенияхФормирование таблиц на основе элементов массива
        Переменные и функции Altcraftarrow
      • Использование логических выражений в сообщенияхИспользование циклов в сообщенияхИспользование переменных маркета в сообщенияхИспользование функционала JSONPath
        Динамический контент сообщенийarrow
      • Использование API-контента в сообщенияхИспользование HTML-контента в сообщенияхИспользование JSON-контента в сообщенияхИспользование контента из SQL базы данных в сообщениях
      Импорт и экспорт шаблона сообщенияЭкспорт шаблона из PixcraftИмпорт шаблона из стороннего сервиса
      Рассылкиarrow
    • Броадкаст-рассылкаТриггерная рассылкаРегулярная рассылкаМультивариантный тест (A/B/n)РазмещенияРасписание рассылокТестирование расылокКалендарь рассылокУправление очередью сендера
      Кампанииarrow
    • Работа с КампаниямиЛокальные контрольные группы (ЛКГ)Ошибка нарушения стратификации при достижении лимитаРасширение аудитории в кампанииРазметка аудитории в кампаниях
      Сценарии автоматизацииarrow
    • Работа со Сценариями автоматизацииУзлы сценарияКлассические сценарии автоматизации маркетингаПриветственный сценарий: пошаговая настройкаАвтоматическое оповещение менеджера через сценарийСценарий брошенной корзиныОбработка циклов в сценариях автоматизации
      Маркетarrow
    • Настройки маркета
        Продуктыarrow
      • Создание продукта вручнуюИмпорт продукта из файлаИмпорт по расписаниюСегменты продуктов и SKUПодготовка YML-файла
      ЗаказыПеременные маркета в шаблонахРуководство: как отправить письмо подтверждения заказа
      Лояльностьarrow
    • Создание и настройка программы лояльностиИнтеграция лояльности с внешними системамиСоздание программы лояльности с нуляБазовые кейсы использования программы лояльностиСегменты заказовПромокоды
      Веб-слойarrow
      • Формыarrow
        • Создание формыarrow
        • Основные настройки формыКастомизация формы через дополнительный кодКонструктор формыОформление формыДействия и публикация формыУсловная постраничная логика в формах и опросах
        Аналитика данныхСвязывание данных канала и формыNPS-тестирование
        Пикселиarrow
      • Целевые действия клиентов и скоринг
        Попапыarrow
      • Создание и публикация попапаНастройка попапа в редакторе кодаУправление попапами вручную через скриптАналитика попаповРуководство: попап для подписки на pushБазовые кейсы размещения попапа через Менеджер теговКейс: Создание попапа с виджетом "Колесо фортуны"
        Менеджер теговarrow
      • Настройка и установка Менеджера теговТипы триггеровТипы переменныхСвязывание пикселя и Менеджера тегов
      Отчеты и аналитикаarrow
    • Отчет по каналамОтчёт по трафику
        Сводный отчётarrow
      • Все показатели сводного отчета
      Когортный отчётВремя жизниВоронка конверсииЦелиПрирост аудиторииКарта кликов (Email)Отчет по программам лояльностиОтчёт о возвратахОтчёт о недоставкахОтчет по глобальным контрольным группам
      Интеграцииarrow
    • Синхронизация статических сегментовMAXЯндекс.АудиторииАудитории Google AdsFacebook Ads ManagerОбласть видимости интеграцииWhatsAppViberTildaYandex AppMetricaLpgeneratorVK РекламаПередаваемые при синхронизации данные
        Интеграция сторонних сервисов с Altcraft через Albatoarrow
      • Подключение Altcraft к AlbatoЗапуск приветственного сценария через AlbatoПередача данных о событииОтправка триггерной рассылкиРегистрация событийИмпорт данных из Google Sheets через AlbatoПередача данных из Altcraft
      Notify
        Захват событийarrow
      • Захват событий AltcraftТипы событий для захватаСтруктуры сообщений захвата событийОтправить JSON-запрос батчемОтправить сообщение в очередь RabbitMQОтправить сообщение в exchange RabbitMQОтправить сообщение в Kafka brokerПредварительное тестирование события
      Настройкиarrow
    • Настройки аккаунтаНастройки атрибутовПоисковые теги: создание и применениеПользовательские ссылкиВиртуальные сендерыПолитики отправки
        Пользователи и разграничение доступаarrow
      • Двухфакторная аутентификация (2FA)
        Подключенияarrow
      • Подключение к Facebook AdsПодключение к Google AdsПодключение к Яндекс.Аудиториям™Подключение к 360dialogПодключение к EdnaПодключение к Devino TelecomПодключение к SMS TrafficПодключение к VK Рекламе™Подключение к MTS OmniChannelПодключение через OAuth2Подключение через Basic AuthenticationПодключение через Token AuthenticationПодключение через Custom AuthenticationПодключение к MAXПодключение к NotifyПодключение к Rapporto
      Журнал аудита
      API-запросы: с чего начатьarrow
    • Импорт и обновление профиляЗапуск триггерной рассылкиОтправка профиля клиента в сценарий
    Архив документацииБиблиотека email-маркетолога
  • Сегментация
  • Рекомендации по работе с сегментами

Рекомендации по работе с сегментами

Сегменты — ключевой инструмент работы с данными в CDP-платформе. От их корректной настройки зависит качество выборок, аналитики и запуска маркетинговых рассылок.

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

В этой статье собраны рекомендации по построению эффективных сегментов — от выбора типа сегмента до настройки индексов и внешних запросов.

Типы сегментов и скорость расчёта​

Разные типы сегментов по-разному влияют на производительность:

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

Сегментация по событиям (история профиля)​

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

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

Чем больше период, тем дольше будет считаться сегмент:

  • Сегмент "открыл письмо за последние 7 дней" — рассчитается быстро.
  • Сегмент "открыл письмо за последний год" — потребует значительно больше времени.
  • Сегмент "открыл письмо" без ограничения по дате — будет сканировать всю историю, что может занять очень много времени.

Рекомендации:

  • Всегда ограничивайте диапазон дат. По возможности используйте относительные периоды ("последние N дней").
  • Для регулярных сегментов обычно достаточно диапазона 30–90 дней.
  • Вместо проверки событий за всё время используйте атрибуты профиля, которые не требуют сканирования истории. Например, "дата последнего заказа" вместо "был хотя бы один заказ".

Сегментация по данным профиля​

Индексы и пользовательские поля​

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

Часть индексов создаётся автоматически при запуске платформы. Это системные индексы, необходимые для работы платформы — управлять ими пользователь не может.

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

предупреждение

Всего на аккаунт можно создать не более 64 индексов. Подробнее про индексы баз данных — в документации администратора.

Рекомендации:

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

Составные индексы для больших баз​

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

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

предупреждение

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

Хранение списков значений​

Если в сегменте нужно отобрать профили по конкретному значению из списка (например, интересы, категории, метки), такие списки стоит хранить в поле типа "теги", а не в строке.

Например, поле interests содержит tennis, football, chess. Если требуется выбрать всех, кому интересен теннис, при хранении в строке процесс сегментации займёт больше времени, чем при хранении в поле типа "теги".

Сегментация по внешним данным​

Сегментация по внешним источникам (SQL-запросы, API, файлы) имеет свои особенности производительности. Подробные рекомендации — в отдельной статье:

Рекомендации по сегментации по внешним данным

Основные тезисы:

  • Проектируйте запросы так, чтобы они возвращали минимум данных.
  • Объединяйте условия из одной внешней базы в один SQL-запрос.
  • Условия с "НЕ" по внешним данным приводят к сканированию всей базы профилей — сводите их количество к минимуму.
  • Платформа может автоматически объединять запросы к одной внешней базе в единый SQL-запрос (через пересечение и объединение результатов), но только если запросы обращаются к одному коннектору и привязаны к одному и тому же полю профиля.

Оператор "НЕ"​

Слишком большое количество условий с "НЕ"​

Чрезмерное использование отрицаний, особенно оператора НЕ В СЕГМЕНТЕ, сильно усложняет логику и снижает производительность.

Оператор "НЕ В СЕГМЕНТЕ".
Это самый тяжёлый с точки зрения производительности оператор. При его использовании система выгружает всю базу профилей, чтобы выполнить пересечение с исключаемым сегментом. Это очень долго.

Пример проблемной конструкции:

НЕ В (сегмент A)
И НЕ В (сегмент B)
И НЕ В (сегмент C)
...

Рекомендации:

  • По возможности избегайте оператора "НЕ В СЕГМЕНТЕ". Вместо него продублируйте условия из исключаемого сегмента, но с обратным знаком.

Например, нужно отобрать профили, которые не входят в сегмент "Не состоит в ГКГ". Вместо НЕ СОСТОИТ (сегмент "Не состоит в ГКГ") используйте условие Состоит в ГКГ. Результат будет тот же, а производительность — выше.

  • Не используйте более 2–3 условий с "НЕ" (любых) подряд без веской причины.
  • Заменяйте набор условий с "НЕ" на одно позитивное правило. Вместо перечисления, где объект не должен находиться, лучше описать, где он должен находиться.
  • Документируйте правила сегментации: указывайте, зачем добавлено каждое отрицание. Это поможет избежать ситуации, когда одно из условий становится неактуальным, а логика остаётся избыточно сложной.
  • Применяйте "НЕ В СЕГМЕНТЕ" только тогда, когда без него действительно не обойтись (например, исключаемый сегмент динамически обновляется другой командой).

Использование условия с "НЕ" через "ИЛИ"​

Часто при построении сегмента задаётся условие вида:

НЕ (имеет активный договор) ИЛИ НЕ (прошёл верификацию)

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

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

Рекомендации:

  • Избегайте длинных выражений с чередованием НЕ и ИЛИ.
  • Если требуется отобрать только клиентов, у которых нет договора и нет верификации, используйте:
НЕ (имеет активный договор) И НЕ (прошёл верификацию)
Последнее обновление 31 июл. 2026 г.
Предыдущая страница
Логические операторы "И" и "ИЛИ"
Следующая страница
Шаблоны сообщений
  • Типы сегментов и скорость расчёта
  • Сегментация по событиям (история профиля)
  • Сегментация по данным профиля
    • Индексы и пользовательские поля
    • Составные индексы для больших баз
    • Хранение списков значений
  • Сегментация по внешним данным
  • Оператор "НЕ"
    • Слишком большое количество условий с "НЕ"
    • Использование условия с "НЕ" через "ИЛИ"
© 2015 - 2026 Altcraft. Все права защищены.