Как отправлять рассылки в локальное время клиента
Timezone delivery в Trigly: отправка email/SMS/push в оптимальное время каждого клиента. Работа с часовыми поясами России.
Проблема: 11 часовых поясов
Россия занимает 11 часовых поясов — от Калининграда (UTC+2) до Камчатки (UTC+12). Когда вы отправляете рассылку в 10:00 по Москве:
| Город | Местное время | Ситуация |
|---|---|---|
| Калининград | 09:00 | Ещё нормально |
| Москва | 10:00 | Идеально |
| Екатеринбург | 12:00 | Обед, низкий engagement |
| Новосибирск | 14:00 | После обеда |
| Владивосток | 17:00 | Конец рабочего дня |
| Камчатка | 21:00 | Вечер, могут не открыть до утра |
Результат: клиенты из восточных регионов получают сообщение в неудобное время. Open Rate в восточных часовых поясах может быть на 30-50% ниже, чем в Москве.
Решение: Timezone Delivery в Trigly
Trigly отправляет каждому клиенту сообщение в его локальное время. Если вы указали "отправить в 10:00" — клиент в Новосибирске получит в 10:00 по Новосибирску (НСК), клиент в Москве — в 10:00 по Москве (МСК), клиент во Владивостоке — в 10:00 по Владивостоку.
За эту функцию отвечает TimezoneDeliveryService, который работает в связке с Celery для планирования отправки.
Как это работает внутри
Процесс Timezone Delivery состоит из трёх этапов:
1. Расчёт времени отправки (calculate_send_time)
Для каждого клиента Trigly берёт его часовой пояс из поля timezone в профиле CDP, рассчитывает разницу с UTC и определяет точное время отправки в UTC. Например:
- Клиент в
Asia/Vladivostok(UTC+10), желаемое время 10:00 → отправка в 00:00 UTC - Клиент в
Europe/Moscow(UTC+3), желаемое время 10:00 → отправка в 07:00 UTC - Клиент в
Europe/Kaliningrad(UTC+2), желаемое время 10:00 → отправка в 08:00 UTC
2. Группировка по часовым поясам (group_by_timezone)
Вместо создания индивидуальной задачи для каждого клиента (неэффективно при больших базах), Trigly группирует получателей по часовым поясам. Все клиенты в одном поясе отправляются одним батчем. Это оптимально: в России 11 часовых поясов, значит максимум 11 батчей вместо тысяч индивидуальных задач.
3. Планирование через Celery ETA (schedule_timezone_campaign)
Для каждой группы создаётся Celery-задача с параметром eta — точным временем запуска. Celery Beat контролирует, что задача будет выполнена именно в указанное время:
- Батч "Камчатка" → eta: 21:00 UTC предыдущего дня (для 10:00 локального)
- Батч "Владивосток" → eta: 00:00 UTC
- Батч "Новосибирск" → eta: 03:00 UTC
- Батч "Москва" → eta: 07:00 UTC
- Батч "Калининград" → eta: 08:00 UTC
Как настроить
Шаг 1: Убедитесь, что timezone заполнен
Поле timezone в профиле клиента (CDP → Контакты) должно содержать валидный часовой пояс в формате IANA (например, Europe/Moscow, Asia/Novosibirsk, Asia/Vladivostok).
Способы заполнения timezone:
- Автоматически через JavaScript SDK. Встройте SDK на сайт, и Trigly определит часовой пояс через
Intl.DateTimeFormat().resolvedOptions().timeZone. Это самый точный способ. - При импорте контактов. Добавьте колонку timezone в CSV-файл при импорте.
- Вручную. Установите timezone в карточке контакта.
- По городу. Если у вас есть поле
city, можно создать маппинг городов к часовым поясам и обновить через bulk update.
Шаг 2: Включите Timezone Delivery при создании кампании
- Перейдите в Кампании и нажмите "Создать кампанию"
- Выберите канал и сегмент
- Активируйте опцию "Отправить в локальное время"
- Укажите желаемое время отправки, например 10:00
- Trigly автоматически сгруппирует получателей по часовым поясам и создаст Celery-задачи
Шаг 3: Проверьте планирование
После создания кампании вы увидите в статистике количество батчей и запланированное время для каждого. Самый ранний батч (восточные регионы) стартует первым, самый поздний (Калининград) — последним.
Если timezone не указан
Для клиентов без заполненного поля timezone Trigly использует fallback — Moscow timezone (UTC+3). Это разумный выбор для большинства российских баз, где 30-50% клиентов находятся в московском часовом поясе.
Однако для максимальной эффективности рекомендуем собирать timezone. Вот приоритеты:
- JavaScript SDK — точное определение через браузер (лучший вариант)
- IP-геолокация — определение по IP-адресу при визите на сайт
- Поле города — маппинг
city→ timezone (менее точно, но лучше, чем ничего) - Дефолт UTC+3 — если ничего не известно
Сочетание с другими функциями
Timezone Delivery + Smart Send
Используйте Smart Send вместе с Timezone Delivery: Trigly сначала определит оптимальный канал для каждого клиента, а затем доставит сообщение в правильное локальное время. Эти функции работают независимо и дополняют друг друга.
Timezone Delivery + Quiet Hours
FrequencyService проверяет "тихие часы" (is_quiet_time) перед отправкой. Если вы указали время 10:00, это не попадает в тихие часы (обычно 22:00-08:00). Но при задержке или ретрае сообщение может сдвинуться — Trigly автоматически отложит отправку до конца тихого периода.
Timezone Delivery + Recurring Campaigns
Для повторяющихся кампаний (cron_expression) Timezone Delivery применяется к каждому запуску. Каждую неделю/месяц Trigly создаст новый набор батчей с правильными ETA.
Типичные ошибки
-
Пустое поле timezone. Самая частая проблема. Без timezone все клиенты получат рассылку по московскому времени. Проверьте процент заполненности timezone в дашборде качества данных.
-
Неверный формат timezone. Trigly ожидает формат IANA (
Europe/Moscow, неMSKи неUTC+3). При импорте убедитесь, что значения соответствуют стандарту. -
Слишком позднее время для восточных поясов. Если вы указали отправку в 22:00, клиенты на Камчатке получат сообщение в 22:00 по Камчатке — это поздний вечер, плохой Open Rate. Выбирайте время 10:00-14:00, которое работает для всех поясов.
-
Отсутствие мониторинга по поясам. Проверяйте аналитику в разрезе часовых поясов — если Open Rate в каком-то регионе значительно ниже, возможно, timezone указан неверно.
Ожидаемые метрики
После включения Timezone Delivery:
- Open Rate: рост на 15-25% в среднем по базе
- Open Rate в восточных регионах: рост на 40-60% (самый заметный эффект)
- Click Rate: рост на 10-15%
- Равномерность открытий: вместо пика в 10:00 МСК — равномерное распределение в течение дня
- Отписки: снижение на 5-10% (меньше раздражающих ночных уведомлений)
Наибольший эффект наблюдается в b2c-бизнесах с широкой географией: e-commerce, доставка, онлайн-сервисы.
FAQ
Что происходит, если время отправки уже прошло для какого-то часового пояса? Если вы создаёте кампанию в 12:00 МСК с желаемым временем 10:00, то для Владивостока (UTC+10) 10:00 уже прошло. В этом случае Trigly отправит сообщение для восточных поясов немедленно — задержка минимальна, а не ждать следующего дня.
Работает ли Timezone Delivery с push-уведомлениями? Да, Timezone Delivery работает со всеми каналами: email, SMS, Telegram, WhatsApp и push-уведомления. Для push это особенно важно — ночное push-уведомление может привести к отключению разрешений.
Как Timezone Delivery влияет на статистику кампании? Кампания с Timezone Delivery длится дольше обычной (до 22 часов для России — от Камчатки до Калининграда). Метрики обновляются в реальном времени, но финальные результаты будут доступны только после отправки последнего батча.
Итог
Для бизнеса с аудиторией в нескольких часовых поясах Timezone Delivery — не опция, а необходимость. Отправка в 10:00 по Москве означает 17:00 во Владивостоке и 09:00 в Калининграде. Trigly автоматически группирует получателей по часовым поясам и планирует отправку через Celery eta — вам достаточно указать желаемое локальное время, и система сделает всё остальное. Убедитесь, что у максимального числа контактов заполнено поле timezone — это напрямую влияет на точность доставки. Первый шаг: проверьте процент заполненности timezone в дашборде качества данных — если он ниже 60%, подключите автоопределение через JavaScript SDK, который фиксирует часовой пояс браузера при каждом визите на сайт.
Перестаньте будить клиентов ночными рассылками. Попробуйте Trigly бесплатно и настройте Timezone Delivery за 5 минут.