Gabay sa Integrasyon ng Pahintulot ng Cookie para sa Digital na Karanasan at Session Replay ng FullStory: Playbook 2026
Ang FullStory ay ang nangunguna na platform sa kategorya ng digital experience analytics para sa isang dahilan: kinukuha nito ang lahat bilang default. Habang ang mga tradisyonal na tool sa analytics ay nagtatala ng mga discrete na kaganapan na nai-instrument ng developer, at habang ang mga platform ng product analytics ay nagtatala ng mga interaksyon kasama ang isang awtomatikong kinuha na supplement, kinukuha ng FullStory ang buong na-render na DOM, ang bakas ng cursor, ang timing ng keystroke, ang gawi sa pag-scroll, ang mga rage click, ang mga dead click, ang mga kahilingan sa network, at ang mga error sa JavaScript — at tinatahi ang mga ito sa mga recording ng session na maaaring i-scrub ng analyst nang frame by frame. Ang cobertura na iyon ang produkto. Ito rin ang dahilan kung bakit ang FullStory ay nasa intersection ng pinaka-mahigpit na mga panuntunan ng pahintulot sa bawat modernong rehimen ng privacy. Ang gabay ng EDPB sa session-replay noong 2023 at ang mga priyoridad ng task force noong 2026 ay tinatrato ang session-replay bilang isang natatangi, mas mahigpit na kategorya ng pahintulot. Ang CNIL ang pinaka-pampublikong regulator sa paksa ngunit hindi nag-iisa — ang Garante, ang ICO, ang Espanyol na AEPD, at ang Dutch na AP ay naglabas ng mga nakahanay na posisyon. Ang isang deployment ng FullStory na na-configure para sa consent-first na pagkuha, na may tamang masking, tamang gating, at tamang audit trail, ay isa sa pinakamakapangyarihang tool na maaaring patakbuhin ng isang publisher; ang isa na hindi nailagay sa ganitong configuration ay isa sa pinakamagaan na target na makikita ng isang regulator.
Bakit nasa pinaka-mahigpit na kategorya ng pahintulot ang FullStory
Ang isang default na initialization ng FullStory ay gumagawa ng ginagawa ng bawat tool sa session-replay kasama pa. Nagtatakda ito ng mga first-party na cookie sa ilalim ng namespace na fs_uid at fs_lua na naglalaman ng persistent na identifier ng bisita at last-active na timestamp, bumubuo ng isang identifier ng session sa ilalim ng fs_session, at nagsisimulang mag-stream ng na-render na DOM sa rs.fullstory.com sa loob ng millisecond mula sa pag-load ng pahina. Kasama sa stream ang bawat input na kaganapan, bawat galaw ng mouse, bawat posisyon ng pag-scroll, bawat paglipat ng pahina, at — kapag naka-enable ang network capture module — bawat XHR at fetch na tugon na inilalabas ng pahina, kasama ang mga response body maliban kung na-configure ng operator ang suppression.
Ang bawat isa sa mga pagkuha na ito ay nag-aaktibo ng isang hiwalay na gate ng pahintulot. Ang pagpapatuloy ng identifier ng bisita ay isang operasyon ng pag-iimbak at pag-access sa ilalim ng Artikulo 5(3) ng ePrivacy Directive na nangangailangan ng naunang, malayang ibinigay, tiyak, may kaalaman, at hindi malinaw na pahintulot sa buong EEA, UK, at anumang hurisdiksyon na nag-import ng parehong pamantayan. Ang pagtatala ng na-render na DOM ay pagpoproseso ng personal na data sa ilalim ng GDPR dahil ang visual na talaan ay sapat upang matukoy at maibunyag ang substantibong nilalaman tungkol sa user. Ang pagkuha ng stream ng keystroke ay isang partikular na sensitivity: anumang i-type ng user sa isang field ng form ay kinukuha ng frame by frame, at kung ang field ay hindi naka-mask, kasama sa recording ang nai-type na nilalaman. Maliwanag na sinabi ng EDPB na ang pagkuha ng session-replay ay isang kategorya na nangangailangan ng malinaw, granular na pahintulot na naiiba mula sa generic na pahintulot ng analytics — at na ang masking ay isang complement sa pahintulot, hindi isang kapalit.
Ano ang isinusulat ng FullStory bago ang pahintulot — at ano ang dapat na pigilan
Ang karaniwang quickstart ng FullStory ay ini-install ang tracking snippet nang direkta sa <head> ng pahina. Ito ay gumagana tulad ng dokumentado at ito ang pinagmulan ng pinakakaraniwang pagkabigo sa pagsunod: ang snippet ay tumatakbo bago ma-render ang banner ng cookie, ang mga cookie na fs_uid at fs_session ay naisulat sa loob ng millisecond, at ang session-replay stream ay nagsisimulang dumaloy papunta sa rs.fullstory.com anuman ang mapagpasyahan ng user kalaunan. Bawat European regulator na nagpasya sa pattern na ito ay nagpasya sa parehong paraan: ang mga cookie na itinakda bago ang pahintulot ay labag sa batas, ang recording na nakuha bago ang pahintulot ay ilegal na pagpoproseso, at dinadala ng publisher ang pananagutan.
Ang isang compliant na integrasyon ay dapat na pigilan ang snippet ng FullStory mula sa pag-initialize hanggang hindi pa nibibigyan ang kaugnay na kategorya ng pahintulot. Ang pattern na gumagana sa produksyon ay ang FS.consent() API na sinamahan ng deferred recording: ang snippet ay ini-load gamit ang FullStory({ orgId: 'XXX', recordOnlyThisIFrame: false }) at agad na tinatawag ang FS.shutdown(), pagkatapos ay ang FS.restart() at FS.consent(true) ay tinatawag lamang pagkatapos na mag-signal ang CMP na ibinigay na ang kategorya ng session-replay. Ang alternatibong pattern ay ang conditional na pag-inject ng script — ang snippet ng FullStory ay idinaragdag sa DOM lamang pagkatapos ibigay ang pahintulot — na mas malinis ngunit nangangailangan ng operator na mawala ang anumang pre-consent na identity stitching na maaaring ibigay ng FullStory.
Ang mga cookie at storage na isinusulat ng FullStory
Isinusulat ng snippet ng FullStory ang mga sumusunod na identifier sa initialization, lahat ng ito ay hindi esensyal at nangangailangan ng pahintulot: fs_uid na may multi-year na pag-expire na naglalaman ng persistent na identifier ng bisita, fs_lua na may last-user-activity timestamp, fs_session na may identifier ng session, at ang mga marker ng estado ng recording na ginagamit ng FullStory nang panloob. Ang pag-withdraw ng pahintulot ay dapat na kapwa mag-expire ng mga cookie na iyon at tumawag ng FS.consent(false) na sinusundan ng FS.shutdown() upang ihinto ang karagdagang pagkuha, at dapat magpadala ang publisher ng isang kahilingan sa pagtanggal sa pamamagitan ng endpoint ng privacy ng FullStory para sa mga nakaraang recording ng user.
Pag-map ng FullStory sa mga framework ng pahintulot
Ang FullStory ay hindi natively nagpapatupad ng IAB TCF o ng IAB Global Privacy Platform — ito ay isang first-party digital experience platform, hindi isang vendor ng ad-tech. Inilalabas nito ang isang native na API ng pahintulot at sinusuportahan ang isang private-by-default na modelo ng masking na gumagana anuman ang estado ng pahintulot. Ang pattern na nakakaligtas sa pagsusuri ng isang regulator ay tinatrato ang bawat module ng FullStory bilang isang hiwalay na gate na nakatali sa isang tiyak na signal ng CMP.
- Ang session replay at ang buong DOM stream ay nakatali sa isang dedicated na kategorya ng session-replay o pananaliksik na naiiba mula sa generic na analytics. Ang gabay ng EDPB ay maliwanag sa puntong ito — ang pahintulot sa replay ay dapat na hiwalay at granular, hindi naka-bundle sa analytics o marketing.
- Ang network capture ay nasa likod ng mas mahigpit na sub-gate sa loob ng parehong kategorya dahil kinukuha nito ang mga body ng HTTP response na maaaring maglaman ng personal na data na hindi kaugnay ng visible na interface. Ang network capture ay dapat na naka-off bilang default at i-enable lamang para sa mga tiyak na path ng application kung saan nakumpirma ng operator na ang mga body ng tugon ay hindi naglalaman ng sensitibong data.
- Ang identity stitching sa pamamagitan ng FS.identify() ay maaaring tumakbo gamit ang isang ephemeral na identifier ng session sa ilalim ng batayan ng legitimate-interest kapag ang user ay anonymous, ngunit ang pag-stitch ng pagkakakilanlan sa isang persistent na first-party identifier sa buong mga session ay nangangailangan ng parehong pahintulot tulad ng session replay.
- Ang mga heatmap at conversion analytics na hinango mula sa stream ng session-replay ay namumuna sa gate mula sa upstream stream — hindi sila mga hiwalay na surface ng pahintulot, sila ay mga downstream na produkto ng parehong kinuhang data.
Ang pattern ng integrasyon na gumagana
Ang reference na deployment ay may apat na bahagi: isang CMP na naglalantad ng real-time na kaganapan ng pagbabago ng pahintulot, isang deferred bootstrap na nag-initialize ng FullStory na may pinigilan na pagkuha sa pamamagitan ng FS.shutdown(), isang consent listener na tumatawag ng FS.consent(true) at FS.restart() kapag bumukas ang gate ng session-replay, at isang private-by-default na configuration ng masking na mahigpit na pumipigil sa bawat input field maliban kung malinaw na naka-on.
Private-by-default na masking
Ang layer ng masking ng FullStory ay gumagana nang nakapag-iisa mula sa pahintulot at dapat na ma-configure nang agresibo kahit na ibinigay na ang pahintulot. Ang CSS class na fs-mask sa anumang elemento ay pinipigilan ang nilalaman ng elementong iyon mula sa recording; ang CSS class na fs-exclude ay ganap na nagpapalabas ng elemento mula sa DOM stream; ang class na fs-block ay humahadlang ng parehong nilalaman at istraktura. Sa ilalim ng mga espesyal na kategoryang panuntunan ng GDPR at ang kahulugan ng sensitive na personal na impormasyon ng CCPA, anumang field na maaaring kumukuha ng impormasyon sa kalusugan, detalye sa pananalapi, mga identifier ng gobyerno, biometric na data, tiyak na geolocation, o mga nilalaman ng pribadong komunikasyon ay dapat gumamit ng mga katangian ng masking anuman ang estado ng pahintulot ng user. Ang inirerekomendang postura ay ang mag-apply ng fs-mask sa antas ng form sa halip na antas ng field — ang isang developer na nagdaragdag ng bagong field sa isang mayroon nang form ay mas malamang na maalala na i-mask ito nang isa-isa kaysa nang gumagana sa loob ng isang form-level masking wrapper na awtomatikong kumukuha nito.
Pagpili ng rehiyon at tirahan ng data
Nagpapatakbo ang FullStory ng mga hiwalay na endpoint sa pagsasalop ng US at EU. Para sa trapiko ng EEA at UK, ang endpoint ng EU ang tamang default — pinapanatili nito ang pagsasalop, pagpoproseso, at pag-iimbak sa loob ng EEA at binabawasan ang exposure ng Schrems II na dadalhin ng anumang deployment ng session-replay sa rehiyon ng US. Ang endpoint ay naka-configure bawat organisasyon ng FullStory at hindi maaaring baguhin nang retroaktibo, kaya ang pagpili ng rehiyon ay dapat gawin bago mag-scale at idokumento sa abiso ng privacy upang malinis ang chain ng legal-basis mula sa koleksyon hanggang sa pag-iimbak.
Pag-validate ng integrasyon at audit trail
Ang hakbang sa validation ay ang sinisiyasat ng mga regulator at ang madalas na nilalaktawan ng mga publisher sa mga tool ng session-replay. Ang isang wastong na-integrate na deployment ng FullStory ay dapat pumasa ng apat na pagsubok nang sunod-sunod. Una, ang isang malinis na session ng browser na may ipinakitang banner ngunit walang ginawang pagpili ay dapat magbunga ng zero na mga kahilingan sa rs.fullstory.com higit pa sa pagkuha ng file ng SDK at zero na mga cookie na fs_ sa document.cookie. Ikalawa, ang pagtanggi sa pahintulot ng session-replay ay dapat mapanatili ang estado na iyon — walang pagkuha, walang identifier, walang recording. Ikatlo, ang pagtanggap ng pahintulot ng session-replay ay dapat magbunga ng inaasahang cookie na fs_uid, isang solong kaganapan na FS.consent(true), at ang DOM stream na dumaloy sa na-configure na endpoint ng rehiyon, na may mga masked field na nakumpirmang kumukuha lamang ng mask placeholder. Ikaapat, ang pag-withdraw ng pahintulot ay dapat agad na ihinto ang karagdagang pagkuha, mag-expire ng mga cookie na fs_, at mag-trigger ng kahilingan sa pagtanggal sa pamamagitan ng endpoint ng privacy ng FullStory para sa mga nakaraang recording ng user.
Ang inaasahang audit trail ay kung saan ang mga tool ng session-replay ay nahaharap sa pinakamahigpit na pagsusuri. Ang mga alituntunin ng banner ng cookie ng EDPB noong 2023 at ang mga na-renew na priyoridad ng task force noong 2026 ay malinaw na sinasabi na dapat mapatunayan ng publisher, para sa anumang tiyak na recording ng session sa proyekto ng FullStory, na ang user na bumuo nito ay nagbigay ng valid na pahintulot sa session-replay sa sandali ng pagkuha. Ang karaniwang pattern ay ang pagtatakda ng bersyon ng pahintulot at timestamp bilang mga variable ng user sa identifier ng FullStory sa pamamagitan ng FS.setUserVars({ consent_version: 'v3', consent_ts: ts }) upang ang anumang indibidwal na recording ay masubaybayan pabalik sa isang tiyak na entry ng log ng pahintulot. Ang isang wastong gated na deployment, kasama ng mga katangian ng masking na ang default ay private at isang landas ng pagtanggal na naa-activate sa pag-withdraw, ay ang nagpapalit ng coverage ng FullStory mula sa isang regulatory concentration risk patungong isang mapagtatanggol na bahagi ng digital experience stack ng publisher.