[{"data":1,"prerenderedAt":1729},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Fdata\u002Fprivacy-first-analytics-plausible-server-aggregation":13},{"i18nKey":4,"paths":5},"data-006-2026-05",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fdata\u002Fprivacy-first-analytics-plausible-server-aggregation","\u002Fen\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side-aggregation","\u002Fes\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side-aggregation","\u002Ffr\u002Fdata\u002Fanalytique-respectueuse-donnees-confidentielles","\u002Fit\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side-aggregation","\u002Fru\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side","\u002Ftr\u002Fdata\u002Fprivacy-first-analytics-plausible-ve-sunucu-tarafi-aggregation",{"_path":6,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":20,"i18nKey":4,"tags":21,"readingTime":27,"author":28,"body":29,"_type":1723,"_id":1724,"_source":1725,"_file":1726,"_stem":1727,"_extension":1728},"data",false,"","Privacy-First Analytics: Plausible und Server-seitige Aggregation","DSGVO-konforme Messung: Plausible + Server-side Aggregation für Cookie-loses Tracking, GA4-Vergleich und Production-Architektur.","2026-05-19","verianalizi",[22,23,24,25,26],"privacy-first-analytics","plausible","server-side-tracking","cookieless","dsgvo-datenschutz",9,"Roibase",{"type":30,"children":31,"toc":1716},"root",[32,40,47,52,57,102,107,112,136,142,154,159,168,173,413,418,462,467,500,506,511,537,547,751,761,827,832,861,867,872,880,901,909,1606,1614,1632,1637,1643,1648,1656,1674,1682,1700,1705,1710],{"type":33,"tag":34,"props":35,"children":36},"element","p",{},[37],{"type":38,"value":39},"text","Das Cookie-System ist zusammengebrochen. Chrome hat Third-Party-Cookies 2024 eingestellt, Safari und Firefox blockieren sie bereits seit Jahren. Marketing-Teams berichten von Datenverlust bei GA4 zwischen 40–60 % (Googles eigene Berichte). Gleichzeitig haben DSGVO-Bußgelder 2025 in Europa 4,2 Milliarden Euro erreicht. Doppelter Druck: technisch (kein Cookie = keine Messung) und rechtlich (Consent-Banner umgehen ist illegal). Privacy-First Analytics löst beide Probleme: Messung ohne Cookies, Server-seitige Aggregation, compliance-ready.",{"type":33,"tag":41,"props":42,"children":44},"h2",{"id":43},"plausible-das-herzstück-cookie-loser-messung",[45],{"type":38,"value":46},"Plausible: Das Herzstück Cookie-loser Messung",{"type":33,"tag":34,"props":48,"children":49},{},[50],{"type":38,"value":51},"Als Plausible 2019 launched, positionierte es sich als \"GA-Alternative\". 2026 ist es eine eigene Kategorie: Privacy-First Web Analytics. Der Kern: Events werden nicht Client-seitig an Cookies, sondern Server-seitig an eine 24-Stunden-Pseudo-ID gebunden. Die Kombination IP + User-Agent wird gehasht (SHA-256), dieser Hash wird täglich zurückgesetzt. Ergebnis: Unique-Visitor-Zählung mit >95 % Genauigkeit, ohne dass PII (Personally Identifiable Information) gespeichert wird.",{"type":33,"tag":34,"props":53,"children":54},{},[55],{"type":38,"value":56},"Vergleich mit GA4:",{"type":33,"tag":58,"props":59,"children":60},"ul",{},[61,73,92],{"type":33,"tag":62,"props":63,"children":64},"li",{},[65,71],{"type":33,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":38,"value":70},"Dateneigentum:",{"type":38,"value":72}," Plausible schreibt Events in eigene PostgreSQL-Instanz. GA4 sendet an Google-Server, du kannst nicht querys stellen (außer BigQuery Export).",{"type":33,"tag":62,"props":74,"children":75},{},[76,81,83,90],{"type":33,"tag":66,"props":77,"children":78},{},[79],{"type":38,"value":80},"Cookie-Abhängigkeit:",{"type":38,"value":82}," GA4 klebt am ",{"type":33,"tag":84,"props":85,"children":87},"code",{"className":86},[],[88],{"type":38,"value":89},"_ga",{"type":38,"value":91},"-Cookie. Wird es abgelehnt, fragmentiert die Messung. Plausible ist von Grund auf Cookie-los.",{"type":33,"tag":62,"props":93,"children":94},{},[95,100],{"type":33,"tag":66,"props":96,"children":97},{},[98],{"type":38,"value":99},"Script-Größe:",{"type":38,"value":101}," Plausible-Tracker 1,4 KB, GA4 gtag.js 28 KB + gtm.js 45 KB. 50× Unterschied beim Page Load.",{"type":33,"tag":34,"props":103,"children":104},{},[105],{"type":38,"value":106},"Für DSGVO-Konformität ist ein kritischer Punkt: Der Hash von Plausible ist keine personenbezogene Dato. Nach DSGVO Artikel 4 muss es sich auf \"identifizierte oder identifizierbare natürliche Person\" beziehen. Ein SHA-256-Hash lässt sich nicht rückgängig machen — das ist anonymisierte Information. EDPB-Richtlinien 05\u002F2014 bestätigen dies. Rechtlich: Kein Consent Banner nötig.",{"type":33,"tag":34,"props":108,"children":109},{},[110],{"type":38,"value":111},"In Production wird Plausible in zwei Szenarien eingesetzt:",{"type":33,"tag":113,"props":114,"children":115},"ol",{},[116,126],{"type":33,"tag":62,"props":117,"children":118},{},[119,124],{"type":33,"tag":66,"props":120,"children":121},{},[122],{"type":38,"value":123},"Standalone:",{"type":38,"value":125}," Kleine Sites (Blog, Landing Page) brauchen nichts weiter. 10 Zeilen JS, Dashboard fertig.",{"type":33,"tag":62,"props":127,"children":128},{},[129,134],{"type":33,"tag":66,"props":130,"children":131},{},[132],{"type":38,"value":133},"Hybrid:",{"type":38,"value":135}," E-Commerce oder SaaS — Plausible misst allgemeinen Traffic, kritische Conversion-Events gehen Server-seitig via GTM zu CDP. Diesen Aufbau behandelt dieser Artikel.",{"type":33,"tag":41,"props":137,"children":139},{"id":138},"server-seitige-aggregation-vom-event-zur-metrik",[140],{"type":38,"value":141},"Server-seitige Aggregation: Vom Event zur Metrik",{"type":33,"tag":34,"props":143,"children":144},{},[145,147,152],{"type":38,"value":146},"Privacy-First Analytics' zweiter Arm: nicht event-basiert, sondern metrik-basiert. GA4 protokolliert jeden Click, Scroll, Video-Pause als separate Zeile (Event Stream). Bei einer E-Commerce-Site: 10 Millionen Events pro Tag. Das ist sowohl Kostendruck als auch Privacy-Risiko. Aggregation ist simpel: Events Server-seitig ",{"type":33,"tag":66,"props":148,"children":149},{},[150],{"type":38,"value":151},"instant zusammenfassen",{"type":38,"value":153},", statt Raw Events zu speichern — Zähler inkrementieren.",{"type":33,"tag":34,"props":155,"children":156},{},[157],{"type":38,"value":158},"Beispielarchitektur:",{"type":33,"tag":160,"props":161,"children":163},"pre",{"code":162},"Client → Plausible Tracker (1,4 KB JS)\n         ↓\n      Edge Worker (Cloudflare \u002F Vercel)\n         ↓ (Aggregation findet hier statt)\n      Internal Event Bus (Kafka \u002F Redpanda)\n         ↓\n      Time-Series DB (TimescaleDB \u002F ClickHouse)\n",[164],{"type":33,"tag":84,"props":165,"children":166},{"__ignoreMap":16},[167],{"type":38,"value":162},{"type":33,"tag":34,"props":169,"children":170},{},[171],{"type":38,"value":172},"Aggregation im Edge Worker:",{"type":33,"tag":160,"props":174,"children":178},{"code":175,"language":176,"meta":16,"className":177,"style":16},"-- TimescaleDB Hypertable Beispiel\nCREATE TABLE page_metrics (\n  time        TIMESTAMPTZ NOT NULL,\n  page_path   TEXT NOT NULL,\n  country     TEXT,\n  views       INT DEFAULT 1,\n  bounces     INT DEFAULT 0,\n  session_dur INT DEFAULT 0\n);\n\nSELECT create_hypertable('page_metrics', 'time');\n","sql","language-sql shiki shiki-themes github-dark",[179],{"type":33,"tag":84,"props":180,"children":181},{"__ignoreMap":16},[182,194,221,245,267,284,313,339,361,369,379],{"type":33,"tag":183,"props":184,"children":187},"span",{"class":185,"line":186},"line",1,[188],{"type":33,"tag":183,"props":189,"children":191},{"style":190},"--shiki-default:#6A737D",[192],{"type":38,"value":193},"-- TimescaleDB Hypertable Beispiel\n",{"type":33,"tag":183,"props":195,"children":197},{"class":185,"line":196},2,[198,204,209,215],{"type":33,"tag":183,"props":199,"children":201},{"style":200},"--shiki-default:#F97583",[202],{"type":38,"value":203},"CREATE",{"type":33,"tag":183,"props":205,"children":206},{"style":200},[207],{"type":38,"value":208}," TABLE",{"type":33,"tag":183,"props":210,"children":212},{"style":211},"--shiki-default:#B392F0",[213],{"type":38,"value":214}," page_metrics",{"type":33,"tag":183,"props":216,"children":218},{"style":217},"--shiki-default:#E1E4E8",[219],{"type":38,"value":220}," (\n",{"type":33,"tag":183,"props":222,"children":224},{"class":185,"line":223},3,[225,230,235,240],{"type":33,"tag":183,"props":226,"children":227},{"style":200},[228],{"type":38,"value":229},"  time",{"type":33,"tag":183,"props":231,"children":232},{"style":200},[233],{"type":38,"value":234},"        TIMESTAMPTZ",{"type":33,"tag":183,"props":236,"children":237},{"style":200},[238],{"type":38,"value":239}," NOT NULL",{"type":33,"tag":183,"props":241,"children":242},{"style":217},[243],{"type":38,"value":244},",\n",{"type":33,"tag":183,"props":246,"children":248},{"class":185,"line":247},4,[249,254,259,263],{"type":33,"tag":183,"props":250,"children":251},{"style":217},[252],{"type":38,"value":253},"  page_path   ",{"type":33,"tag":183,"props":255,"children":256},{"style":200},[257],{"type":38,"value":258},"TEXT",{"type":33,"tag":183,"props":260,"children":261},{"style":200},[262],{"type":38,"value":239},{"type":33,"tag":183,"props":264,"children":265},{"style":217},[266],{"type":38,"value":244},{"type":33,"tag":183,"props":268,"children":270},{"class":185,"line":269},5,[271,276,280],{"type":33,"tag":183,"props":272,"children":273},{"style":217},[274],{"type":38,"value":275},"  country     ",{"type":33,"tag":183,"props":277,"children":278},{"style":200},[279],{"type":38,"value":258},{"type":33,"tag":183,"props":281,"children":282},{"style":217},[283],{"type":38,"value":244},{"type":33,"tag":183,"props":285,"children":287},{"class":185,"line":286},6,[288,293,298,303,309],{"type":33,"tag":183,"props":289,"children":290},{"style":217},[291],{"type":38,"value":292},"  views       ",{"type":33,"tag":183,"props":294,"children":295},{"style":200},[296],{"type":38,"value":297},"INT",{"type":33,"tag":183,"props":299,"children":300},{"style":200},[301],{"type":38,"value":302}," DEFAULT",{"type":33,"tag":183,"props":304,"children":306},{"style":305},"--shiki-default:#79B8FF",[307],{"type":38,"value":308}," 1",{"type":33,"tag":183,"props":310,"children":311},{"style":217},[312],{"type":38,"value":244},{"type":33,"tag":183,"props":314,"children":316},{"class":185,"line":315},7,[317,322,326,330,335],{"type":33,"tag":183,"props":318,"children":319},{"style":217},[320],{"type":38,"value":321},"  bounces     ",{"type":33,"tag":183,"props":323,"children":324},{"style":200},[325],{"type":38,"value":297},{"type":33,"tag":183,"props":327,"children":328},{"style":200},[329],{"type":38,"value":302},{"type":33,"tag":183,"props":331,"children":332},{"style":305},[333],{"type":38,"value":334}," 0",{"type":33,"tag":183,"props":336,"children":337},{"style":217},[338],{"type":38,"value":244},{"type":33,"tag":183,"props":340,"children":342},{"class":185,"line":341},8,[343,348,352,356],{"type":33,"tag":183,"props":344,"children":345},{"style":217},[346],{"type":38,"value":347},"  session_dur ",{"type":33,"tag":183,"props":349,"children":350},{"style":200},[351],{"type":38,"value":297},{"type":33,"tag":183,"props":353,"children":354},{"style":200},[355],{"type":38,"value":302},{"type":33,"tag":183,"props":357,"children":358},{"style":305},[359],{"type":38,"value":360}," 0\n",{"type":33,"tag":183,"props":362,"children":363},{"class":185,"line":27},[364],{"type":33,"tag":183,"props":365,"children":366},{"style":217},[367],{"type":38,"value":368},");\n",{"type":33,"tag":183,"props":370,"children":372},{"class":185,"line":371},10,[373],{"type":33,"tag":183,"props":374,"children":376},{"emptyLinePlaceholder":375},true,[377],{"type":38,"value":378},"\n",{"type":33,"tag":183,"props":380,"children":382},{"class":185,"line":381},11,[383,388,393,399,404,409],{"type":33,"tag":183,"props":384,"children":385},{"style":200},[386],{"type":38,"value":387},"SELECT",{"type":33,"tag":183,"props":389,"children":390},{"style":217},[391],{"type":38,"value":392}," create_hypertable(",{"type":33,"tag":183,"props":394,"children":396},{"style":395},"--shiki-default:#9ECBFF",[397],{"type":38,"value":398},"'page_metrics'",{"type":33,"tag":183,"props":400,"children":401},{"style":217},[402],{"type":38,"value":403},", ",{"type":33,"tag":183,"props":405,"children":406},{"style":395},[407],{"type":38,"value":408},"'time'",{"type":33,"tag":183,"props":410,"children":411},{"style":217},[412],{"type":38,"value":368},{"type":33,"tag":34,"props":414,"children":415},{},[416],{"type":38,"value":417},"Jeder Page View vom Client durchläuft:",{"type":33,"tag":113,"props":419,"children":420},{},[421,434,439,444,457],{"type":33,"tag":62,"props":422,"children":423},{},[424,426,432],{"type":38,"value":425},"JS Tracker: ",{"type":33,"tag":84,"props":427,"children":429},{"className":428},[],[430],{"type":38,"value":431},"POST \u002Fapi\u002Fevent",{"type":38,"value":433}," → Edge Endpoint",{"type":33,"tag":62,"props":435,"children":436},{},[437],{"type":38,"value":438},"Edge Worker: Hash berechnen (IP + UA → session_id)",{"type":33,"tag":62,"props":440,"children":441},{},[442],{"type":38,"value":443},"Session Store (Redis): Gleiche session_id in letzten 30 Min?",{"type":33,"tag":62,"props":445,"children":446},{},[447,449,455],{"type":38,"value":448},"Wenn ja: ",{"type":33,"tag":84,"props":450,"children":452},{"className":451},[],[453],{"type":38,"value":454},"views",{"type":38,"value":456}," Counter +1, wenn nein: Neue Zeile",{"type":33,"tag":62,"props":458,"children":459},{},[460],{"type":38,"value":461},"Nach 30 Min Session-Timeout wird Bounce berechnet",{"type":33,"tag":34,"props":463,"children":464},{},[465],{"type":38,"value":466},"Diese Architektur bringt GA4 gegenüber 3 Vorteile:",{"type":33,"tag":58,"props":468,"children":469},{},[470,480,490],{"type":33,"tag":62,"props":471,"children":472},{},[473,478],{"type":33,"tag":66,"props":474,"children":475},{},[476],{"type":38,"value":477},"Storage: 85 % Reduktion.",{"type":38,"value":479}," 10M Events → 200K aggregierte Zeilen",{"type":33,"tag":62,"props":481,"children":482},{},[483,488],{"type":33,"tag":66,"props":484,"children":485},{},[486],{"type":38,"value":487},"Query-Speed: 40× schneller.",{"type":38,"value":489}," Time-Series Index macht Dashboard-Queries \u003C15ms",{"type":33,"tag":62,"props":491,"children":492},{},[493,498],{"type":33,"tag":66,"props":494,"children":495},{},[496],{"type":38,"value":497},"Privacy: Zero PII.",{"type":38,"value":499}," Raw Events weg = DSGVO Artikel 17 (Recht auf Löschung) automatisch erfüllt — es gibt ja keine persönlichen Daten",{"type":33,"tag":41,"props":501,"children":503},{"id":502},"dsgvo-compliance-technische-details",[504],{"type":38,"value":505},"DSGVO-Compliance: Technische Details",{"type":33,"tag":34,"props":507,"children":508},{},[509],{"type":38,"value":510},"Um Privacy-First Analytics legal-proof zu machen, braucht man 4 Schichten:",{"type":33,"tag":34,"props":512,"children":513},{},[514,519,521,527,529,535],{"type":33,"tag":66,"props":515,"children":516},{},[517],{"type":38,"value":518},"1. Data Minimization (DSGVO Artikel 5.1c):",{"type":38,"value":520}," Nur notwendige Felder sammeln. Statt ",{"type":33,"tag":84,"props":522,"children":524},{"className":523},[],[525],{"type":38,"value":526},"https:\u002F\u002Fexample.com\u002Fcheckout?user=123",{"type":38,"value":528}," nur ",{"type":33,"tag":84,"props":530,"children":532},{"className":531},[],[533],{"type":38,"value":534},"example.com",{"type":38,"value":536}," speichern. Compliance + Disk-Ersparnis.",{"type":33,"tag":34,"props":538,"children":539},{},[540,545],{"type":33,"tag":66,"props":541,"children":542},{},[543],{"type":38,"value":544},"2. Anonymisierungs-Schwelle (EDPB 2014):",{"type":38,"value":546}," Groups unter 5 zeigen, nicht die genaue Zahl. Weil eine Gruppe von 2 Personen re-identifizierbar wird. Im TimescaleDB Dashboard:",{"type":33,"tag":160,"props":548,"children":550},{"code":549,"language":176,"meta":16,"className":177,"style":16},"SELECT \n  country,\n  CASE \n    WHEN COUNT(DISTINCT session_id) \u003C 5 THEN '\u003C 5'\n    ELSE COUNT(DISTINCT session_id)::TEXT\n  END AS visitors\nFROM page_metrics\nWHERE time > NOW() - INTERVAL '7 days'\nGROUP BY country;\n",[551],{"type":33,"tag":84,"props":552,"children":553},{"__ignoreMap":16},[554,566,574,586,634,664,682,695,738],{"type":33,"tag":183,"props":555,"children":556},{"class":185,"line":186},[557,561],{"type":33,"tag":183,"props":558,"children":559},{"style":200},[560],{"type":38,"value":387},{"type":33,"tag":183,"props":562,"children":563},{"style":217},[564],{"type":38,"value":565}," \n",{"type":33,"tag":183,"props":567,"children":568},{"class":185,"line":196},[569],{"type":33,"tag":183,"props":570,"children":571},{"style":217},[572],{"type":38,"value":573},"  country,\n",{"type":33,"tag":183,"props":575,"children":576},{"class":185,"line":223},[577,582],{"type":33,"tag":183,"props":578,"children":579},{"style":200},[580],{"type":38,"value":581},"  CASE",{"type":33,"tag":183,"props":583,"children":584},{"style":217},[585],{"type":38,"value":565},{"type":33,"tag":183,"props":587,"children":588},{"class":185,"line":247},[589,594,599,604,609,614,619,624,629],{"type":33,"tag":183,"props":590,"children":591},{"style":200},[592],{"type":38,"value":593},"    WHEN",{"type":33,"tag":183,"props":595,"children":596},{"style":305},[597],{"type":38,"value":598}," COUNT",{"type":33,"tag":183,"props":600,"children":601},{"style":217},[602],{"type":38,"value":603},"(",{"type":33,"tag":183,"props":605,"children":606},{"style":200},[607],{"type":38,"value":608},"DISTINCT",{"type":33,"tag":183,"props":610,"children":611},{"style":217},[612],{"type":38,"value":613}," session_id) ",{"type":33,"tag":183,"props":615,"children":616},{"style":200},[617],{"type":38,"value":618},"\u003C",{"type":33,"tag":183,"props":620,"children":621},{"style":305},[622],{"type":38,"value":623}," 5",{"type":33,"tag":183,"props":625,"children":626},{"style":200},[627],{"type":38,"value":628}," THEN",{"type":33,"tag":183,"props":630,"children":631},{"style":395},[632],{"type":38,"value":633}," '\u003C 5'\n",{"type":33,"tag":183,"props":635,"children":636},{"class":185,"line":269},[637,642,646,650,654,659],{"type":33,"tag":183,"props":638,"children":639},{"style":200},[640],{"type":38,"value":641},"    ELSE",{"type":33,"tag":183,"props":643,"children":644},{"style":305},[645],{"type":38,"value":598},{"type":33,"tag":183,"props":647,"children":648},{"style":217},[649],{"type":38,"value":603},{"type":33,"tag":183,"props":651,"children":652},{"style":200},[653],{"type":38,"value":608},{"type":33,"tag":183,"props":655,"children":656},{"style":217},[657],{"type":38,"value":658}," session_id)::",{"type":33,"tag":183,"props":660,"children":661},{"style":200},[662],{"type":38,"value":663},"TEXT\n",{"type":33,"tag":183,"props":665,"children":666},{"class":185,"line":286},[667,672,677],{"type":33,"tag":183,"props":668,"children":669},{"style":200},[670],{"type":38,"value":671},"  END",{"type":33,"tag":183,"props":673,"children":674},{"style":200},[675],{"type":38,"value":676}," AS",{"type":33,"tag":183,"props":678,"children":679},{"style":217},[680],{"type":38,"value":681}," visitors\n",{"type":33,"tag":183,"props":683,"children":684},{"class":185,"line":315},[685,690],{"type":33,"tag":183,"props":686,"children":687},{"style":200},[688],{"type":38,"value":689},"FROM",{"type":33,"tag":183,"props":691,"children":692},{"style":217},[693],{"type":38,"value":694}," page_metrics\n",{"type":33,"tag":183,"props":696,"children":697},{"class":185,"line":341},[698,703,708,713,718,723,728,733],{"type":33,"tag":183,"props":699,"children":700},{"style":200},[701],{"type":38,"value":702},"WHERE",{"type":33,"tag":183,"props":704,"children":705},{"style":200},[706],{"type":38,"value":707}," time",{"type":33,"tag":183,"props":709,"children":710},{"style":200},[711],{"type":38,"value":712}," >",{"type":33,"tag":183,"props":714,"children":715},{"style":200},[716],{"type":38,"value":717}," NOW",{"type":33,"tag":183,"props":719,"children":720},{"style":217},[721],{"type":38,"value":722},"() ",{"type":33,"tag":183,"props":724,"children":725},{"style":200},[726],{"type":38,"value":727},"-",{"type":33,"tag":183,"props":729,"children":730},{"style":217},[731],{"type":38,"value":732}," INTERVAL ",{"type":33,"tag":183,"props":734,"children":735},{"style":395},[736],{"type":38,"value":737},"'7 days'\n",{"type":33,"tag":183,"props":739,"children":740},{"class":185,"line":27},[741,746],{"type":33,"tag":183,"props":742,"children":743},{"style":200},[744],{"type":38,"value":745},"GROUP BY",{"type":33,"tag":183,"props":747,"children":748},{"style":217},[749],{"type":38,"value":750}," country;\n",{"type":33,"tag":34,"props":752,"children":753},{},[754,759],{"type":33,"tag":66,"props":755,"children":756},{},[757],{"type":38,"value":758},"3. Datenspeicher-Policy:",{"type":38,"value":760}," DSGVO Artikel 5 — \"Daten löschen, wenn Zweck entfällt\". Für Analytics: Optimierung der Performance. 90 Tage reichen. TimescaleDB auto-compress + retention:",{"type":33,"tag":160,"props":762,"children":764},{"code":763,"language":176,"meta":16,"className":177,"style":16},"SELECT add_retention_policy('page_metrics', INTERVAL '90 days');\nSELECT add_compression_policy('page_metrics', INTERVAL '7 days');\n",[765],{"type":33,"tag":84,"props":766,"children":767},{"__ignoreMap":16},[768,798],{"type":33,"tag":183,"props":769,"children":770},{"class":185,"line":186},[771,775,780,784,789,794],{"type":33,"tag":183,"props":772,"children":773},{"style":200},[774],{"type":38,"value":387},{"type":33,"tag":183,"props":776,"children":777},{"style":217},[778],{"type":38,"value":779}," add_retention_policy(",{"type":33,"tag":183,"props":781,"children":782},{"style":395},[783],{"type":38,"value":398},{"type":33,"tag":183,"props":785,"children":786},{"style":217},[787],{"type":38,"value":788},", INTERVAL ",{"type":33,"tag":183,"props":790,"children":791},{"style":395},[792],{"type":38,"value":793},"'90 days'",{"type":33,"tag":183,"props":795,"children":796},{"style":217},[797],{"type":38,"value":368},{"type":33,"tag":183,"props":799,"children":800},{"class":185,"line":196},[801,805,810,814,818,823],{"type":33,"tag":183,"props":802,"children":803},{"style":200},[804],{"type":38,"value":387},{"type":33,"tag":183,"props":806,"children":807},{"style":217},[808],{"type":38,"value":809}," add_compression_policy(",{"type":33,"tag":183,"props":811,"children":812},{"style":395},[813],{"type":38,"value":398},{"type":33,"tag":183,"props":815,"children":816},{"style":217},[817],{"type":38,"value":788},{"type":33,"tag":183,"props":819,"children":820},{"style":395},[821],{"type":38,"value":822},"'7 days'",{"type":33,"tag":183,"props":824,"children":825},{"style":217},[826],{"type":38,"value":368},{"type":33,"tag":34,"props":828,"children":829},{},[830],{"type":38,"value":831},"Daten älter als 7 Tage komprimieren, älter als 90 Tage löschen. DSGVO Artikel 5 automatisch erfüllt.",{"type":33,"tag":34,"props":833,"children":834},{},[835,840,842,848,850,859],{"type":33,"tag":66,"props":836,"children":837},{},[838],{"type":38,"value":839},"4. Consent Mode v2 Integration (optional):",{"type":38,"value":841}," Wenn du noch GA4 im Hybrid-Setup laufen lässt, betreibe Plausible im ",{"type":33,"tag":84,"props":843,"children":845},{"className":844},[],[846],{"type":38,"value":847},"analytics_storage: denied",{"type":38,"value":849},"-Modus. Weil Plausible keine Cookies nutzt, braucht es sowieso kein Consent. ",{"type":33,"tag":851,"props":852,"children":856},"a",{"href":853,"rel":854},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Ffirstparty",[855],"nofollow",[857],{"type":38,"value":858},"First-Party-Datenstrategie",{"type":38,"value":860}," detailliert diesen Hybrid-Aufbau: Plausible misst Traffic, Server-seitige GTM sendet Conversion Events zu CDP.",{"type":33,"tag":41,"props":862,"children":864},{"id":863},"production-case-e-commerce-hybrid-stack",[865],{"type":38,"value":866},"Production Case: E-Commerce Hybrid Stack",{"type":33,"tag":34,"props":868,"children":869},{},[870],{"type":38,"value":871},"Architektur, die wir für einen Shopify-Store aufgebaut haben:",{"type":33,"tag":34,"props":873,"children":874},{},[875],{"type":33,"tag":66,"props":876,"children":877},{},[878],{"type":38,"value":879},"Frontend:",{"type":33,"tag":58,"props":881,"children":882},{},[883,888],{"type":33,"tag":62,"props":884,"children":885},{},[886],{"type":38,"value":887},"Plausible Tracker auf allen Seiten (Product View, Cart, Checkout)",{"type":33,"tag":62,"props":889,"children":890},{},[891,893,899],{"type":38,"value":892},"Custom Event: ",{"type":33,"tag":84,"props":894,"children":896},{"className":895},[],[897],{"type":38,"value":898},"plausible('Purchase', {revenue: 150})",{"type":38,"value":900}," bei Checkout Success",{"type":33,"tag":34,"props":902,"children":903},{},[904],{"type":33,"tag":66,"props":905,"children":906},{},[907],{"type":38,"value":908},"Backend (Cloudflare Worker):",{"type":33,"tag":160,"props":910,"children":914},{"code":911,"language":912,"meta":16,"className":913,"style":16},"addEventListener('fetch', event => {\n  event.respondWith(handleRequest(event.request))\n})\n\nasync function handleRequest(request) {\n  const url = new URL(request.url)\n  \n  if (url.pathname === '\u002Fapi\u002Fevent') {\n    const body = await request.json()\n    const sessionId = hashSession(request.headers.get('CF-Connecting-IP'), \n                                    request.headers.get('User-Agent'))\n    \n    \u002F\u002F Session-Check in Redis\n    const exists = await redis.exists(`session:${sessionId}`)\n    \n    if (!exists) {\n      await redis.setex(`session:${sessionId}`, 1800, '1')\n      await kafka.send({\n        topic: 'pageviews',\n        messages: [{\n          key: sessionId,\n          value: JSON.stringify({\n            page: body.url,\n            referrer: new URL(body.referrer).hostname,\n            timestamp: Date.now()\n          })\n        }]\n      })\n    }\n    \n    return new Response('OK', {status: 202})\n  }\n}\n","javascript","language-javascript shiki shiki-themes github-dark",[915],{"type":33,"tag":84,"props":916,"children":917},{"__ignoreMap":16},[918,955,982,990,997,1029,1062,1070,1097,1134,1179,1205,1214,1223,1278,1286,1310,1366,1389,1407,1416,1425,1453,1462,1485,1503,1512,1521,1530,1539,1547,1588,1597],{"type":33,"tag":183,"props":919,"children":920},{"class":185,"line":186},[921,926,930,935,939,945,950],{"type":33,"tag":183,"props":922,"children":923},{"style":211},[924],{"type":38,"value":925},"addEventListener",{"type":33,"tag":183,"props":927,"children":928},{"style":217},[929],{"type":38,"value":603},{"type":33,"tag":183,"props":931,"children":932},{"style":395},[933],{"type":38,"value":934},"'fetch'",{"type":33,"tag":183,"props":936,"children":937},{"style":217},[938],{"type":38,"value":403},{"type":33,"tag":183,"props":940,"children":942},{"style":941},"--shiki-default:#FFAB70",[943],{"type":38,"value":944},"event",{"type":33,"tag":183,"props":946,"children":947},{"style":200},[948],{"type":38,"value":949}," =>",{"type":33,"tag":183,"props":951,"children":952},{"style":217},[953],{"type":38,"value":954}," {\n",{"type":33,"tag":183,"props":956,"children":957},{"class":185,"line":196},[958,963,968,972,977],{"type":33,"tag":183,"props":959,"children":960},{"style":217},[961],{"type":38,"value":962},"  event.",{"type":33,"tag":183,"props":964,"children":965},{"style":211},[966],{"type":38,"value":967},"respondWith",{"type":33,"tag":183,"props":969,"children":970},{"style":217},[971],{"type":38,"value":603},{"type":33,"tag":183,"props":973,"children":974},{"style":211},[975],{"type":38,"value":976},"handleRequest",{"type":33,"tag":183,"props":978,"children":979},{"style":217},[980],{"type":38,"value":981},"(event.request))\n",{"type":33,"tag":183,"props":983,"children":984},{"class":185,"line":223},[985],{"type":33,"tag":183,"props":986,"children":987},{"style":217},[988],{"type":38,"value":989},"})\n",{"type":33,"tag":183,"props":991,"children":992},{"class":185,"line":247},[993],{"type":33,"tag":183,"props":994,"children":995},{"emptyLinePlaceholder":375},[996],{"type":38,"value":378},{"type":33,"tag":183,"props":998,"children":999},{"class":185,"line":269},[1000,1005,1010,1015,1019,1024],{"type":33,"tag":183,"props":1001,"children":1002},{"style":200},[1003],{"type":38,"value":1004},"async",{"type":33,"tag":183,"props":1006,"children":1007},{"style":200},[1008],{"type":38,"value":1009}," function",{"type":33,"tag":183,"props":1011,"children":1012},{"style":211},[1013],{"type":38,"value":1014}," handleRequest",{"type":33,"tag":183,"props":1016,"children":1017},{"style":217},[1018],{"type":38,"value":603},{"type":33,"tag":183,"props":1020,"children":1021},{"style":941},[1022],{"type":38,"value":1023},"request",{"type":33,"tag":183,"props":1025,"children":1026},{"style":217},[1027],{"type":38,"value":1028},") {\n",{"type":33,"tag":183,"props":1030,"children":1031},{"class":185,"line":286},[1032,1037,1042,1047,1052,1057],{"type":33,"tag":183,"props":1033,"children":1034},{"style":200},[1035],{"type":38,"value":1036},"  const",{"type":33,"tag":183,"props":1038,"children":1039},{"style":305},[1040],{"type":38,"value":1041}," url",{"type":33,"tag":183,"props":1043,"children":1044},{"style":200},[1045],{"type":38,"value":1046}," =",{"type":33,"tag":183,"props":1048,"children":1049},{"style":200},[1050],{"type":38,"value":1051}," new",{"type":33,"tag":183,"props":1053,"children":1054},{"style":211},[1055],{"type":38,"value":1056}," URL",{"type":33,"tag":183,"props":1058,"children":1059},{"style":217},[1060],{"type":38,"value":1061},"(request.url)\n",{"type":33,"tag":183,"props":1063,"children":1064},{"class":185,"line":315},[1065],{"type":33,"tag":183,"props":1066,"children":1067},{"style":217},[1068],{"type":38,"value":1069},"  \n",{"type":33,"tag":183,"props":1071,"children":1072},{"class":185,"line":341},[1073,1078,1083,1088,1093],{"type":33,"tag":183,"props":1074,"children":1075},{"style":200},[1076],{"type":38,"value":1077},"  if",{"type":33,"tag":183,"props":1079,"children":1080},{"style":217},[1081],{"type":38,"value":1082}," (url.pathname ",{"type":33,"tag":183,"props":1084,"children":1085},{"style":200},[1086],{"type":38,"value":1087},"===",{"type":33,"tag":183,"props":1089,"children":1090},{"style":395},[1091],{"type":38,"value":1092}," '\u002Fapi\u002Fevent'",{"type":33,"tag":183,"props":1094,"children":1095},{"style":217},[1096],{"type":38,"value":1028},{"type":33,"tag":183,"props":1098,"children":1099},{"class":185,"line":27},[1100,1105,1110,1114,1119,1124,1129],{"type":33,"tag":183,"props":1101,"children":1102},{"style":200},[1103],{"type":38,"value":1104},"    const",{"type":33,"tag":183,"props":1106,"children":1107},{"style":305},[1108],{"type":38,"value":1109}," body",{"type":33,"tag":183,"props":1111,"children":1112},{"style":200},[1113],{"type":38,"value":1046},{"type":33,"tag":183,"props":1115,"children":1116},{"style":200},[1117],{"type":38,"value":1118}," await",{"type":33,"tag":183,"props":1120,"children":1121},{"style":217},[1122],{"type":38,"value":1123}," request.",{"type":33,"tag":183,"props":1125,"children":1126},{"style":211},[1127],{"type":38,"value":1128},"json",{"type":33,"tag":183,"props":1130,"children":1131},{"style":217},[1132],{"type":38,"value":1133},"()\n",{"type":33,"tag":183,"props":1135,"children":1136},{"class":185,"line":371},[1137,1141,1146,1150,1155,1160,1165,1169,1174],{"type":33,"tag":183,"props":1138,"children":1139},{"style":200},[1140],{"type":38,"value":1104},{"type":33,"tag":183,"props":1142,"children":1143},{"style":305},[1144],{"type":38,"value":1145}," sessionId",{"type":33,"tag":183,"props":1147,"children":1148},{"style":200},[1149],{"type":38,"value":1046},{"type":33,"tag":183,"props":1151,"children":1152},{"style":211},[1153],{"type":38,"value":1154}," hashSession",{"type":33,"tag":183,"props":1156,"children":1157},{"style":217},[1158],{"type":38,"value":1159},"(request.headers.",{"type":33,"tag":183,"props":1161,"children":1162},{"style":211},[1163],{"type":38,"value":1164},"get",{"type":33,"tag":183,"props":1166,"children":1167},{"style":217},[1168],{"type":38,"value":603},{"type":33,"tag":183,"props":1170,"children":1171},{"style":395},[1172],{"type":38,"value":1173},"'CF-Connecting-IP'",{"type":33,"tag":183,"props":1175,"children":1176},{"style":217},[1177],{"type":38,"value":1178},"), \n",{"type":33,"tag":183,"props":1180,"children":1181},{"class":185,"line":381},[1182,1187,1191,1195,1200],{"type":33,"tag":183,"props":1183,"children":1184},{"style":217},[1185],{"type":38,"value":1186},"                                    request.headers.",{"type":33,"tag":183,"props":1188,"children":1189},{"style":211},[1190],{"type":38,"value":1164},{"type":33,"tag":183,"props":1192,"children":1193},{"style":217},[1194],{"type":38,"value":603},{"type":33,"tag":183,"props":1196,"children":1197},{"style":395},[1198],{"type":38,"value":1199},"'User-Agent'",{"type":33,"tag":183,"props":1201,"children":1202},{"style":217},[1203],{"type":38,"value":1204},"))\n",{"type":33,"tag":183,"props":1206,"children":1208},{"class":185,"line":1207},12,[1209],{"type":33,"tag":183,"props":1210,"children":1211},{"style":217},[1212],{"type":38,"value":1213},"    \n",{"type":33,"tag":183,"props":1215,"children":1217},{"class":185,"line":1216},13,[1218],{"type":33,"tag":183,"props":1219,"children":1220},{"style":190},[1221],{"type":38,"value":1222},"    \u002F\u002F Session-Check in Redis\n",{"type":33,"tag":183,"props":1224,"children":1226},{"class":185,"line":1225},14,[1227,1231,1236,1240,1244,1249,1254,1258,1263,1268,1273],{"type":33,"tag":183,"props":1228,"children":1229},{"style":200},[1230],{"type":38,"value":1104},{"type":33,"tag":183,"props":1232,"children":1233},{"style":305},[1234],{"type":38,"value":1235}," exists",{"type":33,"tag":183,"props":1237,"children":1238},{"style":200},[1239],{"type":38,"value":1046},{"type":33,"tag":183,"props":1241,"children":1242},{"style":200},[1243],{"type":38,"value":1118},{"type":33,"tag":183,"props":1245,"children":1246},{"style":217},[1247],{"type":38,"value":1248}," redis.",{"type":33,"tag":183,"props":1250,"children":1251},{"style":211},[1252],{"type":38,"value":1253},"exists",{"type":33,"tag":183,"props":1255,"children":1256},{"style":217},[1257],{"type":38,"value":603},{"type":33,"tag":183,"props":1259,"children":1260},{"style":395},[1261],{"type":38,"value":1262},"`session:${",{"type":33,"tag":183,"props":1264,"children":1265},{"style":217},[1266],{"type":38,"value":1267},"sessionId",{"type":33,"tag":183,"props":1269,"children":1270},{"style":395},[1271],{"type":38,"value":1272},"}`",{"type":33,"tag":183,"props":1274,"children":1275},{"style":217},[1276],{"type":38,"value":1277},")\n",{"type":33,"tag":183,"props":1279,"children":1281},{"class":185,"line":1280},15,[1282],{"type":33,"tag":183,"props":1283,"children":1284},{"style":217},[1285],{"type":38,"value":1213},{"type":33,"tag":183,"props":1287,"children":1289},{"class":185,"line":1288},16,[1290,1295,1300,1305],{"type":33,"tag":183,"props":1291,"children":1292},{"style":200},[1293],{"type":38,"value":1294},"    if",{"type":33,"tag":183,"props":1296,"children":1297},{"style":217},[1298],{"type":38,"value":1299}," (",{"type":33,"tag":183,"props":1301,"children":1302},{"style":200},[1303],{"type":38,"value":1304},"!",{"type":33,"tag":183,"props":1306,"children":1307},{"style":217},[1308],{"type":38,"value":1309},"exists) {\n",{"type":33,"tag":183,"props":1311,"children":1313},{"class":185,"line":1312},17,[1314,1319,1323,1328,1332,1336,1340,1344,1348,1353,1357,1362],{"type":33,"tag":183,"props":1315,"children":1316},{"style":200},[1317],{"type":38,"value":1318},"      await",{"type":33,"tag":183,"props":1320,"children":1321},{"style":217},[1322],{"type":38,"value":1248},{"type":33,"tag":183,"props":1324,"children":1325},{"style":211},[1326],{"type":38,"value":1327},"setex",{"type":33,"tag":183,"props":1329,"children":1330},{"style":217},[1331],{"type":38,"value":603},{"type":33,"tag":183,"props":1333,"children":1334},{"style":395},[1335],{"type":38,"value":1262},{"type":33,"tag":183,"props":1337,"children":1338},{"style":217},[1339],{"type":38,"value":1267},{"type":33,"tag":183,"props":1341,"children":1342},{"style":395},[1343],{"type":38,"value":1272},{"type":33,"tag":183,"props":1345,"children":1346},{"style":217},[1347],{"type":38,"value":403},{"type":33,"tag":183,"props":1349,"children":1350},{"style":305},[1351],{"type":38,"value":1352},"1800",{"type":33,"tag":183,"props":1354,"children":1355},{"style":217},[1356],{"type":38,"value":403},{"type":33,"tag":183,"props":1358,"children":1359},{"style":395},[1360],{"type":38,"value":1361},"'1'",{"type":33,"tag":183,"props":1363,"children":1364},{"style":217},[1365],{"type":38,"value":1277},{"type":33,"tag":183,"props":1367,"children":1369},{"class":185,"line":1368},18,[1370,1374,1379,1384],{"type":33,"tag":183,"props":1371,"children":1372},{"style":200},[1373],{"type":38,"value":1318},{"type":33,"tag":183,"props":1375,"children":1376},{"style":217},[1377],{"type":38,"value":1378}," kafka.",{"type":33,"tag":183,"props":1380,"children":1381},{"style":211},[1382],{"type":38,"value":1383},"send",{"type":33,"tag":183,"props":1385,"children":1386},{"style":217},[1387],{"type":38,"value":1388},"({\n",{"type":33,"tag":183,"props":1390,"children":1392},{"class":185,"line":1391},19,[1393,1398,1403],{"type":33,"tag":183,"props":1394,"children":1395},{"style":217},[1396],{"type":38,"value":1397},"        topic: ",{"type":33,"tag":183,"props":1399,"children":1400},{"style":395},[1401],{"type":38,"value":1402},"'pageviews'",{"type":33,"tag":183,"props":1404,"children":1405},{"style":217},[1406],{"type":38,"value":244},{"type":33,"tag":183,"props":1408,"children":1410},{"class":185,"line":1409},20,[1411],{"type":33,"tag":183,"props":1412,"children":1413},{"style":217},[1414],{"type":38,"value":1415},"        messages: [{\n",{"type":33,"tag":183,"props":1417,"children":1419},{"class":185,"line":1418},21,[1420],{"type":33,"tag":183,"props":1421,"children":1422},{"style":217},[1423],{"type":38,"value":1424},"          key: sessionId,\n",{"type":33,"tag":183,"props":1426,"children":1428},{"class":185,"line":1427},22,[1429,1434,1439,1444,1449],{"type":33,"tag":183,"props":1430,"children":1431},{"style":217},[1432],{"type":38,"value":1433},"          value: ",{"type":33,"tag":183,"props":1435,"children":1436},{"style":305},[1437],{"type":38,"value":1438},"JSON",{"type":33,"tag":183,"props":1440,"children":1441},{"style":217},[1442],{"type":38,"value":1443},".",{"type":33,"tag":183,"props":1445,"children":1446},{"style":211},[1447],{"type":38,"value":1448},"stringify",{"type":33,"tag":183,"props":1450,"children":1451},{"style":217},[1452],{"type":38,"value":1388},{"type":33,"tag":183,"props":1454,"children":1456},{"class":185,"line":1455},23,[1457],{"type":33,"tag":183,"props":1458,"children":1459},{"style":217},[1460],{"type":38,"value":1461},"            page: body.url,\n",{"type":33,"tag":183,"props":1463,"children":1465},{"class":185,"line":1464},24,[1466,1471,1476,1480],{"type":33,"tag":183,"props":1467,"children":1468},{"style":217},[1469],{"type":38,"value":1470},"            referrer: ",{"type":33,"tag":183,"props":1472,"children":1473},{"style":200},[1474],{"type":38,"value":1475},"new",{"type":33,"tag":183,"props":1477,"children":1478},{"style":211},[1479],{"type":38,"value":1056},{"type":33,"tag":183,"props":1481,"children":1482},{"style":217},[1483],{"type":38,"value":1484},"(body.referrer).hostname,\n",{"type":33,"tag":183,"props":1486,"children":1488},{"class":185,"line":1487},25,[1489,1494,1499],{"type":33,"tag":183,"props":1490,"children":1491},{"style":217},[1492],{"type":38,"value":1493},"            timestamp: Date.",{"type":33,"tag":183,"props":1495,"children":1496},{"style":211},[1497],{"type":38,"value":1498},"now",{"type":33,"tag":183,"props":1500,"children":1501},{"style":217},[1502],{"type":38,"value":1133},{"type":33,"tag":183,"props":1504,"children":1506},{"class":185,"line":1505},26,[1507],{"type":33,"tag":183,"props":1508,"children":1509},{"style":217},[1510],{"type":38,"value":1511},"          })\n",{"type":33,"tag":183,"props":1513,"children":1515},{"class":185,"line":1514},27,[1516],{"type":33,"tag":183,"props":1517,"children":1518},{"style":217},[1519],{"type":38,"value":1520},"        }]\n",{"type":33,"tag":183,"props":1522,"children":1524},{"class":185,"line":1523},28,[1525],{"type":33,"tag":183,"props":1526,"children":1527},{"style":217},[1528],{"type":38,"value":1529},"      })\n",{"type":33,"tag":183,"props":1531,"children":1533},{"class":185,"line":1532},29,[1534],{"type":33,"tag":183,"props":1535,"children":1536},{"style":217},[1537],{"type":38,"value":1538},"    }\n",{"type":33,"tag":183,"props":1540,"children":1542},{"class":185,"line":1541},30,[1543],{"type":33,"tag":183,"props":1544,"children":1545},{"style":217},[1546],{"type":38,"value":1213},{"type":33,"tag":183,"props":1548,"children":1550},{"class":185,"line":1549},31,[1551,1556,1560,1565,1569,1574,1579,1584],{"type":33,"tag":183,"props":1552,"children":1553},{"style":200},[1554],{"type":38,"value":1555},"    return",{"type":33,"tag":183,"props":1557,"children":1558},{"style":200},[1559],{"type":38,"value":1051},{"type":33,"tag":183,"props":1561,"children":1562},{"style":211},[1563],{"type":38,"value":1564}," Response",{"type":33,"tag":183,"props":1566,"children":1567},{"style":217},[1568],{"type":38,"value":603},{"type":33,"tag":183,"props":1570,"children":1571},{"style":395},[1572],{"type":38,"value":1573},"'OK'",{"type":33,"tag":183,"props":1575,"children":1576},{"style":217},[1577],{"type":38,"value":1578},", {status: ",{"type":33,"tag":183,"props":1580,"children":1581},{"style":305},[1582],{"type":38,"value":1583},"202",{"type":33,"tag":183,"props":1585,"children":1586},{"style":217},[1587],{"type":38,"value":989},{"type":33,"tag":183,"props":1589,"children":1591},{"class":185,"line":1590},32,[1592],{"type":33,"tag":183,"props":1593,"children":1594},{"style":217},[1595],{"type":38,"value":1596},"  }\n",{"type":33,"tag":183,"props":1598,"children":1600},{"class":185,"line":1599},33,[1601],{"type":33,"tag":183,"props":1602,"children":1603},{"style":217},[1604],{"type":38,"value":1605},"}\n",{"type":33,"tag":34,"props":1607,"children":1608},{},[1609],{"type":33,"tag":66,"props":1610,"children":1611},{},[1612],{"type":38,"value":1613},"Data Layer:",{"type":33,"tag":58,"props":1615,"children":1616},{},[1617,1622,1627],{"type":33,"tag":62,"props":1618,"children":1619},{},[1620],{"type":38,"value":1621},"Kafka Consumer schreibt in TimescaleDB (Batch Insert alle 10 Sekunden)",{"type":33,"tag":62,"props":1623,"children":1624},{},[1625],{"type":38,"value":1626},"Grafana Dashboard liest aus TimescaleDB (Real-Time, 2 Sec Refresh)",{"type":33,"tag":62,"props":1628,"children":1629},{},[1630],{"type":38,"value":1631},"BigQuery Daily Aggregated Export (dbt für Joins: Plausible Traffic + Shopify Orders)",{"type":33,"tag":34,"props":1633,"children":1634},{},[1635],{"type":38,"value":1636},"Resultat: Conversion Attribution 92 % Genauigkeit (GA4 war 58 % — ITP und Cookie-Ablehnung). DSGVO-Konformität 100 % — null PII gespeichert. Dashboard Query \u003C40ms (GA4: 4–6 Sekunden).",{"type":33,"tag":41,"props":1638,"children":1640},{"id":1639},"plausible-vs-ga4-wann-was",[1641],{"type":38,"value":1642},"Plausible vs GA4: Wann Was",{"type":33,"tag":34,"props":1644,"children":1645},{},[1646],{"type":38,"value":1647},"GA4 komplett abschaffen? Nein. In zwei Szenarien macht GA4 noch Sinn:",{"type":33,"tag":34,"props":1649,"children":1650},{},[1651],{"type":33,"tag":66,"props":1652,"children":1653},{},[1654],{"type":38,"value":1655},"GA4 nutzen:",{"type":33,"tag":58,"props":1657,"children":1658},{},[1659,1664,1669],{"type":33,"tag":62,"props":1660,"children":1661},{},[1662],{"type":38,"value":1663},"Cross-Domain Tracking (mehrere Sites, Subdomains — GA4 Linker-Mechanik ist ausgereifter)",{"type":33,"tag":62,"props":1665,"children":1666},{},[1667],{"type":38,"value":1668},"Machine Learning Insights (GA4 Predictive Metrics: Purchase Probability, Churn)",{"type":33,"tag":62,"props":1670,"children":1671},{},[1672],{"type":38,"value":1673},"Google Ads Integration (Enhanced Conversions, Remarketing Audience — GA4 nativ)",{"type":33,"tag":34,"props":1675,"children":1676},{},[1677],{"type":33,"tag":66,"props":1678,"children":1679},{},[1680],{"type":38,"value":1681},"Plausible nutzen:",{"type":33,"tag":58,"props":1683,"children":1684},{},[1685,1690,1695],{"type":33,"tag":62,"props":1686,"children":1687},{},[1688],{"type":38,"value":1689},"Public Dashboards (Plausible embed-bar — GA4 braucht Viewer-Konto)",{"type":33,"tag":62,"props":1691,"children":1692},{},[1693],{"type":38,"value":1694},"Lightweight Sites (Blog, Landing Page, SaaS Marketing)",{"type":33,"tag":62,"props":1696,"children":1697},{},[1698],{"type":38,"value":1699},"Strikte Compliance (DSGVO, CCPA — bei Plausible zero Risiko)",{"type":33,"tag":34,"props":1701,"children":1702},{},[1703],{"type":38,"value":1704},"Hybrid ist Standard: Plausible misst Site-wide Traffic, GA4 nur bei kritischen Conversion-Funnels via Server-seitige GTM. Privacy + Performance.",{"type":33,"tag":34,"props":1706,"children":1707},{},[1708],{"type":38,"value":1709},"Privacy-First Analytics ist nicht mehr \"nice to have\", sondern \"must-have\". Chrome hat Cookies 2024 abgeschafft, DSGVO-Bußgelder sind 2025 um 300 % gestiegen. Plausible + Server-seitige Aggregation ist die einzige Production-Ready Lösung für beide Probleme. Wenn du noch mit GA4's 60 % Datenverlust kämpfst, plane jetzt die Umstellung zu Cookie-losem Messen — 2026 funktioniert Cookie-freie Analytics-Architektur, Cookie-basierte nicht mehr.",{"type":33,"tag":1711,"props":1712,"children":1713},"style",{},[1714],{"type":38,"value":1715},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":223,"depth":223,"links":1717},[1718,1719,1720,1721,1722],{"id":43,"depth":196,"text":46},{"id":138,"depth":196,"text":141},{"id":502,"depth":196,"text":505},{"id":863,"depth":196,"text":866},{"id":1639,"depth":196,"text":1642},"markdown","content:de:data:privacy-first-analytics-plausible-server-aggregation.md","content","de\u002Fdata\u002Fprivacy-first-analytics-plausible-server-aggregation.md","de\u002Fdata\u002Fprivacy-first-analytics-plausible-server-aggregation","md",1779314643197]