Синхронизация
У CityScreen Context нет собственного каталога. Он многократно копирует каталог из системы управления контентом (CMS) оператора и сверяет результат с тем, что у него уже есть.
Страница для владельцев и администраторов, которые подключают CMS и читают результат. Менеджеры и наблюдатели видят результаты, но не могут менять настройки или запускать синхронизацию.
Устройство запуска
Запуск синхронизации — это один полный проход по каталогу источника. В конце запуска всё, что проход не нашёл, — это то, о чём источник перестал сообщать.
Запуск выполняет три шага по порядку.
-
Запрашивает у источника страницу экранов, каждый со своими рекламными поверхностями.
-
Создаёт, обновляет или оставляет без изменений каждый экран и каждую поверхность на этой странице и повторяет, пока источник не сообщит, что страниц больше нет.
-
Если все страницы пришли без ошибок и запуск не отменён, деактивирует каждую поверхность организации, которую запуск не нашёл.
Запуск, который сорвался на полпути, всё равно сохранил всё, что прочитал до этого момента.
Когда он выполняется
Плановый забор данных выполняется ежечасно. Он охватывает каждую организацию, у которой настройки синхронизации сохранены и включены, и пропускает организации, чья интеграция передаёт инвентарь файлом.
Владелец или администратор также может в любой момент запустить синхронизацию из настроек синхронизации инвентаря организации и отменить запуск, который идёт. Отменённый запуск сохраняет уже зафиксированные страницы и пропускает проход деактивации, точно так же, как неудачный запуск.
Что запрашивается
Для интеграции с CMS, работающей по протоколу CityScreen, платформа запрашивает каталог, используя идентификатор и учётные данные оператора. В ответе перечислены экраны, каждый со вложенными в него поверхностями.
Как сопоставляются записи
Входящие записи сопоставляются с существующими экранами и поверхностями по идентификаторам, которые использует система-источник, а поверхность дополнительно сопоставляется по GID. Это сохраняет историю поверхности, когда система-источник меняет собственные идентификаторы, но оставляет GID стабильным. Поверхность, чей GID уже занят другой поверхностью той же организации, пропускается в этом запуске, а в журнале названы GID и поверхность, которая его занимает.
Что перезаписывает запуск
Практически всё. Название поверхности, разрешение, положение на экране, расписание работы, фотографии, конфигурация слотов и большая часть метаданных заменяются из источника при каждом запуске, где они различаются. Название экрана, адрес, координаты, разрешения, физический размер, размещение, вид инсталляции, описание и фотографии также заменяются.
Четыре настройки уровня поверхности принадлежат оператору и сохраняются. Прежде чем планировать любую работу вокруг изменённых значений, прочитайте Что можно редактировать.
Инвентарь, о котором источник перестаёт сообщать
Ничего не удаляется. Поверхность, о которой источник перестал сообщать, переводится в неактивное состояние в конце следующего запуска, завершившегося без неудачных страниц, и остаётся в каталоге со своими идентификаторами, историей и отчётами.
Обратное тоже происходит автоматически. Поверхность, присутствующая в запуске, становится активной. Для большинства интеграций это делает активацию свойством источника — см. Активация и архивация.
Частичные сбои
Страница, запрос которой возвращает статус неуспеха или пустое тело, отбрасывается. Сбой записывается в журнал запуска вместе с ответом источника, и запуск помечается как неудачный.
Из неудачной страницы следуют два последствия.
-
Каждая страница, которая уже прошла успешно, остаётся зафиксированной. Каталог остаётся обновлённым частично.
-
Проход деактивации пропускается для всего запуска.
Второй пункт — главный: источник, который ненадолго становится недоступен посреди запуска, не может привести к деактивации поверхностей, потому что проход, который их деактивировал бы, не выполняется.
Записи, не прошедшие проверку, — более мягкий случай. Экран, чья входящая запись некорректна, пропускается отдельно, проблемы записываются в журнал с названием экрана, а остальная страница обрабатывается дальше. Если экран остаётся некорректным в ходе чистого запуска, его поверхности деактивируются по обычному правилу для инвентаря, о котором источник перестаёт сообщать.
Лимит лицензии
Если развёртывание лицензировано на максимальное число дисплеев, а источник сообщает больше, пакет пропускается, организации направляется уведомление, и запуск продолжается, не помечаясь как неудачный. В журнале записано, что число лицензированных дисплеев меньше полученного числа.
Импорт из файла
Некоторые интеграции с CMS не публикуют живой каталог. Для них оператор вместо этого загружает таблицу, и та же сверка выполняется по её строкам: создать, обновить и деактивировать всё, чего в файле не было.
-
Кнопка импорта и шаблон таблицы доступны в списке инвентаря владельцам, администраторам и менеджерам и только для организаций, чья интеграция работает через файл.
-
Некорректные строки пропускаются и фиксируются в журнале, точно так же, как некорректные записи при заборе данных.
-
Для организации одновременно выполняется один импорт; вторая загрузка, начатая во время выполняющейся, отклоняется.
Для организаций с файловой интеграцией плановый ежечасный забор данных не применяется, а ручной запуск забора отклоняется.
Настройки
Настройки синхронизации инвентаря хранятся для каждой организации, и редактировать их могут только владельцы и администраторы.
- Базовый URL
-
Адрес программного интерфейса CMS.
- Токен доступа
-
Учётные данные, отправляемые с каждым запросом синхронизации.
- Идентификатор оператора
-
Идентификатор, который ограничивает каждое обращение инвентарём этого оператора внутри системы-источника.
- Дополнительные поля
-
Некоторым интеграциям нужны дополнительные параметры. Набор дополнительных полей — свойство интеграции, поэтому форма показывает те поля, которые требует эта интеграция.
Удаление настроек прекращает синхронизацию организации. Уже импортированный инвентарь оно не удаляет.
Чтение результата
Информацию о синхронизации дают два места в интерфейсе.
- Статус
-
Пока запуск идёт, платформа показывает идентификатор запуска и текущие итоги по запрошенным, созданным и обновлённым записям.
- Журнал
-
После завершения запуска — успешного или нет — для организации сохраняется читаемый журнал, который можно прочитать на странице настроек синхронизации.
Журнал хранит один запуск: каждый новый запуск заменяет предыдущий журнал. Завершённый запуск заканчивается своими счётчиками:
Inventory synchronisation started at 2026-08-11T09:03:00. Id: 8f2c1b04-...
Synchronization completed
Number of created frames: 4
Number of updated frames: 112
Number frames without changes: 1380
Number of disabled frames: 2
У запуска, столкнувшегося с проблемой, над счётчиками записана сама проблема:
Synchronization failed.
Invalid server response code 502
Response text: Bad Gateway
| Если запуск сообщает ноль деактивированных поверхностей в организации, где поверхности явно удалены в источнике, сначала проверьте в журнале неудачную страницу. Если какая-либо страница не прошла, поверхности в этом запуске не деактивируются, поэтому деактивация ещё не произошла, и её выполнит следующий чистый запуск. |
Другие пути интеграции
Описанный выше забор данных — это путь по протоколу CityScreen, который используют организации, чьими экранами управляет CS Play, и универсальные источники, реализующие тот же интерфейс. Другие интеграции доходят до того же каталога собственными путями.
-
SpinetiX — интеграция с CMS, которая сохраняет то же правило для инвентаря, о котором источник перестаёт сообщать.
-
CubicVision — интеграция с CMS со своим путём инвентаря и единственная интеграция, в которой активация остаётся под контролем оператора между запусками.
-
KIS — интеграция с CMS, каталог которой приходит импортом файла.
-
Интеграции с внешними SSP — инвентарь, получаемый от другой биржи, а не из CMS, по собственному ежечасному расписанию.
Поддерживаемые партнёры классифицирует каждую из них по типу интеграции и направлению обмена.