Vodič za integraciju suglasnosti kolačića za PostHog analitiku proizvoda: Playbook za vlastito hostiranje i cloud implementaciju za 2026.

PostHog je platforma za analitiku proizvoda kojoj inženjerski timovi posežu kada žele analitiku proizvoda, snimanje sesija, zastavice funkcionalnosti, eksperimentiranje, ankete i web analitiku u jednom skupu alata umjesto pet dobavljača spojenih zajedno. To grupiranje je vrijednosna propozicija. Upravo je to razlog zašto zadana PostHog implementacija nosi više koncentriranih obveza suglasnosti od gotovo svakog drugog alata kojeg će izdavač instalirati. Isti poziv posthog.init() koji bilježi događaje proizvoda može početi snimati sesije, procjenjivati zastavice funkcionalnosti na temelju trajnog identifikatora i stavljati u red dojmove ankete — a svaka od tih aktivnosti uključuje drugačiju pravnu osnovu prema GDPR-u, ePrivacy i CCPA. Dobra vijest je da PostHog isporučuje jedan od najgranularnijih API-ja za suglasnost u ekosustavu analitike; posao je u tome da ga zapravo koristite. Ovaj vodič prolazi kroz to kako implementirati PostHog tako da pravni položaj odgovara tehničkoj stvarnosti u implementacijama vlastitog hostiranja i PostHog Clouda, u SAD i EU regijama, te na cijeloj površini analitike, reprodukcije, zastavica i anketa.

Zašto PostHog zahtijeva suglasnost — i zašto odgovor nije isti za svaki modul

Web SDK PostHoga nije pasivna straničnica. Pri zadanoj inicijalizaciji SDK postavlja jednu ili više unosa za trajnost od prve strane — zadano kombinirani kolačić plus localStorage shema s ključem pod ph_{projectKey}_posthog — generira stabilan zasebni identifikator, bilježi početni prikaz stranice s referencerom, UTM parametrima i identifikatorima klikova, te otvara dugotrajni kanal događaja prema konfiguriranom domaćinu za ingestion. Ako je snimanje sesija omogućeno na razini projekta, SDK dodatno počinje streamati kontinuirani zapis prikazanog DOM-a, koordinata miša i događaja unosa. Ako su zastavice funkcionalnosti konfigurirane, SDK ih procjenjuje na temelju zasebnog identifikatora, trajno pohranjuje odluke za sesiju i emitira $feature_flag_called događaj za svaku procjenu.

Svaka od ovih aktivnosti preslikava se na drugačiji prijevrat suglasnosti. Trajno pohranjivanje zasebnog identifikatora je operacija pohrane i pristupa prema članku 5(3) Direktive o ePrivacy i zahtijeva prethodnu, slobodno danu, specifičnu, informiranu i nedvosmislenu suglasnost u cijelom EGP-u, Ujedinjenom Kraljevstvu i svakoj jurisdikciji koja je usvojila isti standard. Bilježenje događaja ponašanja je obrada osobnih podataka prema GDPR-u jer je kombinacija identifikatora, IP adrese i traga ponašanja dovoljna za identifikaciju pojedinca. Snimanje sesija smješteno je u zasebnu, strožu kategoriju prema smjernicama EDPB-a o snimanju sesija — reprodukcija bilježi prikazani DOM i svako nemaskirano polje za unos te zahtijeva izričitu, granularnu suglasnost koja se razlikuje od generičke suglasnosti za analitiku. Procjena zastavica funkcionalnosti je ona suptilna: provjera zastavice koja vraća logičku vrijednost sama po sebi ne zahtijeva suglasnost, ali trajno pohranjivanje dodjele zastavice korisnika na stabilan identifikator kroz sesije to zahtijeva, jer tako eksperimentiranje temeljeno na zastavicama stvara podatke korisničke razine koji se mogu pratiti.

Što PostHog piše prije suglasnosti — i što se mora potisnuti

