[{"data":1,"prerenderedAt":2354},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fes\u002Fdata\u002Fanalytics-privacy-first-plausible-server-aggregation":12},{"i18nKey":4,"paths":5},"data-006-2026-06",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11},"\u002Fde\u002Fdata\u002Fdatenschutz-erste-analytik-plausible-server-aggregation","\u002Fen\u002Fdata\u002Fprivacy-first-analytics-plausible-server-aggregation","\u002Fes\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side-aggregation","\u002Ffr\u002Fdata\u002Fprivacy-first-analytics-plausible","\u002Fit\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side-aggregation","\u002Fru\u002Fdata\u002Fprivacy-first-analytics-plausible",{"_path":13,"_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":2348,"_id":2349,"_source":2350,"_file":2351,"_stem":2352,"_extension":2353},"\u002Fes\u002Fdata\u002Fanalytics-privacy-first-plausible-server-aggregation","data",false,"","Analítica Privacy-First: Plausible + Agregación del Lado del Servidor","Rastreo sin cookies, cumplimiento RGPD\u002FKVKK, comparación con GA4. Cómo construir una infraestructura de medición orientada a la privacidad con arquitectura de agregación server-side.","2026-06-23","verianalizi",[22,23,24,25,26],"privacy-first","plausible","server-side-tracking","rgpd","cookieless",8,"Roibase",{"type":30,"children":31,"toc":2334},"root",[32,40,47,69,90,97,110,303,332,338,359,477,482,562,589,595,600,938,943,949,1149,1168,1184,1190,1195,1236,1939,1959,1965,1970,2207,2228,2234,2239,2293,2305,2310,2316,2328],{"type":33,"tag":34,"props":35,"children":36},"element","p",{},[37],{"type":38,"value":39},"text","La configuración por defecto de Google Analytics 4 en 2026 confirma que no abandona el fingerprinting del navegador, la escritura de cookies del lado del cliente ni el registro de IP sin consentimiento explícito. La guía de enero de 2026 de la Autoridad Española de Protección de Datos categoriza GA4 como \"no utilizable sin consentimiento explícito\". La reforma de la KVKK turca que entra en vigor a finales de 2025 establece un requisito similar: el análisis basado en cookies requiere consentimiento previo. Mientras el marketing de rendimiento se apoya en stacks de atribución agresivos, trasladar la capa de análisis del sitio a una arquitectura privacy-first es ahora una obligación operativa. Plausible + agregación server-side resuelve dos preguntas críticas: cómo medir sin cookies y cómo construir un pipeline server-side que sea seguro en cumplimiento normativo.",{"type":33,"tag":41,"props":42,"children":44},"h2",{"id":43},"la-arquitectura-diferente-de-plausible-agregación-de-contadores-no-stream-de-eventos",[45],{"type":38,"value":46},"La Arquitectura Diferente de Plausible: Agregación de Contadores, No Stream de Eventos",{"type":33,"tag":34,"props":48,"children":49},{},[50,52,59,61,67],{"type":38,"value":51},"Plausible ejecuta un snippet de JavaScript de menos de 1 KB en el navegador. No escribe cookies, no usa localStorage, no registra direcciones IP. Cuando ocurre una visualización de página, realiza una llamada ",{"type":33,"tag":53,"props":54,"children":56},"code",{"className":55},[],[57],{"type":38,"value":58},"POST \u002Fapi\u002Fevent",{"type":38,"value":60},". El evento raw que llega al servicio backend de Elixir se ",{"type":33,"tag":62,"props":63,"children":64},"strong",{},[65],{"type":38,"value":66},"agrega de inmediato",{"type":38,"value":68}," en PostgreSQL — cada evento incrementa un contador de pageview único, la identificación de sesión se reemplaza con una firma de visitante hasheada mediante salt diario (IP + User-Agent → HMAC-SHA256 → TTL de 24 horas). La lógica de reconocimiento de visitante es determinista pero irreversible: las solicitudes del mismo dispositivo en el mismo día se asignan al mismo hash de visitante, pero al cambiar el salt al día siguiente, el vínculo se rompe. Este enfoque cae fuera de la definición de KVKK de \"persona física identificable\" — incluso si tuvieras el hash, no podrías volver a la IP.",{"type":33,"tag":34,"props":70,"children":71},{},[72,74,80,82,88],{"type":38,"value":73},"La diferencia con GA4: GA4 mantiene un ",{"type":33,"tag":53,"props":75,"children":77},{"className":76},[],[78],{"type":38,"value":79},"_ga",{"type":38,"value":81}," cookie persistente de 2 años en el cliente, escribe cada hit en un stream de eventos y en BigQuery export, el ",{"type":33,"tag":53,"props":83,"children":85},{"className":84},[],[86],{"type":38,"value":87},"user_pseudo_id",{"type":38,"value":89}," es el valor de la cookie. Con Consent Mode v2 activo, envía datos redactados pero sigue escribiendo la cookie. En Plausible, el evento que llega al servidor ni siquiera tiene la IP cruda en PostgreSQL — se hashea dentro del proceso Elixir y la IP cruda se elimina de la memoria. Esta arquitectura respeta el principio RGPD de \"limitación de propósito\": los datos recopilados solo se pueden usar para contar el tráfico del sitio, no para remarketing o rastreo cross-site.",{"type":33,"tag":91,"props":92,"children":94},"h3",{"id":93},"estructura-del-contador-de-agregación",[95],{"type":38,"value":96},"Estructura del Contador de Agregación",{"type":33,"tag":34,"props":98,"children":99},{},[100,102,108],{"type":38,"value":101},"Las métricas que ves en el dashboard de Plausible (pageview, visitante, tasa de rebote, duración de sesión) no se almacenan en la tabla ",{"type":33,"tag":53,"props":103,"children":105},{"className":104},[],[106],{"type":38,"value":107},"events",{"type":38,"value":109},". La estructura de la tabla es:",{"type":33,"tag":111,"props":112,"children":116},"pre",{"className":113,"code":114,"language":115,"meta":16,"style":16},"language-sql shiki shiki-themes github-dark","CREATE TABLE stats (\n  site_id INT,\n  date DATE,\n  metric VARCHAR(50),   -- 'pageviews', 'visitors', 'bounce_rate'\n  dimension VARCHAR(50),-- 'page', 'source', 'device'\n  value BIGINT,\n  PRIMARY KEY (site_id, date, metric, dimension)\n);\n","sql",[117],{"type":33,"tag":53,"props":118,"children":119},{"__ignoreMap":16},[120,149,168,186,222,253,271,295],{"type":33,"tag":121,"props":122,"children":125},"span",{"class":123,"line":124},"line",1,[126,132,137,143],{"type":33,"tag":121,"props":127,"children":129},{"style":128},"--shiki-default:#F97583",[130],{"type":38,"value":131},"CREATE",{"type":33,"tag":121,"props":133,"children":134},{"style":128},[135],{"type":38,"value":136}," TABLE",{"type":33,"tag":121,"props":138,"children":140},{"style":139},"--shiki-default:#B392F0",[141],{"type":38,"value":142}," stats",{"type":33,"tag":121,"props":144,"children":146},{"style":145},"--shiki-default:#E1E4E8",[147],{"type":38,"value":148}," (\n",{"type":33,"tag":121,"props":150,"children":152},{"class":123,"line":151},2,[153,158,163],{"type":33,"tag":121,"props":154,"children":155},{"style":145},[156],{"type":38,"value":157},"  site_id ",{"type":33,"tag":121,"props":159,"children":160},{"style":128},[161],{"type":38,"value":162},"INT",{"type":33,"tag":121,"props":164,"children":165},{"style":145},[166],{"type":38,"value":167},",\n",{"type":33,"tag":121,"props":169,"children":171},{"class":123,"line":170},3,[172,177,182],{"type":33,"tag":121,"props":173,"children":174},{"style":128},[175],{"type":38,"value":176},"  date",{"type":33,"tag":121,"props":178,"children":179},{"style":128},[180],{"type":38,"value":181}," DATE",{"type":33,"tag":121,"props":183,"children":184},{"style":145},[185],{"type":38,"value":167},{"type":33,"tag":121,"props":187,"children":189},{"class":123,"line":188},4,[190,195,200,205,211,216],{"type":33,"tag":121,"props":191,"children":192},{"style":145},[193],{"type":38,"value":194},"  metric ",{"type":33,"tag":121,"props":196,"children":197},{"style":128},[198],{"type":38,"value":199},"VARCHAR",{"type":33,"tag":121,"props":201,"children":202},{"style":145},[203],{"type":38,"value":204},"(",{"type":33,"tag":121,"props":206,"children":208},{"style":207},"--shiki-default:#79B8FF",[209],{"type":38,"value":210},"50",{"type":33,"tag":121,"props":212,"children":213},{"style":145},[214],{"type":38,"value":215},"),   ",{"type":33,"tag":121,"props":217,"children":219},{"style":218},"--shiki-default:#6A737D",[220],{"type":38,"value":221},"-- 'pageviews', 'visitors', 'bounce_rate'\n",{"type":33,"tag":121,"props":223,"children":225},{"class":123,"line":224},5,[226,231,235,239,243,248],{"type":33,"tag":121,"props":227,"children":228},{"style":145},[229],{"type":38,"value":230},"  dimension ",{"type":33,"tag":121,"props":232,"children":233},{"style":128},[234],{"type":38,"value":199},{"type":33,"tag":121,"props":236,"children":237},{"style":145},[238],{"type":38,"value":204},{"type":33,"tag":121,"props":240,"children":241},{"style":207},[242],{"type":38,"value":210},{"type":33,"tag":121,"props":244,"children":245},{"style":145},[246],{"type":38,"value":247},"),",{"type":33,"tag":121,"props":249,"children":250},{"style":218},[251],{"type":38,"value":252},"-- 'page', 'source', 'device'\n",{"type":33,"tag":121,"props":254,"children":256},{"class":123,"line":255},6,[257,262,267],{"type":33,"tag":121,"props":258,"children":259},{"style":128},[260],{"type":38,"value":261},"  value",{"type":33,"tag":121,"props":263,"children":264},{"style":128},[265],{"type":38,"value":266}," BIGINT",{"type":33,"tag":121,"props":268,"children":269},{"style":145},[270],{"type":38,"value":167},{"type":33,"tag":121,"props":272,"children":274},{"class":123,"line":273},7,[275,280,285,290],{"type":33,"tag":121,"props":276,"children":277},{"style":128},[278],{"type":38,"value":279},"  PRIMARY KEY",{"type":33,"tag":121,"props":281,"children":282},{"style":145},[283],{"type":38,"value":284}," (site_id, ",{"type":33,"tag":121,"props":286,"children":287},{"style":128},[288],{"type":38,"value":289},"date",{"type":33,"tag":121,"props":291,"children":292},{"style":145},[293],{"type":38,"value":294},", metric, dimension)\n",{"type":33,"tag":121,"props":296,"children":297},{"class":123,"line":27},[298],{"type":33,"tag":121,"props":299,"children":300},{"style":145},[301],{"type":38,"value":302},");\n",{"type":33,"tag":34,"props":304,"children":305},{},[306,308,314,316,322,324,330],{"type":38,"value":307},"En cada evento entrante, se ejecuta una consulta ",{"type":33,"tag":53,"props":309,"children":311},{"className":310},[],[312],{"type":38,"value":313},"INCREMENT",{"type":38,"value":315},": si la combinación de ese día, esa página y esa métrica existe, suma ",{"type":33,"tag":53,"props":317,"children":319},{"className":318},[],[320],{"type":38,"value":321},"+1",{"type":38,"value":323},"; si no, ejecuta ",{"type":33,"tag":53,"props":325,"children":327},{"className":326},[],[328],{"type":38,"value":329},"INSERT",{"type":38,"value":331},". El dashboard en tiempo real lee estos contadores. Como no se almacena el stream de eventos raw, se cumple totalmente con la cláusula de \"minimización de datos\" del RGPD — los datos que mantienes son proporcionales a lo que haces.",{"type":33,"tag":41,"props":333,"children":335},{"id":334},"proxy-del-lado-del-servidor-pasar-el-tráfico-plausible-por-tu-dominio",[336],{"type":38,"value":337},"Proxy del Lado del Servidor: Pasar el Tráfico Plausible por tu Dominio",{"type":33,"tag":34,"props":339,"children":340},{},[341,343,349,351,357],{"type":38,"value":342},"El endpoint SaaS de Plausible es ",{"type":33,"tag":53,"props":344,"children":346},{"className":345},[],[347],{"type":38,"value":348},"plausible.io\u002Fapi\u002Fevent",{"type":38,"value":350},". El navegador hace POST a esa URL. Si los bloqueadores de anuncios incluyen ",{"type":33,"tag":53,"props":352,"children":354},{"className":353},[],[355],{"type":38,"value":356},"plausible.io",{"type":38,"value":358}," en su lista negra, el evento se pierde. La solución: canalizar el evento de Plausible a través de un proxy inverso en tu propio dominio. Configuración de Nginx:",{"type":33,"tag":111,"props":360,"children":364},{"className":361,"code":362,"language":363,"meta":16,"style":16},"language-nginx shiki shiki-themes github-dark","location \u002Fstats\u002Fapi\u002Fevent {\n  proxy_pass https:\u002F\u002Fplausible.io\u002Fapi\u002Fevent;\n  proxy_set_header Host plausible.io;\n  proxy_set_header X-Forwarded-For $remote_addr;\n  proxy_set_header X-Forwarded-Proto $scheme;\n  \n  # Anonimización de IP — enmascara el último octeto\n  set $anonymized_ip $remote_addr;\n  if ($remote_addr ~* ^(\\d+\\.\\d+\\.\\d+)\\.\\d+$) {\n    set $anonymized_ip $1.0;\n  }\n  proxy_set_header X-Forwarded-For $anonymized_ip;\n}\n","nginx",[365],{"type":33,"tag":53,"props":366,"children":367},{"__ignoreMap":16},[368,376,384,392,400,408,416,424,432,441,450,459,468],{"type":33,"tag":121,"props":369,"children":370},{"class":123,"line":124},[371],{"type":33,"tag":121,"props":372,"children":373},{},[374],{"type":38,"value":375},"location \u002Fstats\u002Fapi\u002Fevent {\n",{"type":33,"tag":121,"props":377,"children":378},{"class":123,"line":151},[379],{"type":33,"tag":121,"props":380,"children":381},{},[382],{"type":38,"value":383},"  proxy_pass https:\u002F\u002Fplausible.io\u002Fapi\u002Fevent;\n",{"type":33,"tag":121,"props":385,"children":386},{"class":123,"line":170},[387],{"type":33,"tag":121,"props":388,"children":389},{},[390],{"type":38,"value":391},"  proxy_set_header Host plausible.io;\n",{"type":33,"tag":121,"props":393,"children":394},{"class":123,"line":188},[395],{"type":33,"tag":121,"props":396,"children":397},{},[398],{"type":38,"value":399},"  proxy_set_header X-Forwarded-For $remote_addr;\n",{"type":33,"tag":121,"props":401,"children":402},{"class":123,"line":224},[403],{"type":33,"tag":121,"props":404,"children":405},{},[406],{"type":38,"value":407},"  proxy_set_header X-Forwarded-Proto $scheme;\n",{"type":33,"tag":121,"props":409,"children":410},{"class":123,"line":255},[411],{"type":33,"tag":121,"props":412,"children":413},{},[414],{"type":38,"value":415},"  \n",{"type":33,"tag":121,"props":417,"children":418},{"class":123,"line":273},[419],{"type":33,"tag":121,"props":420,"children":421},{},[422],{"type":38,"value":423},"  # Anonimización de IP — enmascara el último octeto\n",{"type":33,"tag":121,"props":425,"children":426},{"class":123,"line":27},[427],{"type":33,"tag":121,"props":428,"children":429},{},[430],{"type":38,"value":431},"  set $anonymized_ip $remote_addr;\n",{"type":33,"tag":121,"props":433,"children":435},{"class":123,"line":434},9,[436],{"type":33,"tag":121,"props":437,"children":438},{},[439],{"type":38,"value":440},"  if ($remote_addr ~* ^(\\d+\\.\\d+\\.\\d+)\\.\\d+$) {\n",{"type":33,"tag":121,"props":442,"children":444},{"class":123,"line":443},10,[445],{"type":33,"tag":121,"props":446,"children":447},{},[448],{"type":38,"value":449},"    set $anonymized_ip $1.0;\n",{"type":33,"tag":121,"props":451,"children":453},{"class":123,"line":452},11,[454],{"type":33,"tag":121,"props":455,"children":456},{},[457],{"type":38,"value":458},"  }\n",{"type":33,"tag":121,"props":460,"children":462},{"class":123,"line":461},12,[463],{"type":33,"tag":121,"props":464,"children":465},{},[466],{"type":38,"value":467},"  proxy_set_header X-Forwarded-For $anonymized_ip;\n",{"type":33,"tag":121,"props":469,"children":471},{"class":123,"line":470},13,[472],{"type":33,"tag":121,"props":473,"children":474},{},[475],{"type":38,"value":476},"}\n",{"type":33,"tag":34,"props":478,"children":479},{},[480],{"type":38,"value":481},"El script de frontend cambia:",{"type":33,"tag":111,"props":483,"children":487},{"className":484,"code":485,"language":486,"meta":16,"style":16},"language-html shiki shiki-themes github-dark","\u003Cscript defer data-domain=\"yourdomain.com\" \n  src=\"\u002Fstats\u002Fjs\u002Fscript.js\">\u003C\u002Fscript>\n","html",[488],{"type":33,"tag":53,"props":489,"children":490},{"__ignoreMap":16},[491,531],{"type":33,"tag":121,"props":492,"children":493},{"class":123,"line":124},[494,499,505,510,515,520,526],{"type":33,"tag":121,"props":495,"children":496},{"style":145},[497],{"type":38,"value":498},"\u003C",{"type":33,"tag":121,"props":500,"children":502},{"style":501},"--shiki-default:#85E89D",[503],{"type":38,"value":504},"script",{"type":33,"tag":121,"props":506,"children":507},{"style":139},[508],{"type":38,"value":509}," defer",{"type":33,"tag":121,"props":511,"children":512},{"style":139},[513],{"type":38,"value":514}," data-domain",{"type":33,"tag":121,"props":516,"children":517},{"style":145},[518],{"type":38,"value":519},"=",{"type":33,"tag":121,"props":521,"children":523},{"style":522},"--shiki-default:#9ECBFF",[524],{"type":38,"value":525},"\"yourdomain.com\"",{"type":33,"tag":121,"props":527,"children":528},{"style":145},[529],{"type":38,"value":530}," \n",{"type":33,"tag":121,"props":532,"children":533},{"class":123,"line":151},[534,539,543,548,553,557],{"type":33,"tag":121,"props":535,"children":536},{"style":139},[537],{"type":38,"value":538},"  src",{"type":33,"tag":121,"props":540,"children":541},{"style":145},[542],{"type":38,"value":519},{"type":33,"tag":121,"props":544,"children":545},{"style":522},[546],{"type":38,"value":547},"\"\u002Fstats\u002Fjs\u002Fscript.js\"",{"type":33,"tag":121,"props":549,"children":550},{"style":145},[551],{"type":38,"value":552},">\u003C\u002F",{"type":33,"tag":121,"props":554,"children":555},{"style":501},[556],{"type":38,"value":504},{"type":33,"tag":121,"props":558,"children":559},{"style":145},[560],{"type":38,"value":561},">\n",{"type":33,"tag":34,"props":563,"children":564},{},[565,571,573,579,581,587],{"type":33,"tag":53,"props":566,"children":568},{"className":567},[],[569],{"type":38,"value":570},"\u002Fstats\u002Fjs\u002Fscript.js",{"type":38,"value":572}," también se sirve desde Nginx via proxy. En esta configuración, el tráfico de eventos va a ",{"type":33,"tag":53,"props":574,"children":576},{"className":575},[],[577],{"type":38,"value":578},"yourdomain.com\u002Fstats\u002Fapi\u002Fevent",{"type":38,"value":580}," y desde allí se reenvía al backend de Plausible. El efecto de bypass del bloqueador de anuncios reduce la pérdida de medición del 15-20% (según el reporte de Plausible de 2025). El punto clave: el proxy reverso ya anonimiza la IP antes de pasarla — la solicitud que llega al backend de Plausible tiene el último octeto como ",{"type":33,"tag":53,"props":582,"children":584},{"className":583},[],[585],{"type":38,"value":586},"0",{"type":38,"value":588},".",{"type":33,"tag":91,"props":590,"children":592},{"id":591},"plausible-autohospedado-control-total",[593],{"type":38,"value":594},"Plausible Autohospedado: Control Total",{"type":33,"tag":34,"props":596,"children":597},{},[598],{"type":38,"value":599},"Si ejecutas Plausible en tu propio servidor, los datos de eventos nunca se envían a un endpoint de terceros. Setup con Docker Compose:",{"type":33,"tag":111,"props":601,"children":605},{"className":602,"code":603,"language":604,"meta":16,"style":16},"language-yaml shiki shiki-themes github-dark","version: '3.8'\nservices:\n  plausible:\n    image: plausible\u002Fanalytics:v2.0\n    ports:\n      - \"8000:8000\"\n    environment:\n      BASE_URL: https:\u002F\u002Fanalytics.yourdomain.com\n      SECRET_KEY_BASE: ${SECRET}\n      DATABASE_URL: postgres:\u002F\u002Fplausible:password@db\u002Fplausible\n      CLICKHOUSE_DATABASE_URL: http:\u002F\u002Fclickhouse:8123\u002Fplausible\n    depends_on:\n      - db\n      - clickhouse\n  \n  db:\n    image: postgres:14-alpine\n    volumes:\n      - postgres-data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n  \n  clickhouse:\n    image: clickhouse\u002Fclickhouse-server:23.3-alpine\n    volumes:\n      - clickhouse-data:\u002Fvar\u002Flib\u002Fclickhouse\n","yaml",[606],{"type":33,"tag":53,"props":607,"children":608},{"__ignoreMap":16},[609,627,640,652,669,681,694,706,723,740,757,774,786,798,811,819,832,849,862,875,883,896,913,925],{"type":33,"tag":121,"props":610,"children":611},{"class":123,"line":124},[612,617,622],{"type":33,"tag":121,"props":613,"children":614},{"style":501},[615],{"type":38,"value":616},"version",{"type":33,"tag":121,"props":618,"children":619},{"style":145},[620],{"type":38,"value":621},": ",{"type":33,"tag":121,"props":623,"children":624},{"style":522},[625],{"type":38,"value":626},"'3.8'\n",{"type":33,"tag":121,"props":628,"children":629},{"class":123,"line":151},[630,635],{"type":33,"tag":121,"props":631,"children":632},{"style":501},[633],{"type":38,"value":634},"services",{"type":33,"tag":121,"props":636,"children":637},{"style":145},[638],{"type":38,"value":639},":\n",{"type":33,"tag":121,"props":641,"children":642},{"class":123,"line":170},[643,648],{"type":33,"tag":121,"props":644,"children":645},{"style":501},[646],{"type":38,"value":647},"  plausible",{"type":33,"tag":121,"props":649,"children":650},{"style":145},[651],{"type":38,"value":639},{"type":33,"tag":121,"props":653,"children":654},{"class":123,"line":188},[655,660,664],{"type":33,"tag":121,"props":656,"children":657},{"style":501},[658],{"type":38,"value":659},"    image",{"type":33,"tag":121,"props":661,"children":662},{"style":145},[663],{"type":38,"value":621},{"type":33,"tag":121,"props":665,"children":666},{"style":522},[667],{"type":38,"value":668},"plausible\u002Fanalytics:v2.0\n",{"type":33,"tag":121,"props":670,"children":671},{"class":123,"line":224},[672,677],{"type":33,"tag":121,"props":673,"children":674},{"style":501},[675],{"type":38,"value":676},"    ports",{"type":33,"tag":121,"props":678,"children":679},{"style":145},[680],{"type":38,"value":639},{"type":33,"tag":121,"props":682,"children":683},{"class":123,"line":255},[684,689],{"type":33,"tag":121,"props":685,"children":686},{"style":145},[687],{"type":38,"value":688},"      - ",{"type":33,"tag":121,"props":690,"children":691},{"style":522},[692],{"type":38,"value":693},"\"8000:8000\"\n",{"type":33,"tag":121,"props":695,"children":696},{"class":123,"line":273},[697,702],{"type":33,"tag":121,"props":698,"children":699},{"style":501},[700],{"type":38,"value":701},"    environment",{"type":33,"tag":121,"props":703,"children":704},{"style":145},[705],{"type":38,"value":639},{"type":33,"tag":121,"props":707,"children":708},{"class":123,"line":27},[709,714,718],{"type":33,"tag":121,"props":710,"children":711},{"style":501},[712],{"type":38,"value":713},"      BASE_URL",{"type":33,"tag":121,"props":715,"children":716},{"style":145},[717],{"type":38,"value":621},{"type":33,"tag":121,"props":719,"children":720},{"style":522},[721],{"type":38,"value":722},"https:\u002F\u002Fanalytics.yourdomain.com\n",{"type":33,"tag":121,"props":724,"children":725},{"class":123,"line":434},[726,731,735],{"type":33,"tag":121,"props":727,"children":728},{"style":501},[729],{"type":38,"value":730},"      SECRET_KEY_BASE",{"type":33,"tag":121,"props":732,"children":733},{"style":145},[734],{"type":38,"value":621},{"type":33,"tag":121,"props":736,"children":737},{"style":522},[738],{"type":38,"value":739},"${SECRET}\n",{"type":33,"tag":121,"props":741,"children":742},{"class":123,"line":443},[743,748,752],{"type":33,"tag":121,"props":744,"children":745},{"style":501},[746],{"type":38,"value":747},"      DATABASE_URL",{"type":33,"tag":121,"props":749,"children":750},{"style":145},[751],{"type":38,"value":621},{"type":33,"tag":121,"props":753,"children":754},{"style":522},[755],{"type":38,"value":756},"postgres:\u002F\u002Fplausible:password@db\u002Fplausible\n",{"type":33,"tag":121,"props":758,"children":759},{"class":123,"line":452},[760,765,769],{"type":33,"tag":121,"props":761,"children":762},{"style":501},[763],{"type":38,"value":764},"      CLICKHOUSE_DATABASE_URL",{"type":33,"tag":121,"props":766,"children":767},{"style":145},[768],{"type":38,"value":621},{"type":33,"tag":121,"props":770,"children":771},{"style":522},[772],{"type":38,"value":773},"http:\u002F\u002Fclickhouse:8123\u002Fplausible\n",{"type":33,"tag":121,"props":775,"children":776},{"class":123,"line":461},[777,782],{"type":33,"tag":121,"props":778,"children":779},{"style":501},[780],{"type":38,"value":781},"    depends_on",{"type":33,"tag":121,"props":783,"children":784},{"style":145},[785],{"type":38,"value":639},{"type":33,"tag":121,"props":787,"children":788},{"class":123,"line":470},[789,793],{"type":33,"tag":121,"props":790,"children":791},{"style":145},[792],{"type":38,"value":688},{"type":33,"tag":121,"props":794,"children":795},{"style":522},[796],{"type":38,"value":797},"db\n",{"type":33,"tag":121,"props":799,"children":801},{"class":123,"line":800},14,[802,806],{"type":33,"tag":121,"props":803,"children":804},{"style":145},[805],{"type":38,"value":688},{"type":33,"tag":121,"props":807,"children":808},{"style":522},[809],{"type":38,"value":810},"clickhouse\n",{"type":33,"tag":121,"props":812,"children":814},{"class":123,"line":813},15,[815],{"type":33,"tag":121,"props":816,"children":817},{"style":145},[818],{"type":38,"value":415},{"type":33,"tag":121,"props":820,"children":822},{"class":123,"line":821},16,[823,828],{"type":33,"tag":121,"props":824,"children":825},{"style":501},[826],{"type":38,"value":827},"  db",{"type":33,"tag":121,"props":829,"children":830},{"style":145},[831],{"type":38,"value":639},{"type":33,"tag":121,"props":833,"children":835},{"class":123,"line":834},17,[836,840,844],{"type":33,"tag":121,"props":837,"children":838},{"style":501},[839],{"type":38,"value":659},{"type":33,"tag":121,"props":841,"children":842},{"style":145},[843],{"type":38,"value":621},{"type":33,"tag":121,"props":845,"children":846},{"style":522},[847],{"type":38,"value":848},"postgres:14-alpine\n",{"type":33,"tag":121,"props":850,"children":852},{"class":123,"line":851},18,[853,858],{"type":33,"tag":121,"props":854,"children":855},{"style":501},[856],{"type":38,"value":857},"    volumes",{"type":33,"tag":121,"props":859,"children":860},{"style":145},[861],{"type":38,"value":639},{"type":33,"tag":121,"props":863,"children":865},{"class":123,"line":864},19,[866,870],{"type":33,"tag":121,"props":867,"children":868},{"style":145},[869],{"type":38,"value":688},{"type":33,"tag":121,"props":871,"children":872},{"style":522},[873],{"type":38,"value":874},"postgres-data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n",{"type":33,"tag":121,"props":876,"children":878},{"class":123,"line":877},20,[879],{"type":33,"tag":121,"props":880,"children":881},{"style":145},[882],{"type":38,"value":415},{"type":33,"tag":121,"props":884,"children":886},{"class":123,"line":885},21,[887,892],{"type":33,"tag":121,"props":888,"children":889},{"style":501},[890],{"type":38,"value":891},"  clickhouse",{"type":33,"tag":121,"props":893,"children":894},{"style":145},[895],{"type":38,"value":639},{"type":33,"tag":121,"props":897,"children":899},{"class":123,"line":898},22,[900,904,908],{"type":33,"tag":121,"props":901,"children":902},{"style":501},[903],{"type":38,"value":659},{"type":33,"tag":121,"props":905,"children":906},{"style":145},[907],{"type":38,"value":621},{"type":33,"tag":121,"props":909,"children":910},{"style":522},[911],{"type":38,"value":912},"clickhouse\u002Fclickhouse-server:23.3-alpine\n",{"type":33,"tag":121,"props":914,"children":916},{"class":123,"line":915},23,[917,921],{"type":33,"tag":121,"props":918,"children":919},{"style":501},[920],{"type":38,"value":857},{"type":33,"tag":121,"props":922,"children":923},{"style":145},[924],{"type":38,"value":639},{"type":33,"tag":121,"props":926,"children":928},{"class":123,"line":927},24,[929,933],{"type":33,"tag":121,"props":930,"children":931},{"style":145},[932],{"type":38,"value":688},{"type":33,"tag":121,"props":934,"children":935},{"style":522},[936],{"type":38,"value":937},"clickhouse-data:\u002Fvar\u002Flib\u002Fclickhouse\n",{"type":33,"tag":34,"props":939,"children":940},{},[941],{"type":38,"value":942},"En la instalación autohospedada, Plausible pasó de PostgreSQL a ClickHouse (desde v2.0). La velocidad de agregación de eventos se multiplicó por 10: con 1M de eventos\u002Fdía, la latencia de consulta es \u003C50 ms. En esta arquitectura, el hasheo de IP y la rotación de salt están completamente bajo tu control — puedes escribir en tu informe de cumplimiento KVKK \"los datos de eventos nunca salen de nuestros servidores\".",{"type":33,"tag":41,"props":944,"children":946},{"id":945},"comparación-con-ga4-tabla-de-trade-offs",[947],{"type":38,"value":948},"Comparación con GA4: Tabla de Trade-offs",{"type":33,"tag":950,"props":951,"children":952},"table",{},[953,977],{"type":33,"tag":954,"props":955,"children":956},"thead",{},[957],{"type":33,"tag":958,"props":959,"children":960},"tr",{},[961,967,972],{"type":33,"tag":962,"props":963,"children":964},"th",{},[965],{"type":38,"value":966},"Criterio",{"type":33,"tag":962,"props":968,"children":969},{},[970],{"type":38,"value":971},"Plausible",{"type":33,"tag":962,"props":973,"children":974},{},[975],{"type":38,"value":976},"GA4",{"type":33,"tag":978,"props":979,"children":980},"tbody",{},[981,1016,1044,1065,1086,1107,1128],{"type":33,"tag":958,"props":982,"children":983},{},[984,993,998],{"type":33,"tag":985,"props":986,"children":987},"td",{},[988],{"type":33,"tag":62,"props":989,"children":990},{},[991],{"type":38,"value":992},"Uso de cookies",{"type":33,"tag":985,"props":994,"children":995},{},[996],{"type":38,"value":997},"Ninguno",{"type":33,"tag":985,"props":999,"children":1000},{},[1001,1006,1008,1014],{"type":33,"tag":53,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":38,"value":79},{"type":38,"value":1007},", ",{"type":33,"tag":53,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":38,"value":1013},"_ga_*",{"type":38,"value":1015}," (2 años)",{"type":33,"tag":958,"props":1017,"children":1018},{},[1019,1027,1032],{"type":33,"tag":985,"props":1020,"children":1021},{},[1022],{"type":33,"tag":62,"props":1023,"children":1024},{},[1025],{"type":38,"value":1026},"Registro de IP",{"type":33,"tag":985,"props":1028,"children":1029},{},[1030],{"type":38,"value":1031},"Hash + TTL de 24h",{"type":33,"tag":985,"props":1033,"children":1034},{},[1035,1037,1042],{"type":38,"value":1036},"Redactado (con Consent Mode v2) pero en BigQuery export, ",{"type":33,"tag":53,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":38,"value":87},{"type":38,"value":1043}," = cookie ID",{"type":33,"tag":958,"props":1045,"children":1046},{},[1047,1055,1060],{"type":33,"tag":985,"props":1048,"children":1049},{},[1050],{"type":33,"tag":62,"props":1051,"children":1052},{},[1053],{"type":38,"value":1054},"Necesidad de consentimiento (RGPD)",{"type":33,"tag":985,"props":1056,"children":1057},{},[1058],{"type":38,"value":1059},"No (interés legítimo suficiente)",{"type":33,"tag":985,"props":1061,"children":1062},{},[1063],{"type":38,"value":1064},"Sí (opt-in explícito)",{"type":33,"tag":958,"props":1066,"children":1067},{},[1068,1076,1081],{"type":33,"tag":985,"props":1069,"children":1070},{},[1071],{"type":33,"tag":62,"props":1072,"children":1073},{},[1074],{"type":38,"value":1075},"Capacidad de atribución",{"type":33,"tag":985,"props":1077,"children":1078},{},[1079],{"type":38,"value":1080},"Ninguna — solo referrer + UTM",{"type":33,"tag":985,"props":1082,"children":1083},{},[1084],{"type":38,"value":1085},"Cross-domain, ruta de conversión, atribución impulsada por datos",{"type":33,"tag":958,"props":1087,"children":1088},{},[1089,1097,1102],{"type":33,"tag":985,"props":1090,"children":1091},{},[1092],{"type":33,"tag":62,"props":1093,"children":1094},{},[1095],{"type":38,"value":1096},"Rastreo de eventos personalizado",{"type":33,"tag":985,"props":1098,"children":1099},{},[1100],{"type":38,"value":1101},"Llamada manual a API (evento de objetivo)",{"type":33,"tag":985,"props":1103,"children":1104},{},[1105],{"type":38,"value":1106},"Automático + plan de medición",{"type":33,"tag":958,"props":1108,"children":1109},{},[1110,1118,1123],{"type":33,"tag":985,"props":1111,"children":1112},{},[1113],{"type":33,"tag":62,"props":1114,"children":1115},{},[1116],{"type":38,"value":1117},"Costo (10M hits\u002Fmes)",{"type":33,"tag":985,"props":1119,"children":1120},{},[1121],{"type":38,"value":1122},"Autohospedado: costo de servidor (~$50\u002Fmes), SaaS: $19\u002Fmes (plan Business)",{"type":33,"tag":985,"props":1124,"children":1125},{},[1126],{"type":38,"value":1127},"Gratuito pero BigQuery export requiere costo GCP (aprox. $5\u002FTB de consulta)",{"type":33,"tag":958,"props":1129,"children":1130},{},[1131,1139,1144],{"type":33,"tag":985,"props":1132,"children":1133},{},[1134],{"type":33,"tag":62,"props":1135,"children":1136},{},[1137],{"type":38,"value":1138},"Propietario de datos",{"type":33,"tag":985,"props":1140,"children":1141},{},[1142],{"type":38,"value":1143},"Tú (autohospedado) \u002F servidores EU (SaaS)",{"type":33,"tag":985,"props":1145,"children":1146},{},[1147],{"type":38,"value":1148},"Google (servidores US)",{"type":33,"tag":34,"props":1150,"children":1151},{},[1152,1154,1159,1161,1166],{"type":38,"value":1153},"Con Plausible, ",{"type":33,"tag":62,"props":1155,"children":1156},{},[1157],{"type":38,"value":1158},"no hay atribución",{"type":38,"value":1160}," — no puedes ver de qué campaña vino una conversión, solo \"esta página se vio X veces, Y visitantes únicos llegaron\". Si ejecutas modelos de mezcla de marketing o pruebas de incrementalidad, esos datos son suficientes: puedes correlacionar cambios en el tráfico agregado con ventas. Pero no puedes hacer análisis de viaje del usuario, cohort, ni funnel step-by-step. El poder de GA4 está en BigQuery export — uniendo por ",{"type":33,"tag":53,"props":1162,"children":1164},{"className":1163},[],[1165],{"type":38,"value":87},{"type":38,"value":1167}," puedes construir atribución multi-touch.",{"type":33,"tag":34,"props":1169,"children":1170},{},[1171,1173,1182],{"type":38,"value":1172},"El trade-off es claro: al reducir el riesgo de cumplimiento a cero, pierdes granularidad en insight. La solución: stack híbrido. Analytics del sitio con Plausible sin cookies, rastreo de conversiones mediante ",{"type":33,"tag":1174,"props":1175,"children":1179},"a",{"href":1176,"rel":1177},"https:\u002F\u002Fwww.roibase.com.tr\u002Fes\u002Ffirstparty",[1178],"nofollow",[1180],{"type":38,"value":1181},"arquitectura de datos first-party",{"type":38,"value":1183}," — sGTM + Conversion API. En Plausible ves las tendencias generales de tráfico; las métricas de decisión (ROAS, LTV, CAC) provienen del pipeline server-side.",{"type":33,"tag":41,"props":1185,"children":1187},{"id":1186},"pipeline-de-agregación-del-lado-del-servidor-plausible-dbt-bigquery",[1188],{"type":38,"value":1189},"Pipeline de Agregación del Lado del Servidor: Plausible + dbt + BigQuery",{"type":33,"tag":34,"props":1191,"children":1192},{},[1193],{"type":38,"value":1194},"Con Plausible autohospedado, tienes acceso directo a la base de datos ClickHouse. Escenario de replicar contadores de eventos a BigQuery para unirlos con datos de marketing:",{"type":33,"tag":1196,"props":1197,"children":1198},"ol",{},[1199,1218],{"type":33,"tag":1200,"props":1201,"children":1202},"li",{},[1203,1208,1210,1216],{"type":33,"tag":62,"props":1204,"children":1205},{},[1206],{"type":38,"value":1207},"ClickHouse → BigQuery CDC:",{"type":38,"value":1209}," Conector Airbyte con sincronización incremental diaria de la tabla ",{"type":33,"tag":53,"props":1211,"children":1213},{"className":1212},[],[1214],{"type":38,"value":1215},"plausible.events",{"type":38,"value":1217},". ClickHouse ya tiene el contador agregado; no hay evento raw.",{"type":33,"tag":1200,"props":1219,"children":1220},{},[1221,1226,1228,1234],{"type":33,"tag":62,"props":1222,"children":1223},{},[1224],{"type":38,"value":1225},"Modelo dbt:",{"type":38,"value":1227}," En BigQuery se construye la tabla ",{"type":33,"tag":53,"props":1229,"children":1231},{"className":1230},[],[1232],{"type":38,"value":1233},"fct_pageviews",{"type":38,"value":1235},":",{"type":33,"tag":111,"props":1237,"children":1239},{"className":113,"code":1238,"language":115,"meta":16,"style":16},"-- models\u002Ffct_pageviews.sql\nWITH plausible_raw AS (\n  SELECT\n    toDate(timestamp) AS date,\n    domain,\n    pathname,\n    referrer_source,\n    COUNT(*) AS pageviews,\n    uniqExact(visitor_hash) AS unique_visitors\n  FROM {{ source('plausible', 'events') }}\n  WHERE date >= CURRENT_DATE - 30\n  GROUP BY 1, 2, 3, 4\n),\n\nmarketing_spend AS (\n  SELECT\n    date,\n    channel,\n    SUM(spend) AS total_spend\n  FROM {{ ref('stg_marketing_spend') }}\n  GROUP BY 1, 2\n)\n\nSELECT\n  p.date,\n  p.domain,\n  p.pathname,\n  p.referrer_source,\n  p.pageviews,\n  p.unique_visitors,\n  m.total_spend,\n  SAFE_DIVIDE(p.unique_visitors, m.total_spend) AS visitors_per_dollar\nFROM plausible_raw p\nLEFT JOIN marketing_spend m\n  ON p.date = m.date\n  AND p.referrer_source = m.channel\n",[1240],{"type":33,"tag":53,"props":1241,"children":1242},{"__ignoreMap":16},[1243,1251,1273,1281,1312,1320,1328,1336,1366,1383,1415,1447,1487,1495,1504,1520,1527,1539,1547,1569,1590,1610,1618,1625,1633,1654,1675,1696,1717,1738,1759,1781,1832,1846,1860,1901],{"type":33,"tag":121,"props":1244,"children":1245},{"class":123,"line":124},[1246],{"type":33,"tag":121,"props":1247,"children":1248},{"style":218},[1249],{"type":38,"value":1250},"-- models\u002Ffct_pageviews.sql\n",{"type":33,"tag":121,"props":1252,"children":1253},{"class":123,"line":151},[1254,1259,1264,1269],{"type":33,"tag":121,"props":1255,"children":1256},{"style":128},[1257],{"type":38,"value":1258},"WITH",{"type":33,"tag":121,"props":1260,"children":1261},{"style":145},[1262],{"type":38,"value":1263}," plausible_raw ",{"type":33,"tag":121,"props":1265,"children":1266},{"style":128},[1267],{"type":38,"value":1268},"AS",{"type":33,"tag":121,"props":1270,"children":1271},{"style":145},[1272],{"type":38,"value":148},{"type":33,"tag":121,"props":1274,"children":1275},{"class":123,"line":170},[1276],{"type":33,"tag":121,"props":1277,"children":1278},{"style":128},[1279],{"type":38,"value":1280},"  SELECT\n",{"type":33,"tag":121,"props":1282,"children":1283},{"class":123,"line":188},[1284,1289,1294,1299,1303,1308],{"type":33,"tag":121,"props":1285,"children":1286},{"style":145},[1287],{"type":38,"value":1288},"    toDate(",{"type":33,"tag":121,"props":1290,"children":1291},{"style":128},[1292],{"type":38,"value":1293},"timestamp",{"type":33,"tag":121,"props":1295,"children":1296},{"style":145},[1297],{"type":38,"value":1298},") ",{"type":33,"tag":121,"props":1300,"children":1301},{"style":128},[1302],{"type":38,"value":1268},{"type":33,"tag":121,"props":1304,"children":1305},{"style":128},[1306],{"type":38,"value":1307}," date",{"type":33,"tag":121,"props":1309,"children":1310},{"style":145},[1311],{"type":38,"value":167},{"type":33,"tag":121,"props":1313,"children":1314},{"class":123,"line":224},[1315],{"type":33,"tag":121,"props":1316,"children":1317},{"style":145},[1318],{"type":38,"value":1319},"    domain,\n",{"type":33,"tag":121,"props":1321,"children":1322},{"class":123,"line":255},[1323],{"type":33,"tag":121,"props":1324,"children":1325},{"style":145},[1326],{"type":38,"value":1327},"    pathname,\n",{"type":33,"tag":121,"props":1329,"children":1330},{"class":123,"line":273},[1331],{"type":33,"tag":121,"props":1332,"children":1333},{"style":145},[1334],{"type":38,"value":1335},"    referrer_source,\n",{"type":33,"tag":121,"props":1337,"children":1338},{"class":123,"line":27},[1339,1344,1348,1353,1357,1361],{"type":33,"tag":121,"props":1340,"children":1341},{"style":207},[1342],{"type":38,"value":1343},"    COUNT",{"type":33,"tag":121,"props":1345,"children":1346},{"style":145},[1347],{"type":38,"value":204},{"type":33,"tag":121,"props":1349,"children":1350},{"style":128},[1351],{"type":38,"value":1352},"*",{"type":33,"tag":121,"props":1354,"children":1355},{"style":145},[1356],{"type":38,"value":1298},{"type":33,"tag":121,"props":1358,"children":1359},{"style":128},[1360],{"type":38,"value":1268},{"type":33,"tag":121,"props":1362,"children":1363},{"style":145},[1364],{"type":38,"value":1365}," pageviews,\n",{"type":33,"tag":121,"props":1367,"children":1368},{"class":123,"line":434},[1369,1374,1378],{"type":33,"tag":121,"props":1370,"children":1371},{"style":145},[1372],{"type":38,"value":1373},"    uniqExact(visitor_hash) ",{"type":33,"tag":121,"props":1375,"children":1376},{"style":128},[1377],{"type":38,"value":1268},{"type":33,"tag":121,"props":1379,"children":1380},{"style":145},[1381],{"type":38,"value":1382}," unique_visitors\n",{"type":33,"tag":121,"props":1384,"children":1385},{"class":123,"line":443},[1386,1391,1396,1401,1405,1410],{"type":33,"tag":121,"props":1387,"children":1388},{"style":128},[1389],{"type":38,"value":1390},"  FROM",{"type":33,"tag":121,"props":1392,"children":1393},{"style":145},[1394],{"type":38,"value":1395}," {{ source(",{"type":33,"tag":121,"props":1397,"children":1398},{"style":522},[1399],{"type":38,"value":1400},"'plausible'",{"type":33,"tag":121,"props":1402,"children":1403},{"style":145},[1404],{"type":38,"value":1007},{"type":33,"tag":121,"props":1406,"children":1407},{"style":522},[1408],{"type":38,"value":1409},"'events'",{"type":33,"tag":121,"props":1411,"children":1412},{"style":145},[1413],{"type":38,"value":1414},") }}\n",{"type":33,"tag":121,"props":1416,"children":1417},{"class":123,"line":452},[1418,1423,1427,1432,1437,1442],{"type":33,"tag":121,"props":1419,"children":1420},{"style":128},[1421],{"type":38,"value":1422},"  WHERE",{"type":33,"tag":121,"props":1424,"children":1425},{"style":128},[1426],{"type":38,"value":1307},{"type":33,"tag":121,"props":1428,"children":1429},{"style":128},[1430],{"type":38,"value":1431}," >=",{"type":33,"tag":121,"props":1433,"children":1434},{"style":145},[1435],{"type":38,"value":1436}," CURRENT_DATE ",{"type":33,"tag":121,"props":1438,"children":1439},{"style":128},[1440],{"type":38,"value":1441},"-",{"type":33,"tag":121,"props":1443,"children":1444},{"style":207},[1445],{"type":38,"value":1446}," 30\n",{"type":33,"tag":121,"props":1448,"children":1449},{"class":123,"line":461},[1450,1455,1460,1464,1469,1473,1478,1482],{"type":33,"tag":121,"props":1451,"children":1452},{"style":128},[1453],{"type":38,"value":1454},"  GROUP BY",{"type":33,"tag":121,"props":1456,"children":1457},{"style":207},[1458],{"type":38,"value":1459}," 1",{"type":33,"tag":121,"props":1461,"children":1462},{"style":145},[1463],{"type":38,"value":1007},{"type":33,"tag":121,"props":1465,"children":1466},{"style":207},[1467],{"type":38,"value":1468},"2",{"type":33,"tag":121,"props":1470,"children":1471},{"style":145},[1472],{"type":38,"value":1007},{"type":33,"tag":121,"props":1474,"children":1475},{"style":207},[1476],{"type":38,"value":1477},"3",{"type":33,"tag":121,"props":1479,"children":1480},{"style":145},[1481],{"type":38,"value":1007},{"type":33,"tag":121,"props":1483,"children":1484},{"style":207},[1485],{"type":38,"value":1486},"4\n",{"type":33,"tag":121,"props":1488,"children":1489},{"class":123,"line":470},[1490],{"type":33,"tag":121,"props":1491,"children":1492},{"style":145},[1493],{"type":38,"value":1494},"),\n",{"type":33,"tag":121,"props":1496,"children":1497},{"class":123,"line":800},[1498],{"type":33,"tag":121,"props":1499,"children":1501},{"emptyLinePlaceholder":1500},true,[1502],{"type":38,"value":1503},"\n",{"type":33,"tag":121,"props":1505,"children":1506},{"class":123,"line":813},[1507,1512,1516],{"type":33,"tag":121,"props":1508,"children":1509},{"style":145},[1510],{"type":38,"value":1511},"marketing_spend ",{"type":33,"tag":121,"props":1513,"children":1514},{"style":128},[1515],{"type":38,"value":1268},{"type":33,"tag":121,"props":1517,"children":1518},{"style":145},[1519],{"type":38,"value":148},{"type":33,"tag":121,"props":1521,"children":1522},{"class":123,"line":821},[1523],{"type":33,"tag":121,"props":1524,"children":1525},{"style":128},[1526],{"type":38,"value":1280},{"type":33,"tag":121,"props":1528,"children":1529},{"class":123,"line":834},[1530,1535],{"type":33,"tag":121,"props":1531,"children":1532},{"style":128},[1533],{"type":38,"value":1534},"    date",{"type":33,"tag":121,"props":1536,"children":1537},{"style":145},[1538],{"type":38,"value":167},{"type":33,"tag":121,"props":1540,"children":1541},{"class":123,"line":851},[1542],{"type":33,"tag":121,"props":1543,"children":1544},{"style":145},[1545],{"type":38,"value":1546},"    channel,\n",{"type":33,"tag":121,"props":1548,"children":1549},{"class":123,"line":864},[1550,1555,1560,1564],{"type":33,"tag":121,"props":1551,"children":1552},{"style":207},[1553],{"type":38,"value":1554},"    SUM",{"type":33,"tag":121,"props":1556,"children":1557},{"style":145},[1558],{"type":38,"value":1559},"(spend) ",{"type":33,"tag":121,"props":1561,"children":1562},{"style":128},[1563],{"type":38,"value":1268},{"type":33,"tag":121,"props":1565,"children":1566},{"style":145},[1567],{"type":38,"value":1568}," total_spend\n",{"type":33,"tag":121,"props":1570,"children":1571},{"class":123,"line":877},[1572,1576,1581,1586],{"type":33,"tag":121,"props":1573,"children":1574},{"style":128},[1575],{"type":38,"value":1390},{"type":33,"tag":121,"props":1577,"children":1578},{"style":145},[1579],{"type":38,"value":1580}," {{ ref(",{"type":33,"tag":121,"props":1582,"children":1583},{"style":522},[1584],{"type":38,"value":1585},"'stg_marketing_spend'",{"type":33,"tag":121,"props":1587,"children":1588},{"style":145},[1589],{"type":38,"value":1414},{"type":33,"tag":121,"props":1591,"children":1592},{"class":123,"line":885},[1593,1597,1601,1605],{"type":33,"tag":121,"props":1594,"children":1595},{"style":128},[1596],{"type":38,"value":1454},{"type":33,"tag":121,"props":1598,"children":1599},{"style":207},[1600],{"type":38,"value":1459},{"type":33,"tag":121,"props":1602,"children":1603},{"style":145},[1604],{"type":38,"value":1007},{"type":33,"tag":121,"props":1606,"children":1607},{"style":207},[1608],{"type":38,"value":1609},"2\n",{"type":33,"tag":121,"props":1611,"children":1612},{"class":123,"line":898},[1613],{"type":33,"tag":121,"props":1614,"children":1615},{"style":145},[1616],{"type":38,"value":1617},")\n",{"type":33,"tag":121,"props":1619,"children":1620},{"class":123,"line":915},[1621],{"type":33,"tag":121,"props":1622,"children":1623},{"emptyLinePlaceholder":1500},[1624],{"type":38,"value":1503},{"type":33,"tag":121,"props":1626,"children":1627},{"class":123,"line":927},[1628],{"type":33,"tag":121,"props":1629,"children":1630},{"style":128},[1631],{"type":38,"value":1632},"SELECT\n",{"type":33,"tag":121,"props":1634,"children":1636},{"class":123,"line":1635},25,[1637,1642,1646,1650],{"type":33,"tag":121,"props":1638,"children":1639},{"style":207},[1640],{"type":38,"value":1641},"  p",{"type":33,"tag":121,"props":1643,"children":1644},{"style":145},[1645],{"type":38,"value":588},{"type":33,"tag":121,"props":1647,"children":1648},{"style":207},[1649],{"type":38,"value":289},{"type":33,"tag":121,"props":1651,"children":1652},{"style":145},[1653],{"type":38,"value":167},{"type":33,"tag":121,"props":1655,"children":1657},{"class":123,"line":1656},26,[1658,1662,1666,1671],{"type":33,"tag":121,"props":1659,"children":1660},{"style":207},[1661],{"type":38,"value":1641},{"type":33,"tag":121,"props":1663,"children":1664},{"style":145},[1665],{"type":38,"value":588},{"type":33,"tag":121,"props":1667,"children":1668},{"style":207},[1669],{"type":38,"value":1670},"domain",{"type":33,"tag":121,"props":1672,"children":1673},{"style":145},[1674],{"type":38,"value":167},{"type":33,"tag":121,"props":1676,"children":1678},{"class":123,"line":1677},27,[1679,1683,1687,1692],{"type":33,"tag":121,"props":1680,"children":1681},{"style":207},[1682],{"type":38,"value":1641},{"type":33,"tag":121,"props":1684,"children":1685},{"style":145},[1686],{"type":38,"value":588},{"type":33,"tag":121,"props":1688,"children":1689},{"style":207},[1690],{"type":38,"value":1691},"pathname",{"type":33,"tag":121,"props":1693,"children":1694},{"style":145},[1695],{"type":38,"value":167},{"type":33,"tag":121,"props":1697,"children":1699},{"class":123,"line":1698},28,[1700,1704,1708,1713],{"type":33,"tag":121,"props":1701,"children":1702},{"style":207},[1703],{"type":38,"value":1641},{"type":33,"tag":121,"props":1705,"children":1706},{"style":145},[1707],{"type":38,"value":588},{"type":33,"tag":121,"props":1709,"children":1710},{"style":207},[1711],{"type":38,"value":1712},"referrer_source",{"type":33,"tag":121,"props":1714,"children":1715},{"style":145},[1716],{"type":38,"value":167},{"type":33,"tag":121,"props":1718,"children":1720},{"class":123,"line":1719},29,[1721,1725,1729,1734],{"type":33,"tag":121,"props":1722,"children":1723},{"style":207},[1724],{"type":38,"value":1641},{"type":33,"tag":121,"props":1726,"children":1727},{"style":145},[1728],{"type":38,"value":588},{"type":33,"tag":121,"props":1730,"children":1731},{"style":207},[1732],{"type":38,"value":1733},"pageviews",{"type":33,"tag":121,"props":1735,"children":1736},{"style":145},[1737],{"type":38,"value":167},{"type":33,"tag":121,"props":1739,"children":1741},{"class":123,"line":1740},30,[1742,1746,1750,1755],{"type":33,"tag":121,"props":1743,"children":1744},{"style":207},[1745],{"type":38,"value":1641},{"type":33,"tag":121,"props":1747,"children":1748},{"style":145},[1749],{"type":38,"value":588},{"type":33,"tag":121,"props":1751,"children":1752},{"style":207},[1753],{"type":38,"value":1754},"unique_visitors",{"type":33,"tag":121,"props":1756,"children":1757},{"style":145},[1758],{"type":38,"value":167},{"type":33,"tag":121,"props":1760,"children":1762},{"class":123,"line":1761},31,[1763,1768,1772,1777],{"type":33,"tag":121,"props":1764,"children":1765},{"style":207},[1766],{"type":38,"value":1767},"  m",{"type":33,"tag":121,"props":1769,"children":1770},{"style":145},[1771],{"type":38,"value":588},{"type":33,"tag":121,"props":1773,"children":1774},{"style":207},[1775],{"type":38,"value":1776},"total_spend",{"type":33,"tag":121,"props":1778,"children":1779},{"style":145},[1780],{"type":38,"value":167},{"type":33,"tag":121,"props":1782,"children":1784},{"class":123,"line":1783},32,[1785,1790,1794,1798,1802,1806,1811,1815,1819,1823,1827],{"type":33,"tag":121,"props":1786,"children":1787},{"style":145},[1788],{"type":38,"value":1789},"  SAFE_DIVIDE(",{"type":33,"tag":121,"props":1791,"children":1792},{"style":207},[1793],{"type":38,"value":34},{"type":33,"tag":121,"props":1795,"children":1796},{"style":145},[1797],{"type":38,"value":588},{"type":33,"tag":121,"props":1799,"children":1800},{"style":207},[1801],{"type":38,"value":1754},{"type":33,"tag":121,"props":1803,"children":1804},{"style":145},[1805],{"type":38,"value":1007},{"type":33,"tag":121,"props":1807,"children":1808},{"style":207},[1809],{"type":38,"value":1810},"m",{"type":33,"tag":121,"props":1812,"children":1813},{"style":145},[1814],{"type":38,"value":588},{"type":33,"tag":121,"props":1816,"children":1817},{"style":207},[1818],{"type":38,"value":1776},{"type":33,"tag":121,"props":1820,"children":1821},{"style":145},[1822],{"type":38,"value":1298},{"type":33,"tag":121,"props":1824,"children":1825},{"style":128},[1826],{"type":38,"value":1268},{"type":33,"tag":121,"props":1828,"children":1829},{"style":145},[1830],{"type":38,"value":1831}," visitors_per_dollar\n",{"type":33,"tag":121,"props":1833,"children":1835},{"class":123,"line":1834},33,[1836,1841],{"type":33,"tag":121,"props":1837,"children":1838},{"style":128},[1839],{"type":38,"value":1840},"FROM",{"type":33,"tag":121,"props":1842,"children":1843},{"style":145},[1844],{"type":38,"value":1845}," plausible_raw p\n",{"type":33,"tag":121,"props":1847,"children":1849},{"class":123,"line":1848},34,[1850,1855],{"type":33,"tag":121,"props":1851,"children":1852},{"style":128},[1853],{"type":38,"value":1854},"LEFT JOIN",{"type":33,"tag":121,"props":1856,"children":1857},{"style":145},[1858],{"type":38,"value":1859}," marketing_spend m\n",{"type":33,"tag":121,"props":1861,"children":1863},{"class":123,"line":1862},35,[1864,1869,1874,1878,1882,1887,1892,1896],{"type":33,"tag":121,"props":1865,"children":1866},{"style":128},[1867],{"type":38,"value":1868},"  ON",{"type":33,"tag":121,"props":1870,"children":1871},{"style":207},[1872],{"type":38,"value":1873}," p",{"type":33,"tag":121,"props":1875,"children":1876},{"style":145},[1877],{"type":38,"value":588},{"type":33,"tag":121,"props":1879,"children":1880},{"style":207},[1881],{"type":38,"value":289},{"type":33,"tag":121,"props":1883,"children":1884},{"style":128},[1885],{"type":38,"value":1886}," =",{"type":33,"tag":121,"props":1888,"children":1889},{"style":207},[1890],{"type":38,"value":1891}," m",{"type":33,"tag":121,"props":1893,"children":1894},{"style":145},[1895],{"type":38,"value":588},{"type":33,"tag":121,"props":1897,"children":1898},{"style":207},[1899],{"type":38,"value":1900},"date\n",{"type":33,"tag":121,"props":1902,"children":1904},{"class":123,"line":1903},36,[1905,1910,1914,1918,1922,1926,1930,1934],{"type":33,"tag":121,"props":1906,"children":1907},{"style":128},[1908],{"type":38,"value":1909},"  AND",{"type":33,"tag":121,"props":1911,"children":1912},{"style":207},[1913],{"type":38,"value":1873},{"type":33,"tag":121,"props":1915,"children":1916},{"style":145},[1917],{"type":38,"value":588},{"type":33,"tag":121,"props":1919,"children":1920},{"style":207},[1921],{"type":38,"value":1712},{"type":33,"tag":121,"props":1923,"children":1924},{"style":128},[1925],{"type":38,"value":1886},{"type":33,"tag":121,"props":1927,"children":1928},{"style":207},[1929],{"type":38,"value":1891},{"type":33,"tag":121,"props":1931,"children":1932},{"style":145},[1933],{"type":38,"value":588},{"type":33,"tag":121,"props":1935,"children":1936},{"style":207},[1937],{"type":38,"value":1938},"channel\n",{"type":33,"tag":34,"props":1940,"children":1941},{},[1942,1944,1950,1952,1957],{"type":38,"value":1943},"En este modelo, ",{"type":33,"tag":53,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":38,"value":1949},"visitor_hash",{"type":38,"value":1951}," no llega a BigQuery — el agregado de ClickHouse trae ",{"type":33,"tag":53,"props":1953,"children":1955},{"className":1954},[],[1956],{"type":38,"value":1754},{"type":38,"value":1958}," como un número. Es decir, incluso en el data warehouse no hay rastreo de usuarios individuales. Al unir con la tabla de gasto en marketing, ves \"gastamos X dólares en este canal, obtuvimos Y visitantes\". Para pruebas de incrementalidad, no puedes hacer randomización basada en cookies — en cambio usas split a nivel geo (campaña on\u002Foff por región) u holdout basado en tiempo.",{"type":33,"tag":91,"props":1960,"children":1962},{"id":1961},"dashboard-en-tiempo-real-métricas-agregadas",[1963],{"type":38,"value":1964},"Dashboard en Tiempo Real: Métricas Agregadas",{"type":33,"tag":34,"props":1966,"children":1967},{},[1968],{"type":38,"value":1969},"El dashboard de Plausible muestra contadores en tiempo real (pageviews en los últimos 30 minutos). Para un dashboard similar en BigQuery, usa Looker Studio + Materialized View de BigQuery:",{"type":33,"tag":111,"props":1971,"children":1973},{"className":113,"code":1972,"language":115,"meta":16,"style":16},"CREATE MATERIALIZED VIEW analytics.mv_realtime_traffic\nAS\nSELECT\n  FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', timestamp, 'Europe\u002FMadrid') AS time_bucket,\n  pathname,\n  COUNT(*) AS hits,\n  APPROX_COUNT_DISTINCT(visitor_hash) AS visitors\nFROM plausible.events\nWHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 MINUTE)\nGROUP BY 1, 2\n",[1974],{"type":33,"tag":53,"props":1975,"children":1976},{"__ignoreMap":16},[1977,2003,2011,2018,2061,2069,2098,2120,2141,2187],{"type":33,"tag":121,"props":1978,"children":1979},{"class":123,"line":124},[1980,1984,1989,1994,1998],{"type":33,"tag":121,"props":1981,"children":1982},{"style":128},[1983],{"type":38,"value":131},{"type":33,"tag":121,"props":1985,"children":1986},{"style":145},[1987],{"type":38,"value":1988}," MATERIALIZED VIEW ",{"type":33,"tag":121,"props":1990,"children":1991},{"style":207},[1992],{"type":38,"value":1993},"analytics",{"type":33,"tag":121,"props":1995,"children":1996},{"style":145},[1997],{"type":38,"value":588},{"type":33,"tag":121,"props":1999,"children":2000},{"style":207},[2001],{"type":38,"value":2002},"mv_realtime_traffic\n",{"type":33,"tag":121,"props":2004,"children":2005},{"class":123,"line":151},[2006],{"type":33,"tag":121,"props":2007,"children":2008},{"style":128},[2009],{"type":38,"value":2010},"AS\n",{"type":33,"tag":121,"props":2012,"children":2013},{"class":123,"line":170},[2014],{"type":33,"tag":121,"props":2015,"children":2016},{"style":128},[2017],{"type":38,"value":1632},{"type":33,"tag":121,"props":2019,"children":2020},{"class":123,"line":188},[2021,2026,2031,2035,2039,2043,2048,2052,2056],{"type":33,"tag":121,"props":2022,"children":2023},{"style":145},[2024],{"type":38,"value":2025},"  FORMAT_TIMESTAMP(",{"type":33,"tag":121,"props":2027,"children":2028},{"style":522},[2029],{"type":38,"value":2030},"'%Y-%m-%d %H:%M'",{"type":33,"tag":121,"props":2032,"children":2033},{"style":145},[2034],{"type":38,"value":1007},{"type":33,"tag":121,"props":2036,"children":2037},{"style":128},[2038],{"type":38,"value":1293},{"type":33,"tag":121,"props":2040,"children":2041},{"style":145},[2042],{"type":38,"value":1007},{"type":33,"tag":121,"props":2044,"children":2045},{"style":522},[2046],{"type":38,"value":2047},"'Europe\u002FMadrid'",{"type":33,"tag":121,"props":2049,"children":2050},{"style":145},[2051],{"type":38,"value":1298},{"type":33,"tag":121,"props":2053,"children":2054},{"style":128},[2055],{"type":38,"value":1268},{"type":33,"tag":121,"props":2057,"children":2058},{"style":145},[2059],{"type":38,"value":2060}," time_bucket,\n",{"type":33,"tag":121,"props":2062,"children":2063},{"class":123,"line":224},[2064],{"type":33,"tag":121,"props":2065,"children":2066},{"style":145},[2067],{"type":38,"value":2068},"  pathname,\n",{"type":33,"tag":121,"props":2070,"children":2071},{"class":123,"line":255},[2072,2077,2081,2085,2089,2093],{"type":33,"tag":121,"props":2073,"children":2074},{"style":207},[2075],{"type":38,"value":2076},"  COUNT",{"type":33,"tag":121,"props":2078,"children":2079},{"style":145},[2080],{"type":38,"value":204},{"type":33,"tag":121,"props":2082,"children":2083},{"style":128},[2084],{"type":38,"value":1352},{"type":33,"tag":121,"props":2086,"children":2087},{"style":145},[2088],{"type":38,"value":1298},{"type":33,"tag":121,"props":2090,"children":2091},{"style":128},[2092],{"type":38,"value":1268},{"type":33,"tag":121,"props":2094,"children":2095},{"style":145},[2096],{"type":38,"value":2097}," hits,\n",{"type":33,"tag":121,"props":2099,"children":2100},{"class":123,"line":273},[2101,2106,2111,2115],{"type":33,"tag":121,"props":2102,"children":2103},{"style":207},[2104],{"type":38,"value":2105},"  APPROX_COUNT_DISTINCT",{"type":33,"tag":121,"props":2107,"children":2108},{"style":145},[2109],{"type":38,"value":2110},"(visitor_hash) ",{"type":33,"tag":121,"props":2112,"children":2113},{"style":128},[2114],{"type":38,"value":1268},{"type":33,"tag":121,"props":2116,"children":2117},{"style":145},[2118],{"type":38,"value":2119}," visitors\n",{"type":33,"tag":121,"props":2121,"children":2122},{"class":123,"line":27},[2123,2127,2132,2136],{"type":33,"tag":121,"props":2124,"children":2125},{"style":128},[2126],{"type":38,"value":1840},{"type":33,"tag":121,"props":2128,"children":2129},{"style":207},[2130],{"type":38,"value":2131}," plausible",{"type":33,"tag":121,"props":2133,"children":2134},{"style":145},[2135],{"type":38,"value":588},{"type":33,"tag":121,"props":2137,"children":2138},{"style":207},[2139],{"type":38,"value":2140},"events\n",{"type":33,"tag":121,"props":2142,"children":2143},{"class":123,"line":434},[2144,2149,2154,2158,2163,2168,2173,2178,2183],{"type":33,"tag":121,"props":2145,"children":2146},{"style":128},[2147],{"type":38,"value":2148},"WHERE",{"type":33,"tag":121,"props":2150,"children":2151},{"style":128},[2152],{"type":38,"value":2153}," timestamp",{"type":33,"tag":121,"props":2155,"children":2156},{"style":128},[2157],{"type":38,"value":1431},{"type":33,"tag":121,"props":2159,"children":2160},{"style":145},[2161],{"type":38,"value":2162}," TIMESTAMP_SUB(",{"type":33,"tag":121,"props":2164,"children":2165},{"style":207},[2166],{"type":38,"value":2167},"CURRENT_TIMESTAMP",{"type":33,"tag":121,"props":2169,"children":2170},{"style":145},[2171],{"type":38,"value":2172},"(), INTERVAL ",{"type":33,"tag":121,"props":2174,"children":2175},{"style":207},[2176],{"type":38,"value":2177},"30",{"type":33,"tag":121,"props":2179,"children":2180},{"style":128},[2181],{"type":38,"value":2182}," MINUTE",{"type":33,"tag":121,"props":2184,"children":2185},{"style":145},[2186],{"type":38,"value":1617},{"type":33,"tag":121,"props":2188,"children":2189},{"class":123,"line":443},[2190,2195,2199,2203],{"type":33,"tag":121,"props":2191,"children":2192},{"style":128},[2193],{"type":38,"value":2194},"GROUP BY",{"type":33,"tag":121,"props":2196,"children":2197},{"style":207},[2198],{"type":38,"value":1459},{"type":33,"tag":121,"props":2200,"children":2201},{"style":145},[2202],{"type":38,"value":1007},{"type":33,"tag":121,"props":2204,"children":2205},{"style":207},[2206],{"type":38,"value":1609},{"type":33,"tag":34,"props":2208,"children":2209},{},[2210,2212,2218,2220,2226],{"type":38,"value":2211},"La materialización se refresca cada 5 minutos (límite de MV de BigQuery). En Looker Studio, gráfico de líneas: eje X ",{"type":33,"tag":53,"props":2213,"children":2215},{"className":2214},[],[2216],{"type":38,"value":2217},"time_bucket",{"type":38,"value":2219},", eje Y ",{"type":33,"tag":53,"props":2221,"children":2223},{"className":2222},[],[2224],{"type":38,"value":2225},"hits",{"type":38,"value":2227},". Este dashboard también carece de datos a nivel de usuario — solo contadores agregados.",{"type":33,"tag":41,"props":2229,"children":2231},{"id":2230},"documentación-de-cumplimiento-contrato-de-procesamiento-de-datos-kvkk",[2232],{"type":38,"value":2233},"Documentación de Cumplimiento: Contrato de Procesamiento de Datos KVKK",{"type":33,"tag":34,"props":2235,"children":2236},{},[2237],{"type":38,"value":2238},"Si usas Plausible SaaS, firmas un DPA (Data Processing Agreement). El template de Plausible de 2026 incluye:",{"type":33,"tag":2240,"props":2241,"children":2242},"ul",{},[2243,2253,2263,2273,2283],{"type":33,"tag":1200,"props":2244,"children":2245},{},[2246,2251],{"type":33,"tag":62,"props":2247,"children":2248},{},[2249],{"type":38,"value":2250},"Categoría de datos:",{"type":38,"value":2252}," \"Agregadas métricas de tráfico del sitio web (conteo de pageviews, conteo de referrers, distribución de tipo de dispositivo)\". Sin identificadores individuales.",{"type":33,"tag":1200,"props":2254,"children":2255},{},[2256,2261],{"type":33,"tag":62,"props":2257,"children":2258},{},[2259],{"type":38,"value":2260},"Propósito del procesamiento:",{"type":38,"value":2262}," \"Análisis de rendimiento del sitio web y atribución de fuente de tráfico\". No retargeting, profiling, o toma de decisiones automatizada.",{"type":33,"tag":1200,"props":2264,"children":2265},{},[2266,2271],{"type":33,"tag":62,"props":2267,"children":2268},{},[2269],{"type":38,"value":2270},"Subprocesador:",{"type":38,"value":2272}," ClickHouse Cloud (servidores EU), Hetzner (Alemania).",{"type":33,"tag":1200,"props":2274,"children":2275},{},[2276,2281],{"type":33,"tag":62,"props":2277,"children":2278},{},[2279],{"type":38,"value":2280},"Período de retención:",{"type":38,"value":2282}," 2 años (para visualización en dashboard), posterior eliminación automática.",{"type":33,"tag":1200,"props":2284,"children":2285},{},[2286,2291],{"type":33,"tag":62,"props":2287,"children":2288},{},[2289],{"type":38,"value":2290},"Derechos del interesado:",{"type":38,"value":2292}," Como los datos están agregados e imposibles de vincular a individuos, las solicitudes de eliminación\u002Fcorrección no aplican. Esto se especifica en el DPA: \"Due to aggregation at ingestion, data subject requests cannot be fulfilled on a per-individual basis.\"",{"type":33,"tag":34,"props":2294,"children":2295},{},[2296,2298,2303],{"type":38,"value":2297},"Para tu informe de cumplimiento KVKK, usar esta arquitectura de Plausible es una ventaja: le dices a la autoridad \"no almacenamos datos de usuarios, mantenemos contadores agregados\". Con GA4, ese argumento no funciona — el export a BigQuery contiene ",{"type":33,"tag":53,"props":2299,"children":2301},{"className":2300},[],[2302],{"type":38,"value":87},{"type":38,"value":2304},", lo cual cuenta como \"dato personal\".",{"type":33,"tag":34,"props":2306,"children":2307},{},[2308],{"type":38,"value":2309},"En instalación autohospedada, no firmas un DPA — eres el responsable del tratamiento. Pero según KVKK Artículo 10 debes implementar \"medidas técnicas y administrativas\": cifrado de base de datos (PostgreSQL TDE), logs de acceso (pg_audit), backup automatizado + PITR. El setup Docker de Plausible no incluye esto por defecto — tienes que añadirlo.",{"type":33,"tag":41,"props":2311,"children":2313},{"id":2312},"limitaciones-de-plausible-cuándo-no-es-suficiente",[2314],{"type":38,"value":2315},"Limitaciones de Plausible: Cuándo No Es Suficiente",{"type":33,"tag":34,"props":2317,"children":2318},{},[2319,2321,2326],{"type":38,"value":2320},"Plausible ",{"type":33,"tag":62,"props":2322,"children":2323},{},[2324],{"type":38,"value":2325},"no hace análisis de funnel",{"type":38,"value":2327},". No puedes ver \"página de producto → carrito → pago\" con drop-off paso a paso. Puedes enviar eventos personalizados (\"Add to Cart\" como evento de objetivo) y ver el recuento, pero",{"type":33,"tag":2329,"props":2330,"children":2331},"style",{},[2332],{"type":38,"value":2333},"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":170,"depth":170,"links":2335},[2336,2339,2342,2343,2346,2347],{"id":43,"depth":151,"text":46,"children":2337},[2338],{"id":93,"depth":170,"text":96},{"id":334,"depth":151,"text":337,"children":2340},[2341],{"id":591,"depth":170,"text":594},{"id":945,"depth":151,"text":948},{"id":1186,"depth":151,"text":1189,"children":2344},[2345],{"id":1961,"depth":170,"text":1964},{"id":2230,"depth":151,"text":2233},{"id":2312,"depth":151,"text":2315},"markdown","content:es:data:analytics-privacy-first-plausible-server-aggregation.md","content","es\u002Fdata\u002Fanalytics-privacy-first-plausible-server-aggregation.md","es\u002Fdata\u002Fanalytics-privacy-first-plausible-server-aggregation","md",1785967496843]