Facebook (Meta) má vaše osobní údaje, které jste mu nedali a ví co nakupujete
Všichni asi víme, že Facebook / Meta o nás ví více než si myslíme.
Ač se zajímám o soukromí a bezpečnost a vím nemálo věcí z e-commerce, až nedávno mi docvaknulo, jak moc je to v háji.
Tak to nejdřív sdělím přímo a pak si řekneme jak/proč se to děje a co s tím můžeme dělat, pokud vůbec něco. Jo a fun stuff - netýká se to nutně jen Facebooku, ale i dalších reklamních sítí.
Facebook má (velmi pravděpodobně) vaši přibližnou adresu bydliště, telefonní číslo, e-mail, pohlaví, datum narození, celé jméno a IP adresu - i když jste mu něco z toho nedali, nevyplnili do profilu a třeba ani nemáte na Facebooku účet.
Jo a taky ví v jakých e-shopech, kdy a co a za kolik nakupujete, nebo co jste si třeba jen na chvilku rozkliknuli.
Jak to?
Představte si, že máte e-shop a máte reklamy na Facebooku, či jiné platformě. Chcete přirozeně vědět jak moc vám reklamy reálně vydělávají. Nestačí si říct, že teď jsme si začali platit reklamy, koukneme, jak se změnily příjmy. Existují totiž další faktory ovlivňující příjmy - globálnější sezónnost (třeba slunečníky se prodávají spíš v létě než v zimě), dny v týdnu, někdo o vás napíše článek, natočí video, nebo zrovna ve společnosti začne frčet nějaký produkt. Taky to nefunguje vždycky, že člověk uvidí reklamu a hned si jde něco koupit. Často reklama dá člověku myšlenku, že by něco takového mohl chtít a reálný nákup udělá až později.
Dobře, tak jak jde zjistit, že na člověka zapůsobila reklama a udělá u vás nákup - konverzi?
Jsou dva základní způsoby.
Přímý proklik
První je, že člověk klikne na reklamu a do kliknutého odkazu se vloží kód, který si e-shop přečte. Vidí v něm, že člověk přišel z reklamy z Facebooku a pokud udělá nákup, může si to e-shop poznačit jako konverzi. V praxi to na e-shopu dělá kód Facebooku, abyste si v administračním rozhraní reklam Facebooku mohli ty data zobrazit. Tohle ale řeší jen málo případů, kdy na člověka reklama zapůsobila.
Konverzní API a Pixel
Tak a teď druhý způsob. Co když člověk vidí reklamu, ale neproklikne se a později, protože mu reklama vnuknula myšlenku, jde nakoupit na e-shop přímo? Vidíte reklamu na Alzu, zamyslíte se nad tím, scrollujete dál. Později si řeknete “ta zahradní hadice na Alze vypadala dobře, tu potřebuju” a jdete na Alza.cz. Zapůsobila na vás placená reklama, kterou Alza zaplatila a chce vědět, že to byly její vynaložené peníze, které vás vedly k nákupu.
Na toto je potřeba spolupráce e-shopu přes konverzní API Facebooku (FB CAPI), či Facebook Pixel. Facebook by mohl říct e-shopu “uživatel Jan Novák s e-mailem jan.novak@example.com viděl vaši reklamu (na zahradní hadici)”. Ale nechcete, aby Facebook leakoval vaše osobní údaje každému e-shopu, který si zaplatí reklamu. Takže to reálně funguje opačně (což teda taky nechcete) - každý e-shop, který používá měření výkonu reklam posílá vaše osobní údaje Facebooku, který se podle nich podívá, jestli existuje takový uživatel a jestli mu byla reklama zobrazena. Majitel e-shopu pak může vidět na koho skutečně měla reklama vliv.
S každým, byť jen malým nákupem (a někdy to nemusí být ani nákup, ale třeba jen zobrazení produktu, nebo jiná akce) tak vaše osobní údaje mohou putovat Facebooku, i když tam ani nemáte účet.
Pokud máte na Facebooku vyplněný například jen e-mail, ale ne telefonní číslo, díky tomu, že v e-shopech vyplňujeme e-mail a telefonní číslo pro úspěšné doručení, Facebook si váš uživatelský účet napáruje pomocí e-mailu a tím dostane i vaše telefonní číslo.
Zároveň tím Facebook přesně ví v jakých e-shopech nakupujete, kdy, jaké produkty a kolik vás to stálo.
Prohlíželi jste si na nějakém e-shopu prémiová dilda? Výborně, od teď vám může Facebook zobrazovat reklamy spíš na dražší erotické pomůcky, protože ví, že to je váš jam. Dělá to reálně? Nevím. Pokud by tvrdili, že ne, věřit jim nebudu.
Ohledně údajů, které se o vás Facebook dozví navíc (například máte v profilu uložený jen e-mail a ne telefonní číslo) se Facebook může tvářit, že s nimi nic nedělá. Důvěryhodností ohledně osobních dat Facebook ale zrovna nekypí.
Výsměch ohledně osobních údajů
Jo, pardon, e-shopy neposílají vaše osobní údaje napřímo. Strašně moc jsem jim i Facebooku ukřivdil.
E-shopy každé jedno dato takzvaně zahashují. Jde o “jednosměrnou” funkci, která na ten samý vstup vždy vrátí stejný “gibberish” hash / otisk. Pro lidi to čitelné není a není standardní rozumný způsob jak z hashe zjistit původní vstup. Navíc hash má vždy stejnou délku a existuje více vstupů, které produkují daný hash, takže není jednoznačné jaký byl původní údaj.
Takže je to bezpečné, že? Ani náhodou. Je to na úrovni toho když hrajete s dětmi peek-a-boo - když si dáte ruce před své oči, tak vás nevidí.
Kdyby neexistoval způsob jak zjistit jak z hashe zjistit co je, či není původní vstup, tak by Facebook nemohl pomocí hashů své uživatele vyhledat a podívat se, jestli viděli reklamu.
Facebook má databázi zahashovaných údajů uživatelů, ve které hledá a porovnává, jestli se dané hashe v databázi nachází.
To napovídá i způsob jak se může dostat k údajům, které nemá uložené.
Vzhledem k tomu, že telefonní čísla, města, jména nejsou náhodná a není jich mnoho, Facebooku stačí pouze vzít všechny možnosti, zahashovat si je, dát do databáze a tam hledat co nenajde v databázi uživatelů.
Je to trochu zamotané, tak si to ukážeme konkrétně.
Příklad
Příklady vydají za tisíc slov. Tak se pojďme podívat třeba na datum narození.
Facebook dostane hash vašeho data narození
2c789f164e82993b3422581c8a4d70f1a643284a395e5111f1643509aee0caca
a třeba ho vůbec nemá.
Co to je za datum? Nevím. Ale můžu si, stejně jako to může udělat Facebook, vytvořit databázi hashů všech možných dat narození od roku 1900 po rok 2025, klidně s tím, že každý měsíc může mít 31 dní, ať nám nic nechybí a je to jednoduché.
Těch možností je jen 12 × 31 × 126 = 46 872.
Hashe nám vygeneruje takhle jednoduchý kód v Pythonu, který běží na mém počítači méně než jednu sekundu.
import hashlib
for year in range(1900, 2025 + 1):
for month in range(1,12 + 1):
for day in range (1,31 + 1):
date = f"{year}{month:02d}{day:02d}"
hash = hashlib.sha256(date.encode()).hexdigest()
print(date, "\t", hash)
a z naší databáze snadno zjistíme, že datum narození je 13. prosince 2025.
...
20251209 0b7000d28132744d2d69cb295fd2e5f9ebed8e58e618bdd833189015b0304e5f
20251210 9a11af57578b3e424ba68cdce567e23b2c7ac7c966d2f10696661d84aeddc794
20251211 6111641431576ce106b680c23c90c15878802246534016b30f316f0bb00c46c3
20251212 5f78e0eceadbb4c93a70555c457230c761e50b945581c4e1f2b8637915cfcc55
20251213 2c789f164e82993b3422581c8a4d70f1a643284a395e5111f1643509aee0caca
20251214 948717302d047f015a447c55c3158f07ddabe6c5f2a4909aff626dd201626acb
20251215 66cb8df1313805b003818d2580042fcf991cead9940e15c49709494d7a610169
20251216 a3e755a8c3fd36e2df892db36809e57fc1829d2db7af34d0bf19a43af31dbac6
...
Není problém vygenerovat hash databáze i pro telefonní čísla, i když to už trvá trochu déle. Jména zemí, měst a PSČ taky nejsou náhodná, jde snadno získat jejich seznamy a vygenerovat si jejich hashe a pak najdete každý záznam.
Neříkám, že Facebook data zneužívá. Věřit jim ale nebudu.
Co s tím
Nejfunkčnější možnost je nikdy nic na e-shopech nenakupovat. 🚀 Dobře, co dál? 🤔
Odmítnutí souhlasu (pokud funguje)
Otravují vás cookie lišty na webech? Mě taky. Side note: otravné jsou hlavně proto, že jsou vyrobené schválně proto, aby byly otravné a abyste s co největší pravděpodobností souhlasili se vším. Vůbec nemusí být tak moc otravné.
Cookie lišty nejsou jen o cookies, nejsou jen o tom, jestli jsou reklamy personalizované. Často potvrzujete souhlas s měřením výkonu reklam, což přesně znamená to, že e-shop pošle vaše údaje Facebooku, či jiné reklamní síti. Díky té zlé EU tedy máte možnost nedat souhlas s tím, aby to e-shop udělal. Nemáte zač. Takže možná chcete ty věci odmítat. Preventivně raději všechny, pokud by se to jmenovalo jinak.
Jo a někdy odmítnutí nemusí fungovat - pokud má e-shop v implementaci chybu. Chyba může být na frontendu (část webu v prohlížeči), nebo na může být na backendu (část webu na serveru), protože vaše údaje mohou být posílané z backendu, což se nemálo často děje, protože spousta lidí Facebook scripty na frontendu (v prohlížeči) blokuje. Může se stát, že váš nesouhlas na backend e-shopu nedoputuje a vaše data se na Facebook stejně dostanou.
Doplňkové možnosti
- Dobrý webový prohlížeč: Například Firefox má integrované ochrany před sledováním včetně Facebooku - nevyřeší vše, ale může dost pomoct.
- Unikátní e-mailová adresa pro Facebook a pro všechno ostatní jiná. Pozor - Facebook si může vaše adresy pamatovat - pokud byste tam tedy teď nastavili novou, nemusí to pomoct. Spíše použijte novou adresu pro nové weby. Klidně můžete použít pro každý e-shop unikátní e-mailovou adresu. Takovou službu nabízí například právě Firefox pod názvem Firefox Relay a třeba i Apple pod názvem Hide My Email.
- Unikátní telefonní číslo pro Facebook: Velmi podobné předchozímu bodu. Asi těžko proveditelné, nicméně s velkým efektem. Spárování přes telefonní číslo je velmi jednoduché a docela jednoznačné.
- Nastavení ve Facebook/Meta účtu pro menší šmírování a případné čištění historie jednou za čas. Nastavení není nejpřehlednější věc na světě - cíleně. Efekt bude omezený, ale určitě to dává smysl!
Na tomto místě také doplním věci, které sice nesouvisí s Facebookem, ale hodně souvisí se soukromím. Přidělejte stalkerům a scammerům o trochu více práce.
- Pokud to jde, je fajn nevyplňovat v e-shopech vaši skutečnou adresu a nechat si doručovat zboží do výdejních boxů / na výdejní místa. Pokud z e-shopu data uniknou, nebude se po internetu válet vaše přesná adresa, i když si budete vybírat výdejní místa poblíž vašeho bydliště. Taky nebudou kurýři zbytečně vědět kde přesně bydlíte.
- Je fajn mít sekundární telefonní číslo jen pro e-shopy / kurýry (včetně například doručení potravin). Samozřejmě jiné než na sociálních sítích. Taky může trochu pomoct proti stalkingu. Pokud vás někdo bude obtěžovat a blok nestačí, víte, že číslo nezískal od známých a můžete číslo klidně zahodit a pořídit si jiné.
- Víte, že třeba na Rohlíku nemusíte mít vyplněné celé jméno? Kurýr vám stejně volá a vaše celé jméno včetně příjmení, podle kterého by vás vyhledal na internetu, mít nemusí.
- Pokud nemůžete / nechcete si nechat doručovat zboží dál od vašeho bydliště. Nepouštějte kurýry (hlavně jídelní) do domu, neříkejte jim jaké patro, jaký byt, jaký je kód na zvoncích, ani toto info nemějte vyplněné v aplikaci, ani typ adresy (“doma”). Pro případné stalkery a obtěžovatele je to opět alespoň trochu víc práce a pokud by měl nastat nějaký incident, tak před domem, na veřejnosti, kde prochází lidé si to případný zloun rozmyslí. Je známo, že minimálně v minulosti si kurýři v uzavřených skupinách sdíleli informace o zákaznících, či konkrétně o zákaznicích. Mohl by se za vámi tedy snadno později stavit i někdo jiný, kdo vám sjel profil na Instagramu, či Facebooku a ví jak se dostat do domu a které dveře ho zajímají.
Závěr
Ideálně tedy nikdy nezadávejte do e-shopů údaje, které nechcete, aby je měl Facebook, či jiná reklamní síť.
Obecně možná nechcete věřit ani e-shopům, jelikož z nich můžou data uniknout. Třeba protože je chyba v PHP a správci e-shopu nenasadí opravu včas. (PHP za to nemůže, není špatný, chyby jsou všude, o vše je třeba pečovat, ať už jsou to e-shopy, silnice, či lavičky v parku)
Když si představíte, že Facebook mimo toho všeho co o vás ví když brouzdáte na jeho sockách, ví i o tom všem co jste si koupili, nebo jen prohlédnuli, je to scary. Buduje si o vás naprosto dokonalý profil. Možná nakupování v kamenných prodejnách, aspoň občas, není v nějakých případech tak špatný nápad.
Zdroje? Mimo jiné:
- https://developers.facebook.com/documentation/ads-commerce/conversions-api/parameters/customer-information-parameters
Nástroj Google Gemini 3.8 Thinking byl použit pro fact-checking tohoto zápisku a návrhy na “co s tím” na které jsem si nevzpomněl (sekce Doplňkové možnosti) a pak jsem je tu detailněji rozepsal.