Zadani PostHog Browser SDK pri inicijalizaciji piše sljedeće: jedan kombinirani kolačić i localStorage unos pod ph_{projectKey}_posthog koji sadrži zasebni identifikator, identifikator sesije i odluke o zastavicama funkcionalnosti, plus, kada je snimanje sesija omogućeno, dodatni međuspremnik snimanja u memoriji koji se prazni na krajnju točku ingestion svakih nekoliko sekundi. SDK također šalje neposredni $pageview događaj i, ako je automatizirano bilježenje uključeno, svaki naknadni klik, interakciju s obrascem i rage-klik na stranici.

Preporučeni uzorak je inicijalizirati PostHog s opt_out_capturing_by_default: true i disable_session_recording: true, zatim preokrenuti oba zastavice kada baner za suglasnost vrati pozitivan signal. To je integracijsko stajalište koje PostHog dokumentacija sada preporučuje, i to je stajalište koje preživljava pregled regulatora jer obrće zadano: ništa se ne bilježi dok se ne zabilježi suglasnost, a SDK pruža čist prijelaz umjesto retroaktivne prilagodbe sa stanjem.

Kolačići, localStorage unosi i identifikatori koje PostHog trajno pohranjuje

Browser SDK 1.x piše jedan unos trajnosti po projektu, s ključem pod ph_{projectKey}_posthog, s istekom od 365 dana kao zadanim. Inicijalizacijska opcija persistence kontrolira temeljni mehanizam: samo cookie, samo localStorage, localStorage+cookie (zadano), sessionStorage ili memory. Za implementaciju suglasnosti-prvo, trajnost memory je ispravno zadano kada suglasnost još nije dodijeljena — osigurava da nijedan identifikator ne traje dulje od sesije stranice — s prijelazom na localStorage+cookie kada se suglasnost promijeni. SDK također piše oznaku opt-in ili opt-out pod __ph_opt_in_out_{projectKey} kako bi zapamtio korisnikov odabir kroz posjete; ta je oznaka sama po sebi strogo neophodan kolačić jer trajno pohranjuje odluku o suglasnosti.

Preslikavanje PostHog modula na okvire suglasnosti

PostHog ne implementira nativno IAB TCF niti IAB Global Privacy Platform, i nije izgrađen kao dobavljač reklamne tehnologije. Međutim, integrira se s Google Consent Mode v2 putem premošćivanja na strani izdavača, izlaže nativni API za opt-in i opt-out, te poštuje zaglavlje Do Not Track putem inicijalizacijske opcije respect_dnt. Uzorak koji funkcionira u produkciji tretira svaki PostHog modul kao zasebnu kapiju vezanu za specifičan CMP signal.

Integracijski uzorak koji funkcionira

Referentna implementacija ima četiri dijela: CMP koji izlaže događaj promjene suglasnosti u stvarnom vremenu, odgođeni bootstrap koji inicijalizira PostHog s onemogućenim bilježenjem i reprodukcijom, slušatelj suglasnosti koji mijenja opt_in_capturing i prekidač snimanja kada se otvore relevantne kapije, te put povlačenja koji poziva opt_out_capturing, zaustavlja međuspremnik reprodukcije i briše trajne identifikatore putem API-ja za resetiranje SDK-a.

Web implementacija

Najčišći uzorak je učitati PostHog SDK na svakoj stranici ali pozvati posthog.init(apiKey, { api_host: 'https://eu.posthog.com', opt_out_capturing_by_default: true, disable_session_recording: true, persistence: 'memory', respect_dnt: true }) kao početni bootstrap. Pretplatite se na događaj promjene suglasnosti CMP-a. Kada kategorija analitike prijeđe na true, pozovite posthog.set_config({ persistence: 'localStorage+cookie' }) praćeno posthog.opt_in_capturing(); ovo ponovno omogućava bilježenje događaja i prijelaz trajnosti počinje pisati zasebni identifikator. Kada kategorija snimanja sesije prijeđe na true, pozovite posthog.startSessionRecording(). Kada se bilo koja kapija povuče, pozovite posthog.opt_out_capturing() za kapiju analitike ili posthog.stopSessionRecording() za kapiju reprodukcije, isteknite relevantne unose trajnosti putem posthog.reset(), te pošaljite zahtjev za brisanje putem GDPR API-ja PostHoga ako je korisnik koristio pravo na brisanje.

