MuninMunin
Log indKom gratis i gang
Home/Journal/Analyse der står ved siden af kundeposten.
Engineering · 10 min read

Analyse der står ved siden af kundeposten.

Plausible gemmer intet på enheden. Matomo sætter en cookie på 13 måneder som standard. PostHogs arkiv er MIT bortset fra `ee/`-mappen. Her er, hvad hver af dem faktisk gemmer og licenserer, aflæst fra deres egne sider — og hvordan du sætter analyse op, der kan fortælle dig, hvilken læser der blev kunde.

Straight down on a dark desk at night: a keyboard, loose paper, a used mug and crossed pens, with a cobalt blue lanyard and a completely blank white card laid out at the right.
Snoren ligger der. Kortet er blankt.

Et sted på din konto findes et dashboard med en linje, der peger opad. Det siger, at 4.180 mennesker kom sidste måned, og at de fleste af dem gik med det samme. Det kan ikke fortælle dig, hvem af dem der betaler dig nu, fordi dem, der betaler dig, bor i et andet system, bag et andet login, drevet af et andet firma. Tallet er ægte. Det hænger bare ikke sammen med noget.

Hvad gør et analyseværktøj privatlivsvenligt?

Tre ting, og alle tre kan tjekkes på cirka ti minutter. Det gemmer enten ingen vedvarende identifikator på den besøgendes enhed, eller også fortæller det dig præcis, hvad det gemmer. Det beholder ikke rå IP-adresser. Og data ligger et sted, du har valgt — din egen database, eller en skyregion du har peget på. Alt andet på en privatlivsside er reklametekst.

Grunden til at tjekke frem for at stole på er, at feltet virkelig adskiller sig på alle tre, og forskellene er ikke dem, markedsføringen antyder. Et af produkterne nedenfor gemmer slet ingenting i browseren. Et sætter en førsteparts cookie med tretten måneders levetid, medmindre du går ind og slår den fra. Et gemmer sine identifikatorer i en cookie og i local storage som standard. De beskrives alle som privatlivsvenlige, og de taler alle sandt om sig selv — udtrykket dækker bare ret meget jord.

Hvilke privatlivsvenlige analyseværktøjer er værd at se på i 2026?

Plausible, Matomo, Umami, PostHog og Fathom, og de er ikke udskiftelige. Plausible er strengest på lagring på enheden og hoster kun i EU. Matomo er det mest komplette og det eneste her med varmekort og sessionsoptagelse. Umami er den mindste MIT-mulighed. PostHog er en fuld produktanalysepakke med en million gratis hændelser om måneden. Fathom er kun hostet.

Priserne nedenfor blev aflæst fra hver leverandørs egen prisside den 17. august 2026 (Matomo tjekket igen den 4. september 2026) og er vejledende: hver eneste af dem har niveauer, kontakter og mængdebånd, som en tabel ikke kan bære.

  • Plausible AnalyticsPlausible CE er AGPL-3.0-eller-senere; JS-sporeren er MIT for sig. Deres datapolitik er den strengeste af de fem — »Vi bruger ikke cookies, browsercache eller local storage« — og besøgende tælles med en hash af et dagligt roterende salt plus IP, browserstreng og domæne, hvor saltet slettes hver 24. time, og rå IP-adresser aldrig gemmes. Skyen er kun EU, på servere i Tyskland. Starter er anført til 9 dollar om måneden for 10.000 sidevisninger om måneden.
  • MatomoGPL-3.0-eller-senere, den mest funktionskomplette mulighed her, og den eneste med varmekort, sessionsoptagelse og A/B-test. Standardsporingskoden sætter førsteparts cookies: _pk_id bærer et besøgende-id i 13 måneder. Drift uden cookies er en indstilling, du slår til, ikke standarden. IP-maskering er slået til som standard med to byte, hvilket Matomos egen dokumentation advarer om »ofte stadig er personoplysninger«. Skyen hostes i Frankfurt; Business er anført til 29 € om måneden eksklusive moms for 50.000 hits på Matomos prisside.
  • UmamiMIT, uden nogen separat licenseret mappe i arkivet. Sporingskoden sætter ingen cookies; den læser én umami.disabled-nøgle fra local storage og skriver aldrig en. Sessioner identificeres med en hash af IP-adresse, browserstreng og websteds-id. Skyen har et gratis Hobby-niveau på 100.000 hændelser om måneden og Pro til 20 dollar om måneden for en million ifølge Umamis prisside. Skyserverne står i USA og EU.
  • PostHogProduktanalyse, sessionsafspilning, funktionsflag og eksperimenter i ét produkt, med 1.000.000 hændelser om måneden gratis. Som standard gemmer JS-biblioteket sine identifikatorer både i en cookie og i local storage, og cookien udløber efter 365 dage; en cookiefri tilstand med serverhash findes og skal slås til. EU-organisationer har IP-opsamling slået fra som standard. Skyen er Virginia eller Frankfurt, valgt ved tilmelding.
  • Fathom AnalyticsKun hostet — kildekoden til det nuværende produkt er ikke offentliggjort, og det åbne Fathom Lite er MIT, men vedligeholdes frem for at blive udviklet. Den hostede sporer er cookiefri, og rå IP-adresser beholdes kun af sikkerhedshensyn og indgår aldrig i kundedata. EU-isolering fjerner IP-adressen inde i EU og gemmer derefter den anonyme række på amerikanske servere. Fra 15 dollar om måneden for 100.000 sidevisninger på tværs af 50 websteder ifølge Fathoms prisside.
  • Munin-analyseMIT hele vejen, uden ee/- eller extra/-mappe og uden separat licenseret undertræ. Sporeren sætter ingen cookies og skriver én tilfældig uuid til local storage. Klientens IP bruges til et landeopslag mod en database på din egen disk og gemmes aldrig. Hændelser lander i analytics_view_events i den samme Postgres som kontakterne, samtalerne og artiklerne. Cloud Free er 0 € om måneden; selvdrift har ingen mængdemåler.

