Перейти к содержимому
← Документация API

Publishers

Подключение SDK и согласие пользователя

SDK собирает URL и поисковые запросы, поэтому по GDPR (ст. 6) и ePrivacy (ст. 5(3)) ему нужно явное согласие пользователя. Пока пользователь не нажал «Разрешить», SDK не создаёт идентификатор, не хранит события и не обращается к серверу. Функциональность вашего расширения от выбора не зависит.

Manifest V3 Opt-in Shadow DOM

Установка

В кабинете: Расширения → SDK → «Скачать». Архив распакуйте в корень расширения.

архив
intentd.min.js        SDK с ключами вашего расширения — не переименовывать
intentd-consent.html  страница согласия для расширений без popup
intentd-consent.js    скрипт этой страницы (MV3 запрещает inline-скрипты)
manifest.json
{
  "manifest_version": 3,
  "background": { "service_worker": "background.js", "type": "module" },
  "action": { "default_popup": "popup.html" },
  "permissions": ["storage", "webNavigation", "tabs", "alarms", "unlimitedStorage"],
  "host_permissions": ["https://api.intentd.io/*"]
}
background.js
// background.js — первой строкой, на верхнем уровне
import './intentd.min.js';

API

МетодНазначение
IntentD.mountConsent(element) Показать плашку в popup, если согласия нет. Promise<boolean>.
IntentD.hasConsent() Есть ли согласие на текущую версию текста. Promise<boolean>.
IntentD.getConsentState() 'approved' | 'declined' | null.
IntentD.grantConsent() Записать согласие (из вашего собственного UI).
IntentD.revokeConsent() Отзыв: сбор останавливается, очередь и идентификатор установки удаляются.
IntentD.openConsentTab() Открыть вкладку согласия вручную (или сфокусировать открытую).
IntentD.status() Состояние SDK, включая consent.

Решение хранится только в chrome.storage.local этого профиля браузера: каждое устройство спрашивает отдельно, сервер не хранит, кто и когда согласился. На сервер с каждым пакетом уходит лишь версия текста согласия.