Odabir regije: PostHog Cloud SAD vs EU vs vlastito hostiranje

PostHog upravlja dvjema oblak regijama — SAD (us.posthog.com) i EU (eu.posthog.com) — te podržava implementacije vlastitog hostiranja na vlastitoj infrastrukturi korisnika. Za promet iz EGP-a i Ujedinjenog Kraljevstva, EU oblak je ispravno zadano; zadržava ingestion, obradu i pohranu unutar EGP-a i smanjuje izloženost Schrems II koji svaka implementacija analitike u SAD regiji nosi. Inicijalizacijska opcija api_host fiksira regiju. Vlastito hostiranje PostHoga premješta cijeli skup na vlastitu infrastrukturu izdavača, što je najjači položaj rezidencije podataka, ali ne uklanja obveze suglasnosti — pravna osnova prati podatke, ne operatora. Odabrana opcija mora biti odražena u politici privatnosti i evidenciji obrade voditelja obrade.

Bilježenje na strani poslužitelja

PostHog podržava ingestion događaja na strani poslužitelja putem Python, Node, Go, Ruby i PHP SDK-ova. Događaji na strani poslužitelja nisu izuzeti od suglasnosti — pravna osnova prati podatke — ali ingestion na strani poslužitelja daje izdavaču potpunu kontrolu nad tim koja se polja emitiraju i kada. Uobičajeni uzorak je bilježiti minimalni skup samo-neophodnih događaja na strani poslužitelja pod legitimnim interesom, zatim obogatiti te događaje detaljima ponašanja s klijenta tek nakon što je korisnik dao suglasnost za analitiku. Događaji na strani poslužitelja i klijenta spajaju se na isti zasebni identifikator kada se suglasnost promijenila; prije suglasnosti, događaji na strani poslužitelja emitiraju se s anonimnim, efemernim identifikatorom koji se resetira u svakoj sesiji.

Validacija integracije i revizijskog traga

Korak validacije je ono što regulatori provjeravaju i što izdavači najčešće preskaču. Ispravno integrirana PostHog implementacija mora proći četiri testa redom. Prvo, čista preglednikova sesija s prikazanim banerom ali bez napravljenog odabira mora proizvesti nula zahtjeva prema konfiguriranom api_host-u osim preuzimanja SDK datoteke, nula ph_ kolačića u document.cookie i nula ph_ unosa u localStorage-u. Drugo, odbijanje analitike mora zadržati to stanje — bez bilježenja, bez snimanja, bez trajnog identifikatora. Treće, prihvaćanje analitike mora proizvesti neposredni $opt_in događaj, očekivani ph_{projectKey}_posthog unos trajnosti s ispravnim SameSite atributima, te promet događaja prema konfiguriranom domaćinu. Četvrto, naknadno povlačenje suglasnosti mora odmah zaustaviti daljnje bilježenje i reprodukciju, isteći trajne identifikatore i pokrenuti zahtjev za brisanje putem GDPR API-ja PostHoga ako je korisnik zatražio brisanje.

Očekivanje revizijskog traga prema smjernicama EDPB-a iz 2023. o banerima za kolačiće i obnovljenim prioritetima radne grupe iz 2026. je da izdavač može dokazati, za svaki dani događaj u PostHog projektu, da je korisnik koji ga je generirao dao valjanu suglasnost u trenutku bilježenja. Standardni uzorak je postaviti verziju suglasnosti i vremensku oznaku kao svojstva osobe na zasebni ID putem posthog.setPersonProperties({ consent_version: 'v3', consent_ts: ts }) kako bi svaki pojedinačni događaj bio sljediv do određenog unosa u dnevnik suglasnosti. Ispravno ograđena implementacija, upotpunjena odabirom regije koji odgovara publici, trajnošću koja zadano koristi memoriju i putom brisanja koji se aktivira pri povlačenju, pretvara PostHog iz regulatornog rizika koncentracije u obranjivo središte skupa alata za analitiku proizvoda.

← Blog Pročitaj sve →