Læs mappen, ikke mærket

To af disse arkiver bærer et licensmærke, der ikke dækker al koden i dem. PostHogs LICENSE i roden lægger alt uden for ee/ under MIT og alt inde i den under PostHog Enterprise License. Plausibles extra/-mappe holder Enterprise Edition, som Plausible siger, de ikke giver nogen rettigheder til at bruge eller distribuere — og den leveres uden sin egen licensfil. Begge firmaer dokumenterede opdelingen i deres egne udgivelsesnoter. Et mærke på ét ord kan ikke.

Hvordan sætter jeg privatlivsvenlig analyse op på mit eget websted?

To kald og én linje HTML. Opret en sporernøgle med analytics_create_tracker, og navngiv præcis hvilke oprindelser der må bruge den. Indsæt script-tagget i dit layout med den nøgle i data-key. Pakken sender én sidevisning ved indlæsning og beriger senere den samme række med opholdstid og rulledybde. Der er intet andet at konfigurere og intet SPA-flag at sætte.

Nøglen er offentlig ved design. Den peger på én organisation og kan kun skrive visningshændelser — den kan aldrig læse dem — så at sende den i din sidekilde er den tilsigtede adfærd, på samme måde som et måle-id er det.

jsoncopret nøglen, indsæt tagget
{
  "name": "analytics_create_tracker",
  "arguments": {
    "name": "example.com marketingsite",
    "allowedOrigins": ["https://example.com", "http://localhost:3000"]
  }
}

// → { "trackerId": "atr_…", "trackerKey": "mn_track_…" }   vises én gang

// dernæst, i dit layout:
// <script async
//   src="https://api.getmunin.com/tracker.js"
//   data-key="mn_track_…">
// </script>
  • 01Én sporer per websted, ikke én per organisation. Hver række registrerer den sporer, der skrev den, så separate nøgler er det, der lader dig spørge, hvordan dokumentationssiden går, frem for kun hvordan alt går. At dele en nøgle slår to websteder sammen permanent — tidligere rækker beholder den sporer, de blev skrevet med.
  • 02allowedOrigins er påkrævet og præcist. Skema, vært og port, ingen jokertegn, ingen stipræfikser. Anfør produktion, staging og localhost hver for sig. Origin-headeren sættes af browseren og kan forfalskes, så behandl dette som hygiejne frem for som en sikkerhedsgrænse; rotation og hastighedsbegrænsning per IP er de reelle forsvar.
  • 03Landeopløsning er valgfri og lokal. Sæt MUNIN_GEOIP_DB_PATH til en landedatabase i MaxMind-format på din egen disk. Læseren hukommelseskortlægger den én gang ved opstart, så der er intet netværkskald per forespørgsel til nogen. Lad den være usat, og kolonnen forbliver tom.
  • 04Fold sprogpræfikser sammen, som du ikke kan udlede. /en/pricing på en side der angiver lang="en-US" foldes automatisk til /pricing. Et præfiks, der er uenigt med tagget — /no/priserlang="nb-NO" — skal navngives én gang med analytics_update_tracker({ canonicalLocales: ["no"] }), og det gælder fra næste hændelse uden ny udrulning.
  • 05Rotation er tilbagekaldelse plus oprettelse. analytics_revoke_tracker giver 401 på den gamle nøgle med det samme; analytics_list_trackers giver dig id, navn, præfiks, sidst brugt og tilbagekaldt-tidspunkt til revisionen. Vil du stoppe sporing på én side, så slet script-tagget fra den — pakken er et tilvalg per sideindlæsning.

