Кіраўніцтва па інтэграцыі згоды на cookie для FullStory Digital Experience і Session Replay: зборнік 2026 года
FullStory — дамінуючая платформа ў катэгорыі аналітыкі лічбавага вопыту па адной прычыне: яна захоплівае ўсё па змаўчанні. Там, дзе традыцыйныя аналітычныя інструменты запісваюць дыскрэтныя падзеі, якія інструментаваў распрацоўшчык, а платформы прадуктовай аналітыкі запісваюць узаемадзеянні плюс аўтазахопленае дапаўненне, FullStory захоплівае поўны адмаляваны DOM, след курсора, таймінг націскаў клавіш, паводзіны пракруткі, гнеўныя клікі, мёртвыя клікі, сеткавыя запыты і памылкі JavaScript — і сшывае іх у сесійныя запісы, праз якія аналітык можа пракручваць кадр за кадрам. Гэта пакрыццё — прадукт. Гэта таксама прычына, чаму FullStory сядзіць на перасячэнні самых строгіх правілаў згоды ў кожным сучасным рэжыме прыватнасці. Кіраўніцтва EDPB аб session-replay 2023 года і прыярытэты мэтавай групы 2026 года трактуюць session-replay як асобную, больш строгую катэгорыю згоды. CNIL быў самым публічным рэгулятарам па тэме, але не адзіным — Garante, ICO, іспанскі AEPD і галандскі AP усе выпусцілі выраўнаваныя пазіцыі. Разгортванне FullStory, наладжанае для захопу з прыярытэтам згоды, з карэктнай маскіроўкай, карэктным гейтынгам і карэктным аўдыт-следам, — адзін з больш магутных інструментаў, якія можа запусціць выдавец; тое, якое не было так наладжана, — адна з самых лёгкіх мэтаў, якія знойдзе рэгулятар.
Чаму FullStory сядзіць у самай строгай катэгорыі згоды
Ініцыялізацыя FullStory па змаўчанні робіць тое, што робіць кожны інструмент session-replay, плюс больш. Яна ўсталёўвае first-party cookie ў прасторы імёнаў fs_uid і fs_lua, якія змяшчаюць пастаянны ідэнтыфікатар наведвальніка і метку апошняй актыўнасці, генеруе ідэнтыфікатар сесіі пад fs_session і пачынае стрыміць адмаляваны DOM на rs.fullstory.com на працягу мілісекунд загрузкі старонкі. Стрым уключае кожную падзею ўводу, кожны рух мышы, кожную пазіцыю пракруткі, кожны пераход старонкі і — калі ўключаны модуль сеткавага захопу — кожны адказ XHR і fetch, які выдае старонка, з уключанымі целамі адказаў, калі аператар не наладзіў падаўленне. Стрым — гэта тое, што рэканструюецца ў піксель-у-піксель сесійны запіс, які бачыць аналітык FullStory у дашбордзе.
Кожны з гэтых захопаў задзейнічае асобны гейт згоды. Захаванне ідэнтыфікатара наведвальніка — гэта аперацыя захоўвання-і-доступу па артыкуле 5(3) Дырэктывы аб электроннай прыватнасці, якая патрабуе папярэдняй, свабодна дадзенай, канкрэтнай, інфармаванай і недвухсэнсоўнай згоды па ўсім EEA, Вялікабрытаніі і любой юрысдыкцыі, якая імпартавала той жа стандарт. Запіс адмаляванага DOM — гэта апрацоўка персанальных даных па GDPR, таму што візуальны запіс дастатковы, каб ідэнтыфікаваць і раскрыць істотны кантэнт аб карыстальніку. Захоп патоку націскаў клавіш — асаблівая адчувальнасць: усё, што карыстальнік друкуе ў полі формы, захопліваецца кадр за кадрам, і калі поле не замаскіравана, запіс уключае надрукаваны кантэнт. EDPB быў відавочны ў тым, што захоп session-replay — гэта катэгорыя, якая патрабуе відавочнай, гранулярнай згоды, асобнай ад агульнай аналітычнай згоды — і што маскіроўка — гэта дапаўненне да згоды, а не яе замена.
Што FullStory запісвае да згоды — і што павінна быць падаўлена
Стандартны quickstart FullStory усталёўвае сніпет адсочвання прама ў <head> старонкі. Гэта працуе як задакументавана і з'яўляецца крыніцай самага распаўсюджанага правалу адпаведнасці: сніпет працуе да таго, як банер cookie адмаляваўся, cookie fs_uid і fs_session запісваюцца на працягу мілісекунд, і стрым session-replay пачынае цячы на rs.fullstory.com незалежна ад таго, што карыстальнік вырашыць пазней. Кожны еўрапейскі рэгулятар, які вынес рашэнне па гэтым патэрне, вынес аднолькавае: cookie, усталяваныя да згоды, незаконныя, запіс, захоплены да згоды, — незаконная апрацоўка, і выдавец нясе адказнасць.
Таму адпаведная інтэграцыя павінна прадухіліць ініцыялізацыю сніпета FullStory да таго, як адпаведная катэгорыя згоды прадастаўлена. Патэрн, які працуе ў продакшэне, — гэта API FS.consent() у спалучэнні з адкладзеным запісам: сніпет загружаецца з FullStory({ orgId: 'XXX', recordOnlyThisIFrame: false }) і неадкладна выклікаецца FS.shutdown(), затым FS.restart() і FS.consent(true) выклікаюцца толькі пасля таго, як CMP сігналізуе, што катэгорыя session-replay прадастаўлена. Альтэрнатыўны патэрн — умоўная ін'екцыя скрыпта — сніпет FullStory дадаецца ў DOM толькі пасля прадастаўлення згоды — што чысцей, але патрабуе ад аператара страціць любое сшыванне ідэнтычнасці да згоды, якое FullStory мог бы інакш прадаставіць.
Cookie і сховішча, якія запісвае FullStory
Сніпет FullStory запісвае наступныя ідэнтыфікатары пры ініцыялізацыі, усе з якіх неасноўныя і патрабуюць згоды: fs_uid з шматгадовым тэрмінам сканчэння, які змяшчае пастаянны ідэнтыфікатар наведвальніка, fs_lua з меткай апошняй актыўнасці карыстальніка, fs_session з ідэнтыфікатарам сесіі і маркеры стану запісу, якія FullStory выкарыстоўвае ўнутрана. Адкліканне згоды павінна таму і завяршаць гэтыя cookie, і выклікаць FS.consent(false) з наступным FS.shutdown(), каб спыніць далейшы захоп, і выдавец павінен адправіць запыт на выдаленне праз прыватны эндпоінт FullStory для папярэдніх запісаў карыстальніка.
Адлюстраванне FullStory на схемы згоды
FullStory не рэалізуе натыўна IAB TCF або IAB Global Privacy Platform — гэта first-party платформа лічбавага вопыту, а не ad-tech-вендар. Яна раскрывае натыўны API згоды і падтрымлівае мадэль маскіроўкі private-by-default, якая працуе незалежна ад стану згоды. Патэрн, які перажывае агляд рэгулятара, трактуе кожны модуль FullStory як асобны гейт, прывязаны да канкрэтнага сігналу CMP.
- Session replay і поўны DOM-стрым прывязваюцца да вылучанай катэгорыі session-replay або даследавання, адрознай ад агульнай аналітыкі. Кіраўніцтва EDPB відавочнае па гэтым пункце — згода на replay павінна быць асобнай і гранулярнай, не звязанай з аналітыкай або маркетынгам.
- Сеткавы захоп сядзіць за больш строгім пад-гейтам у той жа катэгорыі, таму што захоплівае целы HTTP-адказаў, якія могуць змяшчаць персанальныя даныя, не звязаныя з бачным інтэрфейсам. Сеткавы захоп павінен па змаўчанні быць выключаным і ўключацца толькі для канкрэтных шляхоў прыкладання, дзе аператар пацвердзіў, што целы адказаў не ўключаюць адчувальныя даныя.
- Сшыванне ідэнтычнасці праз FS.identify() можа працаваць з эфемерным ідэнтыфікатарам сесіі па падставе законнага інтарэсу, калі карыстальнік ананімны, але сшыванне ідэнтыфікацыі да пастаяннага first-party ідэнтыфікатара паміж сесіямі патрабуе той жа згоды, што і session replay.
- Цеплавыя карты і аналітыка канверсій, вытворныя ад стрыму session-replay, успадкоўваюць гейт ад вышэйстаячага стрыму — гэта не асобныя паверхні згоды, гэта ніжэйшыя прадукты тых жа захопленых даных.
Патэрн інтэграцыі, які працуе
Эталоннае разгортванне мае чатыры часткі: CMP, якая раскрывае падзею змены згоды ў рэальным часе, адкладзены бутстрап, які ініцыялізуе FullStory з падаўленым захопам праз FS.shutdown(), слухач згоды, які выклікае FS.consent(true) і FS.restart() калі гейт session-replay адкрываецца, і канфігурацыя маскіроўкі private-by-default, якая жорстка падаўляе кожнае поле ўводу, калі яно не было відавочна opt-in.
Маскіроўка private-by-default
Слой маскіроўкі FullStory працуе незалежна ад згоды і павінен быць наладжаны агрэсіўна, нават калі згода прадастаўлена. CSS-клас fs-mask на любым элеменце падаўляе кантэнт гэтага элемента з запісу; CSS-клас fs-exclude выключае элемент цалкам з DOM-стрыму; клас fs-block блакіруе і кантэнт, і структуру. Па правілах асаблівых катэгорый GDPR і вызначэнні адчувальнай персанальнай інфармацыі CCPA любое поле, якое магло б захапіць інфармацыю аб здароўі, фінансавую дэталь, дзяржаўныя ідэнтыфікатары, біяметрычныя даныя, дакладную геалакацыю або змесціва прыватных камунікацый, павінна выкарыстоўваць атрыбуты маскіроўкі незалежна ад стану згоды карыстальніка. Рэкамендуемая пазіцыя — прымяняць fs-mask на ўзроўні формы, а не поля — распрацоўшчык, які дадае новае поле ў існуючую форму, значна менш верагодна ўспомніць замаскіраваць яго індывідуальна, чым ён будзе працаваць унутры абгорткі маскіроўкі на ўзроўні формы, якая ловіць яго аўтаматычна.
Выбар рэгіёна і рэзідэнтнасць даных
FullStory аперыруе асобнымі US і EU эндпоінтамі прыёму. Для трафіку EEA і Вялікабрытаніі EU-эндпоінт — правільны па змаўчанні — ён трымае прыём, апрацоўку і захоўванне ўнутры EEA і зніжае экспазіцыю Schrems II, якую несла б любое разгортванне session-replay у US-рэгіёне. Эндпоінт наладжваецца на арганізацыю FullStory і не можа быць зменены рэтраактыўна, таму выбар рэгіёна павінен быць зроблены да маштабавання і задакументаваны ў паведамленні аб канфідэнцыйнасці, каб ланцуг законнай падставы быў чысты ад збору да захоўвання.
Валідацыя інтэграцыі і аўдыт-след
Крок валідацыі — гэта тое, што рэгулятары правяраюць і што выдаўцы часцей за ўсё прапускаюць на інструментах session-replay. Карэктна інтэграванае разгортванне FullStory павінна прайсці чатыры тэсты ў паслядоўнасці. Па-першае, чыстая сесія браўзера з паказаным банерам, але без зробленага выбару, павінна вырабляць нуль запытаў да rs.fullstory.com звыш загрузкі файла SDK і нуль cookie fs_ у document.cookie. Па-другое, адмова ад згоды на session-replay павінна захоўваць гэты стан — без захопу, без ідэнтыфікатара, без запісу. Па-трэцяе, прыняцце згоды на session-replay павінна вырабляць чаканы cookie fs_uid, адзіную падзею FS.consent(true) і DOM-стрым, які цячэ на наладжаны рэгіянальны эндпоінт, з замаскіраванымі палямі, пацверджанымі захопліваць толькі плэйсхолдэр маскі. Па-чацвёртае, адкліканне згоды павінна неадкладна спыніць далейшы захоп, завяршыць cookie fs_ і ініцыяваць запыт на выдаленне праз прыватны эндпоінт FullStory для папярэдніх запісаў карыстальніка.
Чаканне аўдыт-следу — гэта тое, дзе інструменты session-replay сутыкаюцца з самым строгім наглядам. Кіруючыя прынцыпы EDPB аб банерах cookie 2023 года і абноўленыя прыярытэты мэтавай групы 2026 года відавочныя ў тым, што выдавец павінен быць здольны даказаць для любога канкрэтнага сесійнага запісу ў праекце FullStory, што карыстальнік, які яго згенераваў, даў сапраўдную згоду на session-replay у момант захопу. Стандартны патэрн — усталяваць версію згоды і часовую метку як карыстальніцкія зменныя на ідэнтыфікатары FullStory праз FS.setUserVars({ consent_version: 'v3', consent_ts: ts }), каб любы асобны запіс быў прасочвальны назад да канкрэтнага запісу журнала згоды. Карэктна гейтаванае разгортванне, у пары з атрыбутамі маскіроўкі, па змаўчанні прыватнымі, і шляхам выдалення, які актывуецца пры адкліканні, — гэта тое, што ператварае пакрыццё FullStory з рызыкі рэгулятарнай канцэнтрацыі ў абараняльную частку стэку лічбавага вопыту выдаўца.