[{"data":1,"prerenderedAt":1730},["ShallowReactive",2],{"article-alternates":3,"article-\u002Ffr\u002Fdata\u002Fanalytics-privacy-first-plausible-aggregation":13},{"i18nKey":4,"paths":5},"data-006-2026-08",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side-aggregation","\u002Fen\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side","\u002Fes\u002Fdata\u002Fanalitica-privacy-first-plausible-agregacion-servidor","\u002Ffr\u002Fdata\u002Fanalytics-privacy-first-plausible-aggregation","\u002Fit\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side-aggregation","\u002Fru\u002Fdata\u002Fprivacy-first-analytics-plausible-server-side-aggregation","\u002Ftr\u002Fdata\u002Fprivacy-first-analytics-plausible-sunucu-tarafi-aggregation",{"_path":9,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":14,"i18nKey":4,"tags":20,"readingTime":26,"author":27,"body":28,"_type":1724,"_id":1725,"_source":1726,"_file":1727,"_stem":1728,"_extension":1729},"data",false,"","Analytics Respectueux de la Vie Privée : Plausible + Agrégation Côté Serveur","Suivi sans cookies, conformité RGPD et alternative à GA4. Comment garantir 100% de conformité avec Plausible et l'agrégation côté serveur ?","2026-08-11",[21,22,23,24,25],"analytics-privacy-first","plausible","suivi-sans-cookies","rgpd-conformite","agregation-cote-serveur",8,"Roibase",{"type":29,"children":30,"toc":1714},"root",[31,39,44,51,65,70,83,89,94,106,111,117,122,131,136,347,360,365,421,426,432,437,841,854,859,1318,1323,1329,1334,1339,1359,1365,1370,1375,1380,1386,1391,1510,1580,1601,1663,1692,1697,1703,1708],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","Les mises à jour du masquage IP et du mode de consentement de Google Analytics 4 montrent que votre stack analytique perd actuellement 30 à 40 % des données. En Europe, le taux de refus aux bannières TCF 2.2 dépasse 60 %, et en Amérique du Nord, les demandes de désinscription CCPA exposent les entreprises à des responsabilités juridiques réelles. Les pénalités de conformité aux données en 2026 ont atteint des seuils sans précédent. Analytics à la configuration par défaut, c'est révolu — vous devez choisir entre accepter les lacunes de données ou repenser votre architecture.",{"type":32,"tag":33,"props":40,"children":41},{},[42],{"type":37,"value":43},"L'analytics respectueux de la vie privée n'est plus une tactique de conformité, c'est une stratégie d'ingénierie. Des plateformes sans cookies comme Plausible proposent l'agrégation côté serveur : elles conservent le taux de couverture à 95 %+ tout en garantissant la conformité RGPD. Cet article explore l'architecture Plausible + agrégation côté serveur, la comparaison avec GA4, et les compromis à gérer en production.",{"type":32,"tag":45,"props":46,"children":48},"h2",{"id":47},"ce-que-signifie-réellement-le-suivi-sans-cookies",[49],{"type":37,"value":50},"Ce que Signifie Réellement le Suivi Sans Cookies",{"type":32,"tag":33,"props":52,"children":53},{},[54,56,63],{"type":37,"value":55},"« Sans cookies » est une étiquette trompeuse. La vraie question n'est pas « comment mesurer sans identifiants », mais « où stockez-vous l'identifiant et combien de temps il persiste ». GA4 repose sur le cookie côté client ",{"type":32,"tag":57,"props":58,"children":60},"code",{"className":59},[],[61],{"type":37,"value":62},"_ga",{"type":37,"value":64}," ; il vit 2 ans, transmis via des requêtes tierces. Plausible n'utilise aucun cookie — pour chaque session, il génère un hash temporaire dérivé d'une combinaison IP + chaîne User-Agent avec un salt, renouvelé après 24 heures.",{"type":32,"tag":33,"props":66,"children":67},{},[68],{"type":37,"value":69},"Cette approche a deux conséquences concrètes. Première : elle ne rentre pas dans la définition des données personnelles du RGPD (article 4) car le hash est irrécupérable et utilisé uniquement pour l'agrégation. Deuxième : elle entre dans la catégorie « strictement nécessaire » du RGPD, pas de consentement explicite requis. En Europe, cette distinction est critique — si votre finalité déclarée est « analyse du comportement utilisateur », le RGPD exige un consentement explicite ; Plausible contourne cette exigence.",{"type":32,"tag":33,"props":71,"children":72},{},[73,75,81],{"type":37,"value":74},"L'agrégation côté serveur, elle, collecte les données au niveau événement non pas chez le client, mais sur votre backend maîtrisé. Dans la version auto-hébergée de Plausible, chaque pageview est envoyé en POST à votre endpoint ",{"type":32,"tag":57,"props":76,"children":78},{"className":77},[],[79],{"type":37,"value":80},"\u002Fapi\u002Fevent",{"type":37,"value":82}," propre. Cet endpoint effectue le hachage IP + l'analyse de User-Agent, puis écrit en base de données uniquement les métriques agrégées (comptages de pageviews, sources de référence, type d'appareil). Aucun journal d'événements brut n'est conservé — ce qui satisfait le principe RGPD de minimisation des données (article 5.1.e).",{"type":32,"tag":45,"props":84,"children":86},{"id":85},"ga4-vs-plausible-différence-de-couverture-de-mesure",[87],{"type":37,"value":88},"GA4 vs Plausible : Différence de Couverture de Mesure",{"type":32,"tag":33,"props":90,"children":91},{},[92],{"type":37,"value":93},"Selon les rapports GA4 du Q4 2025, le taux de refus des bannières de consentement en Europe est de 58 %, l'acceptation 31 %, et 11 % ferment complètement la bannière. Avec le Consent Mode v2, Google fait de la modélisation prédictive, mais cette prédiction fonctionne uniquement sur les signaux de conversion — les métriques basées sur la session restent lacunaires. Sur un site de e-commerce, le tunnel « ajouter au panier → commande » souffre de 40 % de lacunes de données, les modèles d'attribution ne fonctionnent pas complètement.",{"type":32,"tag":33,"props":95,"children":96},{},[97,99,104],{"type":37,"value":98},"L'approche sans cookies de Plausible n'ayant pas besoin de consentement, elle affiche un taux de couverture de 95 %+. Un client SaaS allemand en début 2026 a exécuté GA4 et Plausible en parallèle : GA4 relevait 420 K visiteurs uniques, Plausible 710 K. La différence n'est pas seulement due au consentement — sur iOS Safari, ITP (Intelligent Tracking Prevention) réduit le cookie ",{"type":32,"tag":57,"props":100,"children":102},{"className":101},[],[103],{"type":37,"value":62},{"type":37,"value":105}," de GA4 à 7 jours, tandis que Plausible, basé sur des hash, est immunisé contre ITP.",{"type":32,"tag":33,"props":107,"children":108},{},[109],{"type":37,"value":110},"Le compromis est clair : Plausible n'offre pas d'analyse au niveau utilisateur. Vous ne pouvez pas voir « le même utilisateur a visité 5 pages sur 3 jours différents » car le hash se renouvelle toutes les 24 heures. Sur GA4, vous pouvez créer des segments d'exploration comme « utilisateurs arrivés par un premier clic en 7 jours et ayant converti » — Plausible ne le permet pas. Si votre stratégie marketing privilégie l'optimisation de contenu et les canaux de référence plutôt que les entonnoirs, ce compromis est acceptable.",{"type":32,"tag":45,"props":112,"children":114},{"id":113},"architecture-dagrégation-côté-serveur",[115],{"type":37,"value":116},"Architecture d'Agrégation Côté Serveur",{"type":32,"tag":33,"props":118,"children":119},{},[120],{"type":37,"value":121},"Pour utiliser Plausible en production, deux options : cloud managé (plausible.io) ou auto-hébergé. Si vous choisissez l'auto-hébergement, votre architecture ressemble à ceci :",{"type":32,"tag":123,"props":124,"children":126},"pre",{"code":125},"Client (navigateur)\n  └─> tracking.yourdomain.com\u002Fapi\u002Fevent  (proxy Nginx)\n       └─> Stack Docker Compose\n            ├─ App Plausible (Elixir\u002FPhoenix)\n            ├─ ClickHouse (DB d'agrégation événementielle)\n            └─ PostgreSQL (métadonnées + paramètres utilisateur)\n",[127],{"type":32,"tag":57,"props":128,"children":129},{"__ignoreMap":16},[130],{"type":37,"value":125},{"type":32,"tag":33,"props":132,"children":133},{},[134],{"type":37,"value":135},"ClickHouse est critique ici — base de données OLAP, orientée colonne, les requêtes d'agrégation sont 10 à 100x plus rapides. Plausible écrit chaque événement pageview dans ClickHouse selon ce schéma :",{"type":32,"tag":137,"props":138,"children":139},"table",{},[140,164],{"type":32,"tag":141,"props":142,"children":143},"thead",{},[144],{"type":32,"tag":145,"props":146,"children":147},"tr",{},[148,154,159],{"type":32,"tag":149,"props":150,"children":151},"th",{},[152],{"type":37,"value":153},"Colonne",{"type":32,"tag":149,"props":155,"children":156},{},[157],{"type":37,"value":158},"Type",{"type":32,"tag":149,"props":160,"children":161},{},[162],{"type":37,"value":163},"Exemple",{"type":32,"tag":165,"props":166,"children":167},"tbody",{},[168,191,213,242,263,284,305,326],{"type":32,"tag":145,"props":169,"children":170},{},[171,181,186],{"type":32,"tag":172,"props":173,"children":174},"td",{},[175],{"type":32,"tag":57,"props":176,"children":178},{"className":177},[],[179],{"type":37,"value":180},"timestamp",{"type":32,"tag":172,"props":182,"children":183},{},[184],{"type":37,"value":185},"DateTime",{"type":32,"tag":172,"props":187,"children":188},{},[189],{"type":37,"value":190},"2026-08-11 14:32:18",{"type":32,"tag":145,"props":192,"children":193},{},[194,203,208],{"type":32,"tag":172,"props":195,"children":196},{},[197],{"type":32,"tag":57,"props":198,"children":200},{"className":199},[],[201],{"type":37,"value":202},"site_id",{"type":32,"tag":172,"props":204,"children":205},{},[206],{"type":37,"value":207},"UInt32",{"type":32,"tag":172,"props":209,"children":210},{},[211],{"type":37,"value":212},"42",{"type":32,"tag":145,"props":214,"children":215},{},[216,225,230],{"type":32,"tag":172,"props":217,"children":218},{},[219],{"type":32,"tag":57,"props":220,"children":222},{"className":221},[],[223],{"type":37,"value":224},"hostname",{"type":32,"tag":172,"props":226,"children":227},{},[228],{"type":37,"value":229},"String",{"type":32,"tag":172,"props":231,"children":232},{},[233],{"type":32,"tag":234,"props":235,"children":239},"a",{"href":236,"rel":237},"http:\u002F\u002Fwww.example.com",[238],"nofollow",[240],{"type":37,"value":241},"www.example.com",{"type":32,"tag":145,"props":243,"children":244},{},[245,254,258],{"type":32,"tag":172,"props":246,"children":247},{},[248],{"type":32,"tag":57,"props":249,"children":251},{"className":250},[],[252],{"type":37,"value":253},"pathname",{"type":32,"tag":172,"props":255,"children":256},{},[257],{"type":37,"value":229},{"type":32,"tag":172,"props":259,"children":260},{},[261],{"type":37,"value":262},"\u002Fblog\u002Fanalytics-privacy",{"type":32,"tag":145,"props":264,"children":265},{},[266,275,279],{"type":32,"tag":172,"props":267,"children":268},{},[269],{"type":32,"tag":57,"props":270,"children":272},{"className":271},[],[273],{"type":37,"value":274},"referrer_source",{"type":32,"tag":172,"props":276,"children":277},{},[278],{"type":37,"value":229},{"type":32,"tag":172,"props":280,"children":281},{},[282],{"type":37,"value":283},"google",{"type":32,"tag":145,"props":285,"children":286},{},[287,296,300],{"type":32,"tag":172,"props":288,"children":289},{},[290],{"type":32,"tag":57,"props":291,"children":293},{"className":292},[],[294],{"type":37,"value":295},"country_code",{"type":32,"tag":172,"props":297,"children":298},{},[299],{"type":37,"value":229},{"type":32,"tag":172,"props":301,"children":302},{},[303],{"type":37,"value":304},"FR",{"type":32,"tag":145,"props":306,"children":307},{},[308,317,321],{"type":32,"tag":172,"props":309,"children":310},{},[311],{"type":32,"tag":57,"props":312,"children":314},{"className":313},[],[315],{"type":37,"value":316},"device",{"type":32,"tag":172,"props":318,"children":319},{},[320],{"type":37,"value":229},{"type":32,"tag":172,"props":322,"children":323},{},[324],{"type":37,"value":325},"Desktop",{"type":32,"tag":145,"props":327,"children":328},{},[329,338,342],{"type":32,"tag":172,"props":330,"children":331},{},[332],{"type":32,"tag":57,"props":333,"children":335},{"className":334},[],[336],{"type":37,"value":337},"browser",{"type":32,"tag":172,"props":339,"children":340},{},[341],{"type":37,"value":229},{"type":32,"tag":172,"props":343,"children":344},{},[345],{"type":37,"value":346},"Chrome",{"type":32,"tag":33,"props":348,"children":349},{},[350,352,358],{"type":37,"value":351},"Chaque ligne = 1 pageview. Aucun identifiant utilisateur — les métriques du tableau de bord se créent par agrégation ",{"type":32,"tag":57,"props":353,"children":355},{"className":354},[],[356],{"type":37,"value":357},"GROUP BY pathname, country_code",{"type":37,"value":359},". Les lignes sont auto-supprimées au bout de 90 jours (RGPD article 5.1.e : limitation du stockage). En auto-hébergement, vous fixez cette période de rétention.",{"type":32,"tag":33,"props":361,"children":362},{},[363],{"type":37,"value":364},"Pour l'anonymisation côté serveur des IP, activez ce module Nginx :",{"type":32,"tag":123,"props":366,"children":370},{"code":367,"language":368,"meta":16,"className":369,"style":16},"location \u002Fapi\u002Fevent {\n    proxy_pass http:\u002F\u002Fplausible:8000;\n    proxy_set_header X-Forwarded-For \"\";\n    proxy_set_header X-Real-IP \"0.0.0.0\";\n}\n","nginx","language-nginx shiki shiki-themes github-dark",[371],{"type":32,"tag":57,"props":372,"children":373},{"__ignoreMap":16},[374,385,394,403,412],{"type":32,"tag":375,"props":376,"children":379},"span",{"class":377,"line":378},"line",1,[380],{"type":32,"tag":375,"props":381,"children":382},{},[383],{"type":37,"value":384},"location \u002Fapi\u002Fevent {\n",{"type":32,"tag":375,"props":386,"children":388},{"class":377,"line":387},2,[389],{"type":32,"tag":375,"props":390,"children":391},{},[392],{"type":37,"value":393},"    proxy_pass http:\u002F\u002Fplausible:8000;\n",{"type":32,"tag":375,"props":395,"children":397},{"class":377,"line":396},3,[398],{"type":32,"tag":375,"props":399,"children":400},{},[401],{"type":37,"value":402},"    proxy_set_header X-Forwarded-For \"\";\n",{"type":32,"tag":375,"props":404,"children":406},{"class":377,"line":405},4,[407],{"type":32,"tag":375,"props":408,"children":409},{},[410],{"type":37,"value":411},"    proxy_set_header X-Real-IP \"0.0.0.0\";\n",{"type":32,"tag":375,"props":413,"children":415},{"class":377,"line":414},5,[416],{"type":32,"tag":375,"props":417,"children":418},{},[419],{"type":37,"value":420},"}\n",{"type":32,"tag":33,"props":422,"children":423},{},[424],{"type":37,"value":425},"Plausible ne voit jamais l'IP client — le hash se dérive uniquement de la chaîne User-Agent. Pour la conformité RGPD, cette configuration renforce l'argument « aucune donnée personnelle traitée ».",{"type":32,"tag":45,"props":427,"children":429},{"id":428},"intégration-avec-la-stack-de-données-propriétaires",[430],{"type":37,"value":431},"Intégration avec la Stack de Données Propriétaires",{"type":32,"tag":33,"props":433,"children":434},{},[435],{"type":37,"value":436},"Si vous voulez fusionner les métriques agrégées de Plausible dans votre propre data warehouse, vous devez extraire les données de ClickHouse. Plausible n'expose pas d'API (en version auto-hébergée), mais ClickHouse se connecte directement à BigQuery via JDBC :",{"type":32,"tag":123,"props":438,"children":442},{"code":439,"language":440,"meta":16,"className":441,"style":16},"-- Tableau de staging dans BigQuery\nCREATE TABLE `analytics.plausible_pageviews` (\n  event_date DATE,\n  pathname STRING,\n  pageviews INT64,\n  unique_visitors INT64,\n  bounce_rate FLOAT64\n);\n\n-- DAG Airflow : transfert quotidien ClickHouse → BigQuery\nINSERT INTO `analytics.plausible_pageviews`\nSELECT\n  DATE(timestamp) AS event_date,\n  pathname,\n  COUNT(*) AS pageviews,\n  COUNT(DISTINCT session_hash) AS unique_visitors,\n  COUNTIF(duration \u003C 5) \u002F COUNT(*) AS bounce_rate\nFROM clickhouse.events\nWHERE DATE(timestamp) = CURRENT_DATE() - 1\nGROUP BY 1, 2;\n","sql","language-sql shiki shiki-themes github-dark",[443],{"type":32,"tag":57,"props":444,"children":445},{"__ignoreMap":16},[446,455,481,499,507,515,524,533,541,551,560,574,583,616,625,657,688,742,766,812],{"type":32,"tag":375,"props":447,"children":448},{"class":377,"line":378},[449],{"type":32,"tag":375,"props":450,"children":452},{"style":451},"--shiki-default:#6A737D",[453],{"type":37,"value":454},"-- Tableau de staging dans BigQuery\n",{"type":32,"tag":375,"props":456,"children":457},{"class":377,"line":387},[458,464,469,475],{"type":32,"tag":375,"props":459,"children":461},{"style":460},"--shiki-default:#F97583",[462],{"type":37,"value":463},"CREATE",{"type":32,"tag":375,"props":465,"children":466},{"style":460},[467],{"type":37,"value":468}," TABLE",{"type":32,"tag":375,"props":470,"children":472},{"style":471},"--shiki-default:#9ECBFF",[473],{"type":37,"value":474}," `analytics.plausible_pageviews`",{"type":32,"tag":375,"props":476,"children":478},{"style":477},"--shiki-default:#E1E4E8",[479],{"type":37,"value":480}," (\n",{"type":32,"tag":375,"props":482,"children":483},{"class":377,"line":396},[484,489,494],{"type":32,"tag":375,"props":485,"children":486},{"style":477},[487],{"type":37,"value":488},"  event_date ",{"type":32,"tag":375,"props":490,"children":491},{"style":460},[492],{"type":37,"value":493},"DATE",{"type":32,"tag":375,"props":495,"children":496},{"style":477},[497],{"type":37,"value":498},",\n",{"type":32,"tag":375,"props":500,"children":501},{"class":377,"line":405},[502],{"type":32,"tag":375,"props":503,"children":504},{"style":477},[505],{"type":37,"value":506},"  pathname STRING,\n",{"type":32,"tag":375,"props":508,"children":509},{"class":377,"line":414},[510],{"type":32,"tag":375,"props":511,"children":512},{"style":477},[513],{"type":37,"value":514},"  pageviews INT64,\n",{"type":32,"tag":375,"props":516,"children":518},{"class":377,"line":517},6,[519],{"type":32,"tag":375,"props":520,"children":521},{"style":477},[522],{"type":37,"value":523},"  unique_visitors INT64,\n",{"type":32,"tag":375,"props":525,"children":527},{"class":377,"line":526},7,[528],{"type":32,"tag":375,"props":529,"children":530},{"style":477},[531],{"type":37,"value":532},"  bounce_rate FLOAT64\n",{"type":32,"tag":375,"props":534,"children":535},{"class":377,"line":26},[536],{"type":32,"tag":375,"props":537,"children":538},{"style":477},[539],{"type":37,"value":540},");\n",{"type":32,"tag":375,"props":542,"children":544},{"class":377,"line":543},9,[545],{"type":32,"tag":375,"props":546,"children":548},{"emptyLinePlaceholder":547},true,[549],{"type":37,"value":550},"\n",{"type":32,"tag":375,"props":552,"children":554},{"class":377,"line":553},10,[555],{"type":32,"tag":375,"props":556,"children":557},{"style":451},[558],{"type":37,"value":559},"-- DAG Airflow : transfert quotidien ClickHouse → BigQuery\n",{"type":32,"tag":375,"props":561,"children":563},{"class":377,"line":562},11,[564,569],{"type":32,"tag":375,"props":565,"children":566},{"style":460},[567],{"type":37,"value":568},"INSERT INTO",{"type":32,"tag":375,"props":570,"children":571},{"style":471},[572],{"type":37,"value":573}," `analytics.plausible_pageviews`\n",{"type":32,"tag":375,"props":575,"children":577},{"class":377,"line":576},12,[578],{"type":32,"tag":375,"props":579,"children":580},{"style":460},[581],{"type":37,"value":582},"SELECT\n",{"type":32,"tag":375,"props":584,"children":586},{"class":377,"line":585},13,[587,592,597,601,606,611],{"type":32,"tag":375,"props":588,"children":589},{"style":460},[590],{"type":37,"value":591},"  DATE",{"type":32,"tag":375,"props":593,"children":594},{"style":477},[595],{"type":37,"value":596},"(",{"type":32,"tag":375,"props":598,"children":599},{"style":460},[600],{"type":37,"value":180},{"type":32,"tag":375,"props":602,"children":603},{"style":477},[604],{"type":37,"value":605},") ",{"type":32,"tag":375,"props":607,"children":608},{"style":460},[609],{"type":37,"value":610},"AS",{"type":32,"tag":375,"props":612,"children":613},{"style":477},[614],{"type":37,"value":615}," event_date,\n",{"type":32,"tag":375,"props":617,"children":619},{"class":377,"line":618},14,[620],{"type":32,"tag":375,"props":621,"children":622},{"style":477},[623],{"type":37,"value":624},"  pathname,\n",{"type":32,"tag":375,"props":626,"children":628},{"class":377,"line":627},15,[629,635,639,644,648,652],{"type":32,"tag":375,"props":630,"children":632},{"style":631},"--shiki-default:#79B8FF",[633],{"type":37,"value":634},"  COUNT",{"type":32,"tag":375,"props":636,"children":637},{"style":477},[638],{"type":37,"value":596},{"type":32,"tag":375,"props":640,"children":641},{"style":460},[642],{"type":37,"value":643},"*",{"type":32,"tag":375,"props":645,"children":646},{"style":477},[647],{"type":37,"value":605},{"type":32,"tag":375,"props":649,"children":650},{"style":460},[651],{"type":37,"value":610},{"type":32,"tag":375,"props":653,"children":654},{"style":477},[655],{"type":37,"value":656}," pageviews,\n",{"type":32,"tag":375,"props":658,"children":660},{"class":377,"line":659},16,[661,665,669,674,679,683],{"type":32,"tag":375,"props":662,"children":663},{"style":631},[664],{"type":37,"value":634},{"type":32,"tag":375,"props":666,"children":667},{"style":477},[668],{"type":37,"value":596},{"type":32,"tag":375,"props":670,"children":671},{"style":460},[672],{"type":37,"value":673},"DISTINCT",{"type":32,"tag":375,"props":675,"children":676},{"style":477},[677],{"type":37,"value":678}," session_hash) ",{"type":32,"tag":375,"props":680,"children":681},{"style":460},[682],{"type":37,"value":610},{"type":32,"tag":375,"props":684,"children":685},{"style":477},[686],{"type":37,"value":687}," unique_visitors,\n",{"type":32,"tag":375,"props":689,"children":691},{"class":377,"line":690},17,[692,697,702,707,711,716,721,725,729,733,737],{"type":32,"tag":375,"props":693,"children":694},{"style":477},[695],{"type":37,"value":696},"  COUNTIF(duration ",{"type":32,"tag":375,"props":698,"children":699},{"style":460},[700],{"type":37,"value":701},"\u003C",{"type":32,"tag":375,"props":703,"children":704},{"style":631},[705],{"type":37,"value":706}," 5",{"type":32,"tag":375,"props":708,"children":709},{"style":477},[710],{"type":37,"value":605},{"type":32,"tag":375,"props":712,"children":713},{"style":460},[714],{"type":37,"value":715},"\u002F",{"type":32,"tag":375,"props":717,"children":718},{"style":631},[719],{"type":37,"value":720}," COUNT",{"type":32,"tag":375,"props":722,"children":723},{"style":477},[724],{"type":37,"value":596},{"type":32,"tag":375,"props":726,"children":727},{"style":460},[728],{"type":37,"value":643},{"type":32,"tag":375,"props":730,"children":731},{"style":477},[732],{"type":37,"value":605},{"type":32,"tag":375,"props":734,"children":735},{"style":460},[736],{"type":37,"value":610},{"type":32,"tag":375,"props":738,"children":739},{"style":477},[740],{"type":37,"value":741}," bounce_rate\n",{"type":32,"tag":375,"props":743,"children":745},{"class":377,"line":744},18,[746,751,756,761],{"type":32,"tag":375,"props":747,"children":748},{"style":460},[749],{"type":37,"value":750},"FROM",{"type":32,"tag":375,"props":752,"children":753},{"style":631},[754],{"type":37,"value":755}," clickhouse",{"type":32,"tag":375,"props":757,"children":758},{"style":477},[759],{"type":37,"value":760},".",{"type":32,"tag":375,"props":762,"children":763},{"style":631},[764],{"type":37,"value":765},"events\n",{"type":32,"tag":375,"props":767,"children":769},{"class":377,"line":768},19,[770,775,780,784,788,792,797,802,807],{"type":32,"tag":375,"props":771,"children":772},{"style":460},[773],{"type":37,"value":774},"WHERE",{"type":32,"tag":375,"props":776,"children":777},{"style":460},[778],{"type":37,"value":779}," DATE",{"type":32,"tag":375,"props":781,"children":782},{"style":477},[783],{"type":37,"value":596},{"type":32,"tag":375,"props":785,"children":786},{"style":460},[787],{"type":37,"value":180},{"type":32,"tag":375,"props":789,"children":790},{"style":477},[791],{"type":37,"value":605},{"type":32,"tag":375,"props":793,"children":794},{"style":460},[795],{"type":37,"value":796},"=",{"type":32,"tag":375,"props":798,"children":799},{"style":477},[800],{"type":37,"value":801}," CURRENT_DATE() ",{"type":32,"tag":375,"props":803,"children":804},{"style":460},[805],{"type":37,"value":806},"-",{"type":32,"tag":375,"props":808,"children":809},{"style":631},[810],{"type":37,"value":811}," 1\n",{"type":32,"tag":375,"props":813,"children":815},{"class":377,"line":814},20,[816,821,826,831,836],{"type":32,"tag":375,"props":817,"children":818},{"style":460},[819],{"type":37,"value":820},"GROUP BY",{"type":32,"tag":375,"props":822,"children":823},{"style":631},[824],{"type":37,"value":825}," 1",{"type":32,"tag":375,"props":827,"children":828},{"style":477},[829],{"type":37,"value":830},", ",{"type":32,"tag":375,"props":832,"children":833},{"style":631},[834],{"type":37,"value":835},"2",{"type":32,"tag":375,"props":837,"children":838},{"style":477},[839],{"type":37,"value":840},";\n",{"type":32,"tag":33,"props":842,"children":843},{},[844,846,852],{"type":37,"value":845},"À ce stade, comme dans l'architecture de données propriétaires que Roibase pratique, vous fusionnez les événements Plausible avec les signaux de conversion du GTM côté serveur. Dans BigQuery, un ",{"type":32,"tag":57,"props":847,"children":849},{"className":848},[],[850],{"type":37,"value":851},"JOIN",{"type":37,"value":853}," corrèle « article de blog le plus vu dans Plausible + soumission de formulaire depuis GTM » — une corrélation que GA4 perd à 40 % à cause des lacunes de consentement.",{"type":32,"tag":33,"props":855,"children":856},{},[857],{"type":37,"value":858},"Modèle dbt exemple :",{"type":32,"tag":123,"props":860,"children":862},{"code":861,"language":440,"meta":16,"className":441,"style":16},"-- models\u002Fanalytics\u002Fcontenu_conversion_entonnoir.sql\nWITH pageviews AS (\n  SELECT pathname, pageviews, unique_visitors\n  FROM {{ ref('plausible_pageviews') }}\n  WHERE event_date = CURRENT_DATE() - 1\n),\nconversions AS (\n  SELECT page_path, COUNT(*) AS form_submits\n  FROM {{ ref('gtm_form_events') }}\n  WHERE event_date = CURRENT_DATE() - 1\n  GROUP BY 1\n)\nSELECT\n  p.pathname,\n  p.pageviews,\n  COALESCE(c.form_submits, 0) AS conversions,\n  SAFE_DIVIDE(c.form_submits, p.unique_visitors) AS conversion_rate\nFROM pageviews p\nLEFT JOIN conversions c ON p.pathname = c.page_path\nORDER BY conversion_rate DESC;\n",[863],{"type":32,"tag":57,"props":864,"children":865},{"__ignoreMap":16},[866,874,895,908,931,960,968,984,1022,1042,1069,1081,1089,1096,1116,1136,1184,1234,1246,1296],{"type":32,"tag":375,"props":867,"children":868},{"class":377,"line":378},[869],{"type":32,"tag":375,"props":870,"children":871},{"style":451},[872],{"type":37,"value":873},"-- models\u002Fanalytics\u002Fcontenu_conversion_entonnoir.sql\n",{"type":32,"tag":375,"props":875,"children":876},{"class":377,"line":387},[877,882,887,891],{"type":32,"tag":375,"props":878,"children":879},{"style":460},[880],{"type":37,"value":881},"WITH",{"type":32,"tag":375,"props":883,"children":884},{"style":477},[885],{"type":37,"value":886}," pageviews ",{"type":32,"tag":375,"props":888,"children":889},{"style":460},[890],{"type":37,"value":610},{"type":32,"tag":375,"props":892,"children":893},{"style":477},[894],{"type":37,"value":480},{"type":32,"tag":375,"props":896,"children":897},{"class":377,"line":396},[898,903],{"type":32,"tag":375,"props":899,"children":900},{"style":460},[901],{"type":37,"value":902},"  SELECT",{"type":32,"tag":375,"props":904,"children":905},{"style":477},[906],{"type":37,"value":907}," pathname, pageviews, unique_visitors\n",{"type":32,"tag":375,"props":909,"children":910},{"class":377,"line":405},[911,916,921,926],{"type":32,"tag":375,"props":912,"children":913},{"style":460},[914],{"type":37,"value":915},"  FROM",{"type":32,"tag":375,"props":917,"children":918},{"style":477},[919],{"type":37,"value":920}," {{ ref(",{"type":32,"tag":375,"props":922,"children":923},{"style":471},[924],{"type":37,"value":925},"'plausible_pageviews'",{"type":32,"tag":375,"props":927,"children":928},{"style":477},[929],{"type":37,"value":930},") }}\n",{"type":32,"tag":375,"props":932,"children":933},{"class":377,"line":414},[934,939,944,948,952,956],{"type":32,"tag":375,"props":935,"children":936},{"style":460},[937],{"type":37,"value":938},"  WHERE",{"type":32,"tag":375,"props":940,"children":941},{"style":477},[942],{"type":37,"value":943}," event_date ",{"type":32,"tag":375,"props":945,"children":946},{"style":460},[947],{"type":37,"value":796},{"type":32,"tag":375,"props":949,"children":950},{"style":477},[951],{"type":37,"value":801},{"type":32,"tag":375,"props":953,"children":954},{"style":460},[955],{"type":37,"value":806},{"type":32,"tag":375,"props":957,"children":958},{"style":631},[959],{"type":37,"value":811},{"type":32,"tag":375,"props":961,"children":962},{"class":377,"line":517},[963],{"type":32,"tag":375,"props":964,"children":965},{"style":477},[966],{"type":37,"value":967},"),\n",{"type":32,"tag":375,"props":969,"children":970},{"class":377,"line":526},[971,976,980],{"type":32,"tag":375,"props":972,"children":973},{"style":477},[974],{"type":37,"value":975},"conversions ",{"type":32,"tag":375,"props":977,"children":978},{"style":460},[979],{"type":37,"value":610},{"type":32,"tag":375,"props":981,"children":982},{"style":477},[983],{"type":37,"value":480},{"type":32,"tag":375,"props":985,"children":986},{"class":377,"line":26},[987,991,996,1001,1005,1009,1013,1017],{"type":32,"tag":375,"props":988,"children":989},{"style":460},[990],{"type":37,"value":902},{"type":32,"tag":375,"props":992,"children":993},{"style":477},[994],{"type":37,"value":995}," page_path, ",{"type":32,"tag":375,"props":997,"children":998},{"style":631},[999],{"type":37,"value":1000},"COUNT",{"type":32,"tag":375,"props":1002,"children":1003},{"style":477},[1004],{"type":37,"value":596},{"type":32,"tag":375,"props":1006,"children":1007},{"style":460},[1008],{"type":37,"value":643},{"type":32,"tag":375,"props":1010,"children":1011},{"style":477},[1012],{"type":37,"value":605},{"type":32,"tag":375,"props":1014,"children":1015},{"style":460},[1016],{"type":37,"value":610},{"type":32,"tag":375,"props":1018,"children":1019},{"style":477},[1020],{"type":37,"value":1021}," form_submits\n",{"type":32,"tag":375,"props":1023,"children":1024},{"class":377,"line":543},[1025,1029,1033,1038],{"type":32,"tag":375,"props":1026,"children":1027},{"style":460},[1028],{"type":37,"value":915},{"type":32,"tag":375,"props":1030,"children":1031},{"style":477},[1032],{"type":37,"value":920},{"type":32,"tag":375,"props":1034,"children":1035},{"style":471},[1036],{"type":37,"value":1037},"'gtm_form_events'",{"type":32,"tag":375,"props":1039,"children":1040},{"style":477},[1041],{"type":37,"value":930},{"type":32,"tag":375,"props":1043,"children":1044},{"class":377,"line":553},[1045,1049,1053,1057,1061,1065],{"type":32,"tag":375,"props":1046,"children":1047},{"style":460},[1048],{"type":37,"value":938},{"type":32,"tag":375,"props":1050,"children":1051},{"style":477},[1052],{"type":37,"value":943},{"type":32,"tag":375,"props":1054,"children":1055},{"style":460},[1056],{"type":37,"value":796},{"type":32,"tag":375,"props":1058,"children":1059},{"style":477},[1060],{"type":37,"value":801},{"type":32,"tag":375,"props":1062,"children":1063},{"style":460},[1064],{"type":37,"value":806},{"type":32,"tag":375,"props":1066,"children":1067},{"style":631},[1068],{"type":37,"value":811},{"type":32,"tag":375,"props":1070,"children":1071},{"class":377,"line":562},[1072,1077],{"type":32,"tag":375,"props":1073,"children":1074},{"style":460},[1075],{"type":37,"value":1076},"  GROUP BY",{"type":32,"tag":375,"props":1078,"children":1079},{"style":631},[1080],{"type":37,"value":811},{"type":32,"tag":375,"props":1082,"children":1083},{"class":377,"line":576},[1084],{"type":32,"tag":375,"props":1085,"children":1086},{"style":477},[1087],{"type":37,"value":1088},")\n",{"type":32,"tag":375,"props":1090,"children":1091},{"class":377,"line":585},[1092],{"type":32,"tag":375,"props":1093,"children":1094},{"style":460},[1095],{"type":37,"value":582},{"type":32,"tag":375,"props":1097,"children":1098},{"class":377,"line":618},[1099,1104,1108,1112],{"type":32,"tag":375,"props":1100,"children":1101},{"style":631},[1102],{"type":37,"value":1103},"  p",{"type":32,"tag":375,"props":1105,"children":1106},{"style":477},[1107],{"type":37,"value":760},{"type":32,"tag":375,"props":1109,"children":1110},{"style":631},[1111],{"type":37,"value":253},{"type":32,"tag":375,"props":1113,"children":1114},{"style":477},[1115],{"type":37,"value":498},{"type":32,"tag":375,"props":1117,"children":1118},{"class":377,"line":627},[1119,1123,1127,1132],{"type":32,"tag":375,"props":1120,"children":1121},{"style":631},[1122],{"type":37,"value":1103},{"type":32,"tag":375,"props":1124,"children":1125},{"style":477},[1126],{"type":37,"value":760},{"type":32,"tag":375,"props":1128,"children":1129},{"style":631},[1130],{"type":37,"value":1131},"pageviews",{"type":32,"tag":375,"props":1133,"children":1134},{"style":477},[1135],{"type":37,"value":498},{"type":32,"tag":375,"props":1137,"children":1138},{"class":377,"line":659},[1139,1144,1148,1153,1157,1162,1166,1171,1175,1179],{"type":32,"tag":375,"props":1140,"children":1141},{"style":631},[1142],{"type":37,"value":1143},"  COALESCE",{"type":32,"tag":375,"props":1145,"children":1146},{"style":477},[1147],{"type":37,"value":596},{"type":32,"tag":375,"props":1149,"children":1150},{"style":631},[1151],{"type":37,"value":1152},"c",{"type":32,"tag":375,"props":1154,"children":1155},{"style":477},[1156],{"type":37,"value":760},{"type":32,"tag":375,"props":1158,"children":1159},{"style":631},[1160],{"type":37,"value":1161},"form_submits",{"type":32,"tag":375,"props":1163,"children":1164},{"style":477},[1165],{"type":37,"value":830},{"type":32,"tag":375,"props":1167,"children":1168},{"style":631},[1169],{"type":37,"value":1170},"0",{"type":32,"tag":375,"props":1172,"children":1173},{"style":477},[1174],{"type":37,"value":605},{"type":32,"tag":375,"props":1176,"children":1177},{"style":460},[1178],{"type":37,"value":610},{"type":32,"tag":375,"props":1180,"children":1181},{"style":477},[1182],{"type":37,"value":1183}," conversions,\n",{"type":32,"tag":375,"props":1185,"children":1186},{"class":377,"line":690},[1187,1192,1196,1200,1204,1208,1212,1216,1221,1225,1229],{"type":32,"tag":375,"props":1188,"children":1189},{"style":477},[1190],{"type":37,"value":1191},"  SAFE_DIVIDE(",{"type":32,"tag":375,"props":1193,"children":1194},{"style":631},[1195],{"type":37,"value":1152},{"type":32,"tag":375,"props":1197,"children":1198},{"style":477},[1199],{"type":37,"value":760},{"type":32,"tag":375,"props":1201,"children":1202},{"style":631},[1203],{"type":37,"value":1161},{"type":32,"tag":375,"props":1205,"children":1206},{"style":477},[1207],{"type":37,"value":830},{"type":32,"tag":375,"props":1209,"children":1210},{"style":631},[1211],{"type":37,"value":33},{"type":32,"tag":375,"props":1213,"children":1214},{"style":477},[1215],{"type":37,"value":760},{"type":32,"tag":375,"props":1217,"children":1218},{"style":631},[1219],{"type":37,"value":1220},"unique_visitors",{"type":32,"tag":375,"props":1222,"children":1223},{"style":477},[1224],{"type":37,"value":605},{"type":32,"tag":375,"props":1226,"children":1227},{"style":460},[1228],{"type":37,"value":610},{"type":32,"tag":375,"props":1230,"children":1231},{"style":477},[1232],{"type":37,"value":1233}," conversion_rate\n",{"type":32,"tag":375,"props":1235,"children":1236},{"class":377,"line":744},[1237,1241],{"type":32,"tag":375,"props":1238,"children":1239},{"style":460},[1240],{"type":37,"value":750},{"type":32,"tag":375,"props":1242,"children":1243},{"style":477},[1244],{"type":37,"value":1245}," pageviews p\n",{"type":32,"tag":375,"props":1247,"children":1248},{"class":377,"line":768},[1249,1254,1259,1264,1269,1273,1277,1282,1287,1291],{"type":32,"tag":375,"props":1250,"children":1251},{"style":460},[1252],{"type":37,"value":1253},"LEFT JOIN",{"type":32,"tag":375,"props":1255,"children":1256},{"style":477},[1257],{"type":37,"value":1258}," conversions c ",{"type":32,"tag":375,"props":1260,"children":1261},{"style":460},[1262],{"type":37,"value":1263},"ON",{"type":32,"tag":375,"props":1265,"children":1266},{"style":631},[1267],{"type":37,"value":1268}," p",{"type":32,"tag":375,"props":1270,"children":1271},{"style":477},[1272],{"type":37,"value":760},{"type":32,"tag":375,"props":1274,"children":1275},{"style":631},[1276],{"type":37,"value":253},{"type":32,"tag":375,"props":1278,"children":1279},{"style":460},[1280],{"type":37,"value":1281}," =",{"type":32,"tag":375,"props":1283,"children":1284},{"style":631},[1285],{"type":37,"value":1286}," c",{"type":32,"tag":375,"props":1288,"children":1289},{"style":477},[1290],{"type":37,"value":760},{"type":32,"tag":375,"props":1292,"children":1293},{"style":631},[1294],{"type":37,"value":1295},"page_path\n",{"type":32,"tag":375,"props":1297,"children":1298},{"class":377,"line":814},[1299,1304,1309,1314],{"type":32,"tag":375,"props":1300,"children":1301},{"style":460},[1302],{"type":37,"value":1303},"ORDER BY",{"type":32,"tag":375,"props":1305,"children":1306},{"style":477},[1307],{"type":37,"value":1308}," conversion_rate ",{"type":32,"tag":375,"props":1310,"children":1311},{"style":460},[1312],{"type":37,"value":1313},"DESC",{"type":32,"tag":375,"props":1315,"children":1316},{"style":477},[1317],{"type":37,"value":840},{"type":32,"tag":33,"props":1319,"children":1320},{},[1321],{"type":37,"value":1322},"Ce modèle produit un rapport « top 10 des pages avec le meilleur taux de conversion » de manière RGPD-conforme.",{"type":32,"tag":45,"props":1324,"children":1326},{"id":1325},"compromis-limites-dattribution-et-de-retargeting",[1327],{"type":37,"value":1328},"Compromis : Limites d'Attribution et de Retargeting",{"type":32,"tag":33,"props":1330,"children":1331},{},[1332],{"type":37,"value":1333},"Plausible étant privacy-first, il n'effectue pas de suivi cross-domaine. Si votre marketing est multi-canal (Meta Ads + Google Ads + newsletter) et vous voulez tracker un utilisateur pendant 30 jours, Plausible est insuffisant. Sur GA4, vous pourriez créer un segment d'exploration « même utilisateur arrivé via 3 campagnes différentes » avec User-ID — Plausible ne le permet pas.",{"type":32,"tag":33,"props":1335,"children":1336},{},[1337],{"type":37,"value":1338},"Les listes de retargeting ne sont pas non plus possibles. Sur GA4 Audience Builder, vous créez un segment « lecteurs de blog en 7 jours sans achat » et l'envoyez à Google Ads — ce flux n'existe pas dans Plausible. Solution : GTM côté serveur + Conversion API pour gérer vos listes d'audiences propriétaires dans votre CDP. Plausible reste limité à la couche d'analytics de contenu ; le retargeting utilise un pipeline de données distinct.",{"type":32,"tag":33,"props":1340,"children":1341},{},[1342,1344,1350,1352,1357],{"type":37,"value":1343},"Pour la mesure d'incrémentalité, Plausible suffit. Il s'intègre avec vos outils de test A\u002FB (Optimizely, VWO) car l'information de variante arrive en query string : ",{"type":32,"tag":57,"props":1345,"children":1347},{"className":1346},[],[1348],{"type":37,"value":1349},"\u002Fproduct?variant=B",{"type":37,"value":1351},". Plausible la voit dans ",{"type":32,"tag":57,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":37,"value":253},{"type":37,"value":1358}," et peut l'isoler en agrégation. Mais si le calcul de lift requiert des données au niveau utilisateur (ex. MMM bayésienne), la structure agrégée de Plausible limite les capacités.",{"type":32,"tag":45,"props":1360,"children":1362},{"id":1361},"scénarios-daudit-rgpd-et-de-conformité-française",[1363],{"type":37,"value":1364},"Scénarios d'Audit RGPD et de Conformité Française",{"type":32,"tag":33,"props":1366,"children":1367},{},[1368],{"type":37,"value":1369},"Le RGPD article 5 impose aux responsables du traitement de déclarer les données personnelles traitées et les finalités. Avec Plausible, la défense est simple : « Nous dérivons une valeur de hash à partir de l'IP et du User-Agent, cette valeur ne peut être inversée, elle se renouvelle toutes les 24 heures, seuls les comptages de pageviews agrégés sont conservés. » Lors d'un audit RGPD, cette explication relève de la catégorie « données anonymisées » (article 4.1 et considérant 26).",{"type":32,"tag":33,"props":1371,"children":1372},{},[1373],{"type":37,"value":1374},"Si une demande d'accès aux données personnelles (RGPD article 15) survient : Plausible n'identifie pas les utilisateurs, donc la réponse « aucune donnée personnelle vous concernant n'est stockée » tient. GA4 exigerait d'appeler l'API de suppression de données Google pour éliminer les ID Signals, Client ID et User-ID — un processus qui prend 60 jours. Plausible n'a aucun tel processus.",{"type":32,"tag":33,"props":1376,"children":1377},{},[1378],{"type":37,"value":1379},"Pour la conformité TCF 2.2 : le script de suivi Plausible relève de la catégorie « strictement nécessaire », aucune intégration CMP requise. GA4, lui, exige un consentement explicite (Purpose 1 : « accès et stockage d'informations ») — ce consentement est refusé par 58 % du trafic européen. Plausible supprime cette exigence.",{"type":32,"tag":45,"props":1381,"children":1383},{"id":1382},"checklist-de-déploiement-en-production",[1384],{"type":37,"value":1385},"Checklist de Déploiement en Production",{"type":32,"tag":33,"props":1387,"children":1388},{},[1389],{"type":37,"value":1390},"Si vous déployez Plausible auto-hébergé, suivez ces étapes :",{"type":32,"tag":1392,"props":1393,"children":1394},"ol",{},[1395,1415,1448,1482,1500],{"type":32,"tag":1396,"props":1397,"children":1398},"li",{},[1399,1405,1407,1413],{"type":32,"tag":1400,"props":1401,"children":1402},"strong",{},[1403],{"type":37,"value":1404},"Configuration DNS :",{"type":37,"value":1406}," créez un sous-domaine ",{"type":32,"tag":57,"props":1408,"children":1410},{"className":1409},[],[1411],{"type":37,"value":1412},"tracking.yourdomain.com",{"type":37,"value":1414},", certificat SSL (Let's Encrypt).",{"type":32,"tag":1396,"props":1416,"children":1417},{},[1418,1423,1425,1431,1433,1439,1441,1447],{"type":32,"tag":1400,"props":1419,"children":1420},{},[1421],{"type":37,"value":1422},"Docker Compose :",{"type":37,"value":1424}," récupérez ",{"type":32,"tag":57,"props":1426,"children":1428},{"className":1427},[],[1429],{"type":37,"value":1430},"docker-compose.yml",{"type":37,"value":1432}," du dépôt officiel Plausible, configurez ",{"type":32,"tag":57,"props":1434,"children":1436},{"className":1435},[],[1437],{"type":37,"value":1438},"SECRET_KEY_BASE",{"type":37,"value":1440}," et ",{"type":32,"tag":57,"props":1442,"children":1444},{"className":1443},[],[1445],{"type":37,"value":1446},"DATABASE_URL",{"type":37,"value":760},{"type":32,"tag":1396,"props":1449,"children":1450},{},[1451,1456,1458,1464,1466,1472,1474,1480],{"type":32,"tag":1400,"props":1452,"children":1453},{},[1454],{"type":37,"value":1455},"Tuning ClickHouse :",{"type":37,"value":1457}," dans ",{"type":32,"tag":57,"props":1459,"children":1461},{"className":1460},[],[1462],{"type":37,"value":1463},"\u002Fetc\u002Fclickhouse-server\u002Fconfig.xml",{"type":37,"value":1465},", fixez ",{"type":32,"tag":57,"props":1467,"children":1469},{"className":1468},[],[1470],{"type":37,"value":1471},"max_memory_usage",{"type":37,"value":1473}," à 60 % de la RAM serveur (ex. 32 GB RAM → ",{"type":32,"tag":57,"props":1475,"children":1477},{"className":1476},[],[1478],{"type":37,"value":1479},"19200000000",{"type":37,"value":1481},").",{"type":32,"tag":1396,"props":1483,"children":1484},{},[1485,1490,1492,1498],{"type":32,"tag":1400,"props":1486,"children":1487},{},[1488],{"type":37,"value":1489},"Proxy inverse Nginx :",{"type":37,"value":1491}," activez le rate limiting (",{"type":32,"tag":57,"props":1493,"children":1495},{"className":1494},[],[1496],{"type":37,"value":1497},"limit_req_zone $binary_remote_addr zone=tracking:10m rate=10r\u002Fs;",{"type":37,"value":1499},") — protection DDoS.",{"type":32,"tag":1396,"props":1501,"children":1502},{},[1503,1508],{"type":32,"tag":1400,"props":1504,"children":1505},{},[1506],{"type":37,"value":1507},"Script de suivi :",{"type":37,"value":1509}," injectez ce snippet dans le frontend :",{"type":32,"tag":123,"props":1511,"children":1515},{"code":1512,"language":1513,"meta":16,"className":1514,"style":16},"\u003Cscript defer data-domain=\"yourdomain.com\" src=\"https:\u002F\u002Ftracking.yourdomain.com\u002Fjs\u002Fscript.js\">\u003C\u002Fscript>\n","html","language-html shiki shiki-themes github-dark",[1516],{"type":32,"tag":57,"props":1517,"children":1518},{"__ignoreMap":16},[1519],{"type":32,"tag":375,"props":1520,"children":1521},{"class":377,"line":378},[1522,1526,1532,1538,1543,1547,1552,1557,1561,1566,1571,1575],{"type":32,"tag":375,"props":1523,"children":1524},{"style":477},[1525],{"type":37,"value":701},{"type":32,"tag":375,"props":1527,"children":1529},{"style":1528},"--shiki-default:#85E89D",[1530],{"type":37,"value":1531},"script",{"type":32,"tag":375,"props":1533,"children":1535},{"style":1534},"--shiki-default:#B392F0",[1536],{"type":37,"value":1537}," defer",{"type":32,"tag":375,"props":1539,"children":1540},{"style":1534},[1541],{"type":37,"value":1542}," data-domain",{"type":32,"tag":375,"props":1544,"children":1545},{"style":477},[1546],{"type":37,"value":796},{"type":32,"tag":375,"props":1548,"children":1549},{"style":471},[1550],{"type":37,"value":1551},"\"yourdomain.com\"",{"type":32,"tag":375,"props":1553,"children":1554},{"style":1534},[1555],{"type":37,"value":1556}," src",{"type":32,"tag":375,"props":1558,"children":1559},{"style":477},[1560],{"type":37,"value":796},{"type":32,"tag":375,"props":1562,"children":1563},{"style":471},[1564],{"type":37,"value":1565},"\"https:\u002F\u002Ftracking.yourdomain.com\u002Fjs\u002Fscript.js\"",{"type":32,"tag":375,"props":1567,"children":1568},{"style":477},[1569],{"type":37,"value":1570},">\u003C\u002F",{"type":32,"tag":375,"props":1572,"children":1573},{"style":1528},[1574],{"type":37,"value":1531},{"type":32,"tag":375,"props":1576,"children":1577},{"style":477},[1578],{"type":37,"value":1579},">\n",{"type":32,"tag":1392,"props":1581,"children":1582},{"start":517},[1583],{"type":32,"tag":1396,"props":1584,"children":1585},{},[1586,1591,1593,1599],{"type":32,"tag":1400,"props":1587,"children":1588},{},[1589],{"type":37,"value":1590},"Politique de rétention :",{"type":37,"value":1592}," configurez ",{"type":32,"tag":57,"props":1594,"children":1596},{"className":1595},[],[1597],{"type":37,"value":1598},"TTL",{"type":37,"value":1600}," dans ClickHouse (ex. suppression auto après 90 jours) :",{"type":32,"tag":123,"props":1602,"children":1604},{"code":1603,"language":440,"meta":16,"className":441,"style":16},"ALTER TABLE events MODIFY TTL timestamp + INTERVAL 90 DAY;\n",[1605],{"type":32,"tag":57,"props":1606,"children":1607},{"__ignoreMap":16},[1608],{"type":32,"tag":375,"props":1609,"children":1610},{"class":377,"line":378},[1611,1616,1620,1625,1630,1635,1639,1644,1649,1654,1659],{"type":32,"tag":375,"props":1612,"children":1613},{"style":460},[1614],{"type":37,"value":1615},"ALTER",{"type":32,"tag":375,"props":1617,"children":1618},{"style":460},[1619],{"type":37,"value":468},{"type":32,"tag":375,"props":1621,"children":1622},{"style":477},[1623],{"type":37,"value":1624}," events ",{"type":32,"tag":375,"props":1626,"children":1627},{"style":460},[1628],{"type":37,"value":1629},"MODIFY",{"type":32,"tag":375,"props":1631,"children":1632},{"style":477},[1633],{"type":37,"value":1634}," TTL ",{"type":32,"tag":375,"props":1636,"children":1637},{"style":460},[1638],{"type":37,"value":180},{"type":32,"tag":375,"props":1640,"children":1641},{"style":460},[1642],{"type":37,"value":1643}," +",{"type":32,"tag":375,"props":1645,"children":1646},{"style":477},[1647],{"type":37,"value":1648}," INTERVAL ",{"type":32,"tag":375,"props":1650,"children":1651},{"style":631},[1652],{"type":37,"value":1653},"90",{"type":32,"tag":375,"props":1655,"children":1656},{"style":460},[1657],{"type":37,"value":1658}," DAY",{"type":32,"tag":375,"props":1660,"children":1661},{"style":477},[1662],{"type":37,"value":840},{"type":32,"tag":1392,"props":1664,"children":1665},{"start":526},[1666],{"type":32,"tag":1396,"props":1667,"children":1668},{},[1669,1674,1676,1682,1684,1690],{"type":32,"tag":1400,"props":1670,"children":1671},{},[1672],{"type":37,"value":1673},"Sauvegarde :",{"type":37,"value":1675}," ",{"type":32,"tag":57,"props":1677,"children":1679},{"className":1678},[],[1680],{"type":37,"value":1681},"pg_dump",{"type":37,"value":1683}," quotidien pour PostgreSQL, outil ",{"type":32,"tag":57,"props":1685,"children":1687},{"className":1686},[],[1688],{"type":37,"value":1689},"clickhouse-backup",{"type":37,"value":1691}," pour ClickHouse.",{"type":32,"tag":33,"props":1693,"children":1694},{},[1695],{"type":37,"value":1696},"Pour 1 M pageviews\u002Fmois en production, infrastructure requise : 2 vCPU, 8 GB RAM, 50 GB SSD. Coût AWS ~80 $\u002Fmois, Hetzner ~30 $\u002Fmois. Le Plausible cloud managé demande 99 $\u002Fmois pour le même trafic — l'auto-hébergement coûte 70 % moins cher mais ajoute du travail DevOps.",{"type":32,"tag":45,"props":1698,"children":1700},{"id":1699},"plausible-sans-cookies-mais-est-ce-suffisant",[1701],{"type":37,"value":1702},"Plausible Sans Cookies, Mais Est-ce Suffisant ?",{"type":32,"tag":33,"props":1704,"children":1705},{},[1706],{"type":37,"value":1707},"La limite de l'analytics privacy-first est claire : sans analyse au niveau utilisateur, certaines questions marketing rest",{"type":32,"tag":1709,"props":1710,"children":1711},"style",{},[1712],{"type":37,"value":1713},"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":396,"depth":396,"links":1715},[1716,1717,1718,1719,1720,1721,1722,1723],{"id":47,"depth":387,"text":50},{"id":85,"depth":387,"text":88},{"id":113,"depth":387,"text":116},{"id":428,"depth":387,"text":431},{"id":1325,"depth":387,"text":1328},{"id":1361,"depth":387,"text":1364},{"id":1382,"depth":387,"text":1385},{"id":1699,"depth":387,"text":1702},"markdown","content:fr:data:analytics-privacy-first-plausible-aggregation.md","content","fr\u002Fdata\u002Fanalytics-privacy-first-plausible-aggregation.md","fr\u002Fdata\u002Fanalytics-privacy-first-plausible-aggregation","md",1786860291835]