Hvad lægger sporeren i en besøgendes browser?

Én nøgle i local storage, der holder en tilfældig uuid. Ingen cookies, og intet andet. Uuid'en er det, der gør, at en læser, der vender tilbage, tælles som den samme læser frem for som to, og den bærer hverken navn, e-mail eller IP-adresse. Plausible er det strengeste svar i dette felt på præcis det punkt — det gemmer slet intet på enheden — så er en sporer med nul lagring et hårdt krav, er det den, du skal købe.

Det, uuid'en køber dig, er en sletteforklaring, du faktisk kan udføre. Identifikatoren er en tilfældig værdi i en tabel i din egen Postgres, så »slet alt om denne besøgende« er DELETE FROM analytics_view_events WHERE visitor_id = $1, og dermed er det færdigt — ingen supportsag, intet 30-dages vindue, ingen indsigtsanmodning dirigeret gennem en databehandler i en anden jurisdiktion.

Resten af rækken er bevidst tynd. Klientens IP læses én gang, på forespørgselstidspunktet, for at slå et land op mod en databasefil, der ligger på din egen disk, og skrives aldrig ned. dwell_ms tæller kun den tid, siden faktisk var synlig. read_depth er én af fire rullemilepæle. Der er intet fingeraftryk, ingen identifikator på tværs af websteder, og intet, der overlever, at den besøgende rydder webstedsdata. Og fordi sporeren er et script-tag frem for en platformsintegration, er enheden for fravalg en side: fjern tagget, og den side holder op med at rapportere.

Testen

Hvis en læser skrev til dig i dag og spurgte, hvad du har om dem, kunne du så svare fra din egen database — eller skulle du spørge en leverandør?

Har jeg stadig brug for et cookiebanner?

Det er et spørgsmål til din advokat frem for til en leverandørs forside, og det ærlige svar er, at det afhænger af, hvor du er. ePrivacy artikel 5(3) regulerer »lagring af oplysninger eller adgang til oplysninger, der allerede er lagret, i en abonnents eller brugers terminaludstyr«. Den nævner aldrig cookies, og EDPB's retningslinjer 2/2023 navngiver local storage udtrykkeligt som omfattet.

Så spørgsmålet om anvendelsesområde er afgjort, og spørgsmålet om samtykke er det ikke. EDPB siger det direkte: retningslinjerne dækker, hvad artikel 5(3) gælder for, og henviser undtagelserne til »relevante nationale gennemførelser og vejledning fra nationale kompetente myndigheder«. De gennemførelser er ikke enslydende. Frankrigs CNIL behandler sporere, hvis formål er begrænset til publikumsmåling, som strengt nødvendige — betinget af udelukkende førstepartsbrug, ingen sporing på tværs af websteder og ingen videregivelse til tredjeparter. Tysklands DSK afstår fra at velsigne en generel undtagelse. Storbritannien fik en lovfæstet undtagelse til statistiske formål gennem Data (Use and Access) Act 2025, betinget af klar information og en gratis, enkel måde at gøre indsigelse på frem for af samtykke.

To praktiske konsekvenser. Er din regel ingen lagring på enheden, nogensinde, så er Plausible og Fathoms hostede sporer bygget til den regel, og det er en god grund til at vælge en af dem. Og uanset hvad du vælger, er den nyttige egenskab, at du kan beskrive det præcist: én nøgle i local storage, én tilfældig uuid, ingen cookies, ingen gemt IP, et land udledt af en fil, du installerede, og en slettevej på én linje. Det er svaret, en databeskyttelsesrådgiver kan arbejde med, og det er den samme tænkning, vi anvendte på hvad EU-dataopbevaring faktisk dækker. Intet af dette er juridisk rådgivning — det er det sæt fakta, din advokat vil bede dig om.

