Проверка запуска и решение проблем
Проверяйте интеграцию в тестовом сценарии кампании и на устройстве покупателя. Для сообщений в Shopping Assistant API используйте trafficType: "test"; debug-режим проверяет отображение заглушки и не проверяет каталог или качество консультации.
Чеклист запуска
- Выбрана подключённая секция; базовый запрос работает в «Превью».
- Каталог содержит ожидаемые SKU и актуальные данные карточек.
- Кампания и сценарий опубликованы; таргетинг совпадает с тестовым пользователем и страницей.
- Контрольная группа обрабатывается без показа ассистента.
- Пользователь получил
uid; он передаётся какresourceIdбез общей заглушки для всех покупателей. - Для виджета
1.42доступныSL.section,SL.pageContextиSL.API; при интеграции черезGFобъектыSLиGFсовпадают. -
threadIdстабилен внутри разговора; новое сообщение продолжает предыдущий контекст, в том числе после оценки ответа в виджете1.42. - Если включён гостевой режим, токен повторно используется в генерации, истории и оценках; регистрация не запускается на каждое сообщение.
- При включённых
resumeDialogиdialogHistoryпроверены перезагрузка, восстановление товаров и выбор другого диалога. - Ответ, товары, быстрые ответы и поддерживаемые кнопки отображаются на desktop и mobile.
- Подборка сохраняет порядок SKU; товарный шаблон не добавляет посторонние товары или дубли.
- Оценка связана с правильным
assistantMessageId; сохранение подтверждено HTTP-ответом. В собственном интерфейсе ошибка отправки не остаётся успешной оценкой. - Каждый показ и custom event фиксируется один раз. Ошибка трекинга не блокирует чат.
- При SPA-переходе контекст актуален, остаётся один экземпляр чата и один комплект обработчиков.
- Проверены отсутствие товаров, сетевой сбой и повтор запроса.
Чат или кнопка не появились
- Проверьте статус кампании, сценария и публикацию.
- Проверьте тип страницы, URL, аудиторию и попадание в контрольную группу.
- В Network проверьте загрузку JS/CSS одной версии, а в консоли — наличие
window.GFиShoppingAssistant. - При
autoInsertTrigger: falseубедитесь, что ваша кнопка существует и вызываетassistant.open(). - Проверьте контейнер
attachToи CSS, который может скрывать чат.
Если интерфейс появился, но запрос не отправляется, отдельно проверьте готовность GF.userData.uid, GF.section и контекста. Виджет 1.42 читает секцию и контекст через SL: ошибка обращения к SL.section или отсутствие custom events при рабочем GF.API — повод проверить совместимость объектов.
Ответ есть, товаров нет
Сначала посмотрите response.contents. Если нет непустого блока products, ответ мог быть уточнением, справочной консультацией или сообщением об отсутствии подходящих товаров.
Если товары пришли в JSON, но не отображаются:
- Проверьте обработчик
shopping-assistant-recsили рендеринг собственного интерфейса. - Проверьте ID товарного шаблона, существование контейнера и запрос рекомендаций.
- Сравните SKU ответа и фида, включая регистр. Проверьте регион и наличие.
- Убедитесь, что шаблон не заменяет отсутствующие позиции другими товарами.
Если товаров нет и в API, повторите запрос в «Превью» с тем же контекстом. Проверьте данные, правила отбора и подключение поиска. Debug-ответ не подтверждает работоспособность поиска.
Ассистент не учитывает страницу или пользователя
В запросе генерации проверьте resourceId, runtimeContext.tenant_id и runtimeContext.ctx. В Web-примере resourceId задаётся из GF.userData.uid, а виджет 1.42 читает секцию и контекст через SL.section и SL.pageContext.
- Не используйте общий
resourceIdдля разных покупателей. - Не меняйте
threadIdпосле каждого сообщения. - На SPA-переходе обновляйте контекст.
- Для конкретного магазина передавайте согласованный
storeId; региональныйlngего не заменяет.
При 409 MESSAGE_ID_CONFLICT один ID сообщения использован для разных запросов. Для нового сообщения создайте новый ID, для повтора сохраняйте исходные данные.
Оценка не сохраняется
Виджет 1.42 отправляет оценку через PUT и сохраняет текущий диалог. В гостевом режиме проверьте заголовок Authorization и совпадение сессии с той, в которой получен ответ. Заблокированные кнопки не подтверждают сохранение; повторный выбор или снятие оценки в готовом интерфейсе недоступны. Подробнее: поведение оценки в Web-виджете. В собственном интерфейсе готовые GET-ссылки вызывайте только при нажатии нужной кнопки. Контракт: Оценка ответа.
Не восстанавливается диалог на сайте
- Проверьте, что загружены JS и CSS
1.42, аresumeDialog: trueпередан при создании экземпляра. Настройка по умолчанию выключена. - Сверьте origin, секцию и
resourceId. Для автоматического продолжения нужны сохранённый текущий диалог и, в гостевом режиме, та же сессия. Запрет или очисткаlocalStorageмешают восстановлению после перезагрузки. - Проверьте
resumeDialogTtlHours: по умолчанию разговор возобновляется в течение 24 часов после последнего сохранения. - В Network найдите
POST /shopping/historyпосле открытия чата.404илиINVALID_GUEST_TOKENпереводят виджет к новому разговору; при другом сбое он показывает ошибку загрузки и сохраняет выбранный ID. - Если текст появился, а товары нет, проверьте, что обработчик
shopping-assistant-recsустановлен доopen().
Для кнопки истории отдельно нужны dialogHistory: true и auth: { mode: 'guest' }. Список содержит только диалоги текущей гостевой сессии. Новая регистрация с тем же UID начинает пустую историю; старый токен не заменяется новым для доступа к прежним диалогам. Подробнее: продолжение и история.
Нет диалогов, оценок или тем в кабинете
- Проверьте секцию, период и тип трафика: «Превью» относится к тестовому.
- Debug-запросы не сохраняются и не появляются в истории.
- Отсутствие автоматической оценки не означает плохой ответ; отсутствие реакции не является дизлайком.
- Если нет тем, проверьте условия подключения классификации.
История диалогов и custom events — разные источники. Успешный ответ API не подтверждает отправку событий интерфейса. См. трекинг.
Что передать поддержке
Напишите в рабочий чат проекта Gravity Field: секцию, время и часовой пояс, тип страницы, канал, версию виджета, HTTP-статус и код ошибки, шаги воспроизведения. При необходимости приложите threadId и ID проблемного сообщения в закрытом рабочем канале.
Удалите из диагностических материалов API-ключи, токены публичных ссылок и персональные данные. Не публикуйте полную историю покупателя вместе с сообщением об ошибке.