МОСТ. Справка

Контракт схемы событий: какие поля заказчик обязан согласовать до разработки

Опубликовано 9 окт. 2026 г.9 мин чтенияДля продвинутых
Лист с колонками сшивает каждую с маркером, две карточки закрываются печатью с галкой
What you'll learn
  • Какой артефакт закрывает вопросы по полям до того, как написан код интеграции
  • Почему состояний обязательности четыре и булева колонка их не описывает
  • Какие девять ячеек обязана содержать каждая строка перечня полей
  • На какие вопросы владелец данных должен ответить письменно
  • Чего согласованная схема не решает ни в атрибуции, ни в ставках
Advanced
1views

Есть артефакт, который превращает фразу «отправляйте нам конверсии» в перечень полей: контракт схемы событий. У каждого поля в нём каноническое имя, состояние обязательности, деловой смысл, владелец и уровень доказательства. Обсуждать такую бумагу выгодно до старта работ: после запуска те же вопросы приходится задавать уже по данным, которые ушли в приёмник.

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

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

Что контракт схемы событий решает до начала разработки

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

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

Для обработки дублей согласуйте идентификатор и его владельца отдельно по каждому назначению. Дедупликация по event_id разобрана на примере Facebook Pixel и CAPI, а повторная доставка описана в статье о ретраях. Запрос, ответ и запись у приёмника подтверждают разные этапы; см. уровни доказательства конверсии в Telegram.

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

Состояний обязательности четыре, и одна колонка их не вмещает

СостояниеКак это записано у приёмникаЧто должно стоять в ячейкеЧто письменно отвечает владелец данных
Всегда обязательноеMeta помечает event_name, event_time, user_data и action_source как Required на странице параметров серверного событияПоле присутствует в каждом событии, исключений нетКакая из ваших систем способна не выдать это поле
Обязательное для одного сценарияevent_source_url помечен Optional и тут же оговорён как обязательный для веб-событий; Google требует user_identifiers для расширенных конверсий лидов и cart_data для корзинных данныхНазван сценарий, который включает требованиеКакие сценарии этот путь обслуживает
Необязательное, но связывающее после заполненияПо Google: order_id допустимо не заполнять; после первого заполнения значение становится обязательным для любых корректировокПереключатель в одну сторону: кто вправе начать слать и кто не вправе перестатьОтправляется ли это значение уже где-нибудь
Рекомендованное с последствиямиGoogle рекомендует consent в ClickConversion: без него конверсии могут не атрибутироватьсяПоследствие записано в самой строкеКто принимает этот риск и как это видно

Третья строка таблицы обычно и удивляет, поэтому её лучше цитировать, а не пересказывать:

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

- Документация Google Ads API, Управление офлайн-конверсиями (перевод), developers.google.com

Два примера Meta показывают, почему одного флага «обязательно/нет» может быть недостаточно. В параметрах данных пользователя Meta требует хотя бы одно из перечисленных полей user_data в правильном формате. Это условие для набора идентификаторов, используемых как идентификатор сопоставления, а не общее правило всех приёмников. Отдельно руководство Meta по использованию API задаёт общий предел для event_time: семь дней. Более старое значение вызывает ошибку всего запроса, и события не обрабатываются. В том же руководстве отдельно указано, что офлайн-транзакции и покупки в физических магазинах с action_source: physical_store следует загружать в течение 62 дней после конверсии. Эту оговорку нужно учитывать для соответствующего источника события. В другом описанном случае некорректного события запрос возвращает ошибку, но валидные события с event_id принимаются. Для каждого приёмника запишите применимые правила времени и обработки пакета; сам ответ не подтверждает атрибуцию.

Девять колонок, которые обязана содержать каждая строка поля

Формат строк не обсуждается только один раз: девять колонок идут в одинаковом порядке, иначе два ревизора сравнивают разные вещи.

  1. Каноническое имя плюс имя в источнике. Без такой пары переименование поля в CRM оборачивается тихой поломкой отображения, с ней правка превращается в запись в журнале изменений. Сопоставление имён стандартных событий разобрано в статье Стандартные события CAPI: одна конверсия, шесть названий.
  2. Тип и формат, включая правило часового пояса. Google требует в conversion_date_time явное смещение в маске yyyy-mm-dd HH:mm:ss+|-HH:mm, а Meta ждёт unix-время в секундах и настаивает на GMT.
  3. Состояние обязательности вместе с условием из таблицы выше.
  4. Деловой смысл словами вашей системы: какой объект, какое изменение состояния и в какой момент событие считается случившимся.
  5. Источник истины. Одно поле, одна система, которая его ставит; остальные только читают.
  6. Поведение при отсутствии значения, потому что пустая строка, ноль и пропущенный ключ - это три разных запроса, и приёмники обрабатывают их неодинаково.
  7. Преобразование и место его применения: хеширование и нормализация разобраны в статье Хэширование Meta CAPI: нормализация данных для сопоставления.
  8. Уровень доказательства, который поле обеспечивает, плюс артефакт, где этот уровень видно.
  9. Владелец и версия, чтобы переименование, новое значение перечисления или отброшенная колонка становились подписанной правкой с датой.
yaml
# Авторский шаблон строки соглашения; это не формат API Most.
field: order_id
source_names: ["crm.deal.external_key", "billing.invoice.number"]
type_format: "строка ровно в том виде, в каком её хранит источник, включая ведущие нули и регистр"
requiredness: "необязательно до первой отправки, затем обязательно для корректировок"
meaning: "номер оплаченного счёта, а не объекта сделки"
source_of_truth: "биллинг; CRM копирует значение и не создаёт его"
when_absent: "ключ пропускается; пустая строка не отправляется"
transformation: "преобразования нет; значение не хешируется"
proof_level: "принято: тело ответа того же запроса; учтено: отчёт приёмника по конверсии за именованное действие и окно"
owner_version: "v3, согласовано 2026-09-10, владелец: финансовый отдел"

Ячейка формата намеренно не содержит ограничения по длине. Страница Google про order_id документирует статус из цитаты выше и ещё одно ограничение, в таблице типовых ошибок: DUPLICATE_ORDER_ID возникает, когда несколько конверсий пришли с одним Order ID, такие события остаются необработанными, и повторить запрос предлагается с уникальными значениями. Это правило про повтор, а не про длину. Если приёмник накладывает ограничение по длине или составу символов, ячейка называет это ограничение и страницу приёмника, где оно напечатано. Когда опубликованной страницы с таким правилом нет, в соглашении стоит форма, которую хранит источник: выдуманный диапазон в копируемом шаблоне - дефект документа, а не данных.

Вопросы, на которые владелец данных отвечает письменно

Ревизия схемы - это список вопросов, и каждый обязан вернуться текстом.

  1. Какой объект и какое изменение состояния считаются событием на языке вашей CRM?
  2. Существует ли значение в момент срабатывания триггера или появляется после правки менеджера?
  3. Означает повтор идентификатора транзакции повторную отправку, возврат или продление?
  4. Что означает ваш штамп времени: клик, отправку формы или закрытие сделки? Последствия поясов измеримы и описаны в статье Event time, таймзоны и окна приёма.
  5. Если одно поле заполняют две системы, чьё значение выигрывает и кто заметит смену правила?
  6. В какие приёмники это событие реально уходит, раз обязательность зависит от назначения?
  7. Кто подписывает новую колонку и что происходит с историческими событиями при смене смысла?

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

контракт схемы событий
область        = <одно имя события и его объект-источник>
назначения     = <перечисленные рекламные платформы этого пути>
версия         = 3        дата применения 2026-09-10
строки полей   = <по строке на поле, девять ячеек в каждой>
правило правок = <кто подписывает переименование, новый enum, удалённую колонку>
вне объёма     = <атрибуция, ставки, отчётные результаты>

Дефекты соглашения: симптом, доказательство, следующий тест

Симптом в соглашенииКакой артефакт затребоватьСледующий тест
Одно имя, два смыслаПо пять свежих записей из каждой системы, где заполнена колонкаПроверить, не ставит ли одно значение два разных объекта
Поле объявлено обязательным и приходит пустымЖурнал исходящих за сутки и ответы приёмника по этим вызовамПовторить одно записанное событие с пустым полем через тестовый канал приёмника и записать ответ: пустое значение принято - в соглашении пропущена ячейка условия, отклонено - источник нарушает задокументированное правило
Сумма отправляется без валютыТело исходящего запроса с суммой без кода валюты и ответ приёмника с ошибкой валидации валютыОтправить одно событие с пустой ячейкой валюты
Времена расходятся на фиксированный сдвигКонвенция пояса в источнике и ячейка формата в соглашенииСравнить событие с явным смещением UTC
Два ключа дедупликации из двух отделовЗначения обоих ключей до вызова плюс принятый пакетСравнить число событий по каждому ключу и по суткам отдельно
Переименованное поле CRM тихо сломало отображениеСтрока соответствия и запись журнала измененийВнести переименование в тестовую связку и записать, остановит ли её шаг согласования до отправки событий; переименование без остановки и есть пропущенная ячейка владельца и версии
Пакет принят, платформа ничего не показываетОтвет приёмника и отчёт диагностики за то же окноОтделить запись о приёмке от учтённой конверсии

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

Что согласованная схема не решает

Идеальный контракт схемы событий не заставляет платформу ничего атрибутировать. Документ определяет, что вы отправляете, что отвечает приёмник и какая запись подтверждает каждый уровень; сопоставление с кликом, правила подсчёта и отнесение остаются решениями платформы, и про ставки верно то же самое. Google описывает верхнюю границу импорта прямым текстом: конверсии, загруженные позже 90 дней после связанного последнего клика, не импортируются. Для расширенных конверсий лидов окно ещё короче - 63 дня (Рекомендации по импорту офлайн-конверсий). Соглашение, которое обещает результат внутри аукциона, подписывать не стоит.

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

Нужно уточнить поле?

Пришлите обезличенный перечень полей и вопрос о требованиях. Первая консультация бесплатная.

Не отправляйте токены и пароли.

Источники

Sources

Was this guide helpful?
Author
Most Team
Справочная служба

Официальные руководства и глоссарий для платформы Most и Активатора пикселей.

Похожие руководства

Модель эксплуатации интеграции: четыре вопроса, на которые отвечает договор

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

8 мин

Приёмочный тест конверсий: отправлено, принято и учтено

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

7 мин

Как проверить read-only доступ Google Ads для аудита

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

5 мин

Как устроена атрибуция Demand Gen при переходе в Telegram

Место показа, переход в Telegram и импорт конверсии относятся к разным этапам. Их связывают реальные записи, а сохранность идентификатора нужно проверять.

4 мин