Руководство по интеграции согласия на cookie с Heap Auto-Capture Product Analytics: руководство 2026 года для издателей

Heap необычен в экосистеме продуктовой аналитики из-за того, что он делает по умолчанию. Там, где Mixpanel, Amplitude и PostHog просят издателя инструментировать важные события, Heap захватывает всё автоматически и позволяет аналитику определять события ретроактивно из захваченного потока. Эта модель авто-захвата — определяющая особенность продукта и причина, по которой команды его выбирают; она также причина, по которой развёртывание Heap по умолчанию несёт одну из самых широких поверхностей поведенческих данных любого инструмента, который издатель, вероятно, установит. Каждый клик, тап, прокрутка, взаимодействие с формой, переход страницы и rage-клик захватывается против постоянного идентификатора в течение миллисекунд после загрузки страницы — что означает, что каждая из этих операций задействует обязательство согласия. Хорошая новость в том, что Heap, после его приобретения Contentsquare, поставляется с одним из более гранулярных API согласия в пространстве продуктовой аналитики; работа заключается в том, чтобы фактически подключить его правильно через поверхность авто-захвата, слой идентичности и модуль записи сессий, который добавляет интеграция Contentsquare.

Почему Heap требует согласия — и почему ответ шире типичной аналитики

Инициализация Heap по умолчанию делает несколько вещей при первой отрисовке страницы. Она устанавливает первичный cookie под _hp2_id.{envId}, содержащий постоянный идентификатор пользователя, сессионный cookie под _hp2_ses_id.{envId} с идентификатором сессии, cookie частоты выборки под _hp2_props.{envId} и маркер _hp2_loaded, указывающий, что SDK инициализирован. Она генерирует уникальный идентификатор, если его ещё нет, захватывает начальный просмотр страницы с реферером, параметрами UTM и идентификаторами кликов и немедленно начинает записывать каждое последующее взаимодействие против этого идентификатора — клики, тапы, изменения форм, смены маршрута, пользовательские события и, когда интеграция Contentsquare включена, полный diff отрисованного DOM для записи сессии.

Каждая из этих активностей задействует отдельный шлюз согласия. Сохранение идентификатора пользователя — это операция хранения и доступа по статье 5(3) Директивы ePrivacy и требует предварительного, свободно данного, конкретного, информированного и недвусмысленного согласия по всей ЕЭЗ, Великобритании и любой юрисдикции, которая импортировала тот же стандарт. Захват потока событий авто-захвата является обработкой персональных данных по GDPR, потому что комбинация идентификатора, IP-адреса и поведенческого следа достаточна для выделения отдельного человека. Запись сессии находится в отдельной, более строгой категории по руководству EDPB по записи сессий — запись захватывает отрисованный DOM и любое незамаскированное поле ввода и требует явного, гранулярного согласия, отличного от общего согласия на аналитику. CCPA и CPRA рассматривают ту же обработку как продажу или передачу, если издатель не имеет соответствующего договора поставщика услуг с Heap — который Heap предлагает, но договор вступает в силу, только когда интеграция настроена на режим поставщика услуг.

Что Heap записывает до согласия — и что должно быть подавлено

Стандартный быстрый старт, который поставляется с дашбордом Heap, устанавливает сниппет отслеживания прямо в <head> страницы. Это работает, как задокументировано, и является источником самого распространённого сбоя соответствия на развёртываниях Heap: сниппет запускается до того, как баннер cookie отрисовался, cookie _hp2_ записываются в течение миллисекунд, и поток авто-захвата начинает течь на heapanalytics.com независимо от того, что пользователь позже решит. Каждый европейский регулятор, который выносил решение по этому паттерну, выносил его одинаково: cookie, установленные до согласия, незаконны, и издатель несёт ответственность.

Соответствующая интеграция должна поэтому предотвратить загрузку сниппета Heap до тех пор, пока соответствующая категория согласия не будет предоставлена. Два паттерна, которые работают в продакшене, — это условная инъекция скрипта — сниппет добавляется в DOM только после того, как CMP сигнализирует согласие — и предварительная загрузка сниппета с heap.load(appId, { disableTextCapture: true, secureCookie: true, autocapture: false }) как отложенная начальная загрузка, а затем вызов heap.startAutoCapture() после записи согласия. Паттерн условной инъекции чище и тот, который теперь рекомендует документация Heap. Паттерн отложенной начальной загрузки — правильный выбор, когда издателю нужна стабильная глобальная ссылка для сшивания идентичности, но он не может позволить авто-захвату запускаться до согласия.

Cookie и хранилище, которые записывает Heap

Сниппет Heap записывает следующие идентификаторы при инициализации, все из которых неэссенциальны и требуют согласия: _hp2_id.{envId} со сроком действия 14 месяцев, содержащий идентификатор пользователя, _hp2_ses_id.{envId} с 30-минутным сроком действия сессии, _hp2_props.{envId} для частоты выборки и распространения свойств и _hp2_loaded как маркер загрузки. Модуль записи сессий, интегрированный с Contentsquare, добавляет буфер записи в памяти, который сбрасывается на конечную точку Heap каждые несколько секунд и может сохранять небольшой идентификатор сессии записи отдельно. Отзыв согласия должен поэтому как истечь cookie _hp2_, так и сигнализировать запрос на удаление через GDPR API Heap для предыдущих записей и потока событий пользователя.

Сопоставление Heap с фреймворками согласия

Heap не реализует нативно IAB TCF или IAB Global Privacy Platform — это первичная платформа продуктовой аналитики, а не ad-tech-поставщик — но он интегрируется с Google Consent Mode v2 через мостирование на стороне издателя, предоставляет нативный API opt-in и opt-out и поддерживает слой редактирования чувствительных свойств, который работает независимо от состояния согласия. Паттерн, который переживает проверку регулятора, рассматривает каждый модуль Heap как отдельный шлюз, привязанный к конкретному сигналу CMP.

Шаблон интеграции, который работает

Эталонное развёртывание имеет четыре части: CMP, который предоставляет событие изменения согласия в реальном времени, отложенную начальную загрузку, которая загружает Heap с отключённым авто-захватом, слушателя согласия, который включает авто-захват и запускает буфер записи сессий, когда соответствующие шлюзы открываются, и путь отзыва, который вызывает heap.resetIdentity(), останавливает авто-захват, истекает cookie _hp2_ и отправляет запрос на удаление через конечную точку GDPR Heap.

Веб-внедрение

В вебе самый чистый паттерн — загружать сниппет Heap условно — тег <script> инжектируется только после того, как категория аналитики была предоставлена. Подпишитесь на событие изменения согласия CMP. Когда категория аналитики переходит в true, инжектируйте сниппет Heap с secureCookie: true, disableTextCapture: false для полного авто-захвата и любой специфичной для среды конфигурацией. Когда согласие на запись сессии переходит в true и интеграция Contentsquare включена, буфер записи активируется автоматически. Когда любой шлюз отзывается, вызовите heap.resetIdentity(), за которым следует удаление элемента скрипта Heap, истечение cookie _hp2_ через document.cookie и вызов API удаления GDPR для идентификатора пользователя.

Редактирование чувствительных свойств

Heap поставляется со слоем редактирования, который работает независимо от состояния согласия и который издатели должны использовать, даже когда согласие предоставлено. Атрибут data-heap-redact-text на поле формы подавляет захваченное текстовое содержимое; атрибут data-heap-redact-attributes подавляет атрибуты элемента. По правилам особых категорий GDPR и определению чувствительной персональной информации CCPA любое поле, которое может захватить информацию о здоровье, финансовые детали, государственные идентификаторы, биометрические данные, точную геолокацию или содержимое частных коммуникаций, должно использовать атрибуты редактирования независимо от состояния согласия пользователя. Установка атрибутов на уровне формы — самый безопасный паттерн: он подавляет всю форму, даже когда разработчик добавляет новое поле, которое забывает пометить индивидуально.

Выбор региона: резидентность данных ЕС против США

Heap управляет отдельными конечными точками приёма ЕС и США. Для трафика ЕЭЗ и Великобритании конечная точка ЕС является правильным значением по умолчанию; она держит приём, обработку и хранение внутри ЕЭЗ и снижает экспозицию Schrems II, которую несёт любое развёртывание аналитики в регионе США. Конечная точка устанавливается через конфигурацию сниппета и не может быть изменена ретроактивно — существующие данные остаются там, где они были впервые приняты. Для издателей, планирующих развёртывание Heap, поэтому стоит подтвердить регион перед масштабированием и стоит задокументировать выбор в уведомлении о конфиденциальности, чтобы цепочка правовой основы была чистой от сбора до хранения.

Валидация интеграции и аудиторский след

Шаг валидации — это то, что регуляторы проверяют и что издатели чаще всего пропускают. Правильно интегрированное развёртывание Heap должно пройти четыре теста последовательно. Во-первых, чистая сессия браузера с показанным баннером, но без сделанного выбора, должна производить ноль запросов к heapanalytics.com помимо извлечения файла SDK и ноль cookie _hp2_ в document.cookie. Во-вторых, отклонение аналитики должно сохранять это состояние — никакого авто-захвата, никакого идентификатора, никакой записи. В-третьих, принятие аналитики должно производить ожидаемый cookie _hp2_id с правильными атрибутами SameSite и трафик событий, текущий к конечной точке настроенного региона. В-четвёртых, отзыв согласия должен немедленно остановить дальнейший авто-захват и запись, истечь cookie _hp2_ и запустить запрос на удаление через GDPR API Heap.

Ожидание аудиторского следа по руководству EDPB по баннерам cookie 2023 года и обновлённым приоритетам рабочей группы 2026 года состоит в том, что издатель может доказать для любого данного события в проекте Heap, что пользователь, который его сгенерировал, дал действительное согласие в момент захвата. Стандартный паттерн — устанавливать версию согласия и временную метку как пользовательские свойства на уникальном ID через heap.addUserProperties({ consent_version: 'v3', consent_ts: ts }), чтобы любое отдельное событие было отслеживаемо обратно к конкретной записи журнала согласия. Правильно шлюзованное развёртывание в сочетании с атрибутами редактирования, которые подавляют чувствительные поля по умолчанию, и путём удаления, который активируется при отзыве, — это то, что превращает модель авто-захвата Heap из риска регуляторной концентрации в одну из самых мощных и защитимых частей стека продуктовой аналитики издателя.

← Блог Читать все →