Ethvert analyseværktøj kan fortælle dig, at en side blev læst 4.180 gange. Spørgsmålet, der er værd at betale for, er hvilken af de læsninger der blev en kunde.

Hvad kan du spørge om, når analysen står ved siden af kundeposten?

Spørgsmål, der normalt kræver to systemer og en join, ingen skrev. Hvilke artikler et navngivet lead læste, før de bookede et møde. Hvilke søgninger der kom tomme tilbage sidste måned. Hvor frafaldet ligger mellem prissiden og det andet onboardingtrin, talt som en ordnet sekvens frem for som tre urelaterede totaler. Det er ét værktøjskald hver, fordi hændelserne og kontakterne er rækker i den samme database.

analytics_get_contact_journey er den, der ændrer, hvordan en uge føles: sidevisninger, søgninger og samtaler for én kontakt, i rækkefølge. Den virker, fordi window.mn.identify forbinder en anonym besøgende med en kendt slutbruger, når — og kun når — du beslutter det, og analytics_get_funnel grupperer derefter på den identificerede person, så overgangen fra anonym til identificeret ikke tælles to gange. Det er hele argumentet bag at spørge, hvilken artikel der lukkede aftalen, gjort konkret.

Den anden vane er mindre og betaler sig hurtigere. analytics_list_zero_result_searches returnerer de søgninger, der kom tomme tilbage — læsere, der fortæller dig med deres egne ord, hvad du endnu ikke har skrevet. Ret din webstedssøgning mod den med window.mn.trackSearch, og listen holder op med at handle om Munins egen søgning og begynder at handle om hele dit websted.

jsoncto spørgsmål, to kald
// Hvad læste dette lead, før de bookede?
{
  "name": "analytics_get_contact_journey",
  "arguments": { "contactId": "cct_…", "sinceDays": 90 }
}

// Hvor falder folk fra mellem pris og onboarding?
{
  "name": "analytics_get_funnel",
  "arguments": {
    "steps": [
      { "subjectType": "page", "subjectId": "/pricing" },
      { "subjectType": "page", "subjectId": "/signup" },
      { "pathLike": "/onboarding/%" }
    ],
    "sinceDays": 30,
    "stepWindowHours": 24
  }
}

Hvilken skal du vælge?

Vælg Plausible, hvis kravet er intet gemt på enheden og intet hostet uden for EU, og trafiktal er alt, du har brug for. Det er det reneste udtryk for den position, nogen leverer, og deres datapolitik er værd at læse, selv om du køber noget andet.

Vælg Matomo, hvis du vil have varmekort, sessionsoptagelse, A/B-test eller et årti med e-handelsrapportering. Tjek udvidelsessiden først: flere af dem bor i separate, uoffentliggjorte udvidelser under InnoCrafts EULA frem for i GPL-kernen, hvilket er en rimelig forretningsmodel og noget at vide, før du planlægger rundt om det.

Vælg PostHog, hvis du instrumenterer et produkt frem for et websted. En million hændelser om måneden gratis med afspilning og funktionsflag er et genuint stærkt tilbud, og MIT-kernen er reel — ee/-mappen er den del, der ikke er.

Vælg Umami, hvis du vil have den mindste MIT-ting, der virker, og du selv vil køre den.

Der er ingen sessionsafspilning, ingen varmekort og ingen A/B-test i Munins analysemodul. Vælg Munin, når det spørgsmål, du bliver ved med ikke at kunne besvare, ikke er hvor mange, men hvilken: hvilken læser der blev et lead, hvilken artikel leadet læste to gange, hvilken søgning der kom tom tilbage ugen før de skrev ind. De svar kræver, at sidevisningen og kunden er rækker i den samme database, hvilket er, hvad Munin er — seks moduler, én Postgres, én licens uden noget holdt tilbage. Analysemodulet er atten af Munins over 200 MCP-værktøjer, så det samme endepunkt, der svarer hvad læste dette lead, arkiverer også opfølgningen, opdaterer posten og udgiver artiklen. Og den kører på din egen maskine med tre containere og én kommando, hvis du hellere vil have, at den aldrig rører nogen andens.

Ofte stillede spørgsmål

Hvad er det bedste privatlivsvenlige alternativ til Google Analytics? Det afhænger af, hvilken af tre ting du optimerer for. For den strengeste position på lagring på enheden, Plausible: det gemmer slet ingenting i browseren, hoster kun i EU, og starter på 9 dollar om måneden for 10.000 sidevisninger. For funktionsdybde, Matomo, som er GPL-3.0 og selvdrives gratis. For analyse der kobles til din kundepost, Munin, som er MIT og 0 € på Cloud Free.

Er Plausible virkelig cookiefrit? Ja, og det går længere end det. Plausibles datapolitik angiver, at de ikke bruger cookies, browsercache eller local storage, og at rå IP-adresser og browserstrenge aldrig gemmes — besøgende tælles gennem en hash bygget på et salt, der roteres og slettes hver 24. time. Det er den strengeste offentliggjorte position blandt de værktøjer, der sammenlignes her.

Er PostHog åben kildekode? For det meste, og undtagelsen er dokumenteret i arkivet. PostHogs LICENSE i roden placerer alt uden for ee/-mappen under MIT, og alt inde i ee/ under PostHog Enterprise License, som kræver et betalt abonnement til produktionsbrug og forbyder videredistribution. Plausible har en tilsvarende opdeling: extra/-mappen holder Enterprise Edition-kode, som Plausible ikke giver nogen rettigheder til at bruge eller distribuere.

Har jeg brug for samtykke til at gemme en identifikator i local storage? Artikel 5(3) i ePrivacy-direktivet gælder »lagring af oplysninger eller adgang til oplysninger, der allerede er lagret, i terminaludstyret« og nævner slet ikke cookies; EDPB, CNIL, ICO og Tysklands DSK navngiver alle browserens local storage som omfattet. Om samtykke så kræves, afhænger af national gennemførelse — Frankrig undtager førsteparts publikumsmåling på betingelser, Storbritannien tilføjede en undtagelse til statistiske formål i 2025, Tyskland har ikke udstedt en generel. Spørg din advokat; dette er ikke juridisk rådgivning.

Kan jeg selvdrive analyse uden at køre en separat analyseserver? Med Munin, ja — sporerendepunktet, hændelsestabellerne og forespørgselsværktøjerne er del af den samme installation som CRM'et, indbakken, videnbasen og CMS'et. Der er ingen anden database, ingen anden container og intet andet sæt legitimationsoplysninger at rotere.

Kan en AI-agent forespørge min analyse? Ja. Munins analyseværktøjer er MCP-værktøjer på det samme endepunkt som alt andet, så »hvilke sider læste dette lead, før de bookede« er et spørgsmål, du stiller med de ord fra Claude, Claude Code, Cursor, ChatGPT eller en kører, du selv skrev. Flere andre leverandører i denne sammenligning offentliggør også MCP-servere; forskellen, der er værd at veje, er, hvad der ligger bag endepunktet, ikke om et findes.

Den korte version

  • Privatlivsvenlig er tre kontrollerbare fakta: hvad der gemmes på enheden, om rå IP-adresser beholdes, og hvilken region der holder data. Læs leverandørens egen dokumentation frem for mærket.
  • Feltet er reelt, og det adskiller sig. Plausible gemmer intet i browseren; Matomo sætter en førsteparts cookie på 13 måneder som standard; PostHog bruger en cookie og local storage som standard med 365 dages udløb.
  • PostHogs ee/-mappe og Plausibles extra/-mappe holder kode under vilkår, som arkivets overskriftslicens ikke dækker. Begge firmaer siger det i deres udgivelsesnoter.
  • Munins sporer sætter ingen cookies, skriver én tilfældig uuid til local storage, gemmer aldrig en IP-adresse, og udleder land fra en databasefil på din egen disk.
  • Sletning er én SQL-sætning mod din egen Postgres, fordi hændelserne bor i din database frem for i en leverandørs.
  • Gevinsten ved at holde analysen ved siden af kundeposten er analytics_get_contact_journey og analytics_get_funnel: hvilken læser der blev kunde, og hvor resten faldt fra.
  • Munin er MIT uden noget separat licenseret undertræ, med mere end 200 MCP-værktøjer og et REST-API over de samme data, og 0 € om måneden på Cloud Free.

Opret en sporernøgle, indsæt ét script-tag, og se hvad folk faktisk læser — Munin Cloud er gratis at starte på, og sporeren og hver forespørgsel bag den er MIT på GitHub.

Privatlivsvenlig er ikke et mærke på en prisside. Det er en række, du kan slette.

Kjell Rune Monsø, stifter.