invisit
All posts

By Miraç Berk22 min read

7 best Matomo alternatives in 2026, and how to export your data

Umami, Plausible, Piwik PRO, GA4, PostHog and 2 more Matomo alternatives for self-hosters and Cloud users, with prices and a tested export script.

A soft 3D server tower and a small cloud joined by a dotted trail of report cards that leads to seven analytics panels, in violet dithered light and shadow.

The best Matomo alternative depends on which Matomo you run. If you self-host Matomo On-Premise, Umami gives you funnels, retention, heatmaps and session replays on your own server without yearly plugin fees, and Plausible Community Edition is the lighter dashboard that can take your Matomo history in as daily totals. If you pay for Matomo Cloud, invisit, the tool we build, costs $49 a month for 1M events against Matomo’s $204 for 1M hits, sets no cookies and keeps data forever, while Piwik PRO suits regulated organisations that want a vendor contract and the same _paq tracking calls.

Here is the short answer by situation, as of November 2026.

If you self-host Matomo On-Premise or Matomo for WordPress:

If you pay for Matomo Cloud:

Either way:

Stay on Matomo if you need full self-hosting with Google Analytics style reports. No tool in this list combines segments, goals, ecommerce reports, custom dimensions, a tag manager and scheduled email reports under GPL v3 on servers you control. If the server is your only complaint, Matomo will import your On-Premise data into Matomo Cloud, and if the Cloud bill is the complaint, it will export your Cloud data for an On-Premise install (pricing FAQ). The last two sections cover staying and switching.

Why do people look for Matomo alternatives?

People leave Matomo for different reasons depending on how they run it. Self-hosters leave because of the upkeep and the plugin bill; Matomo Cloud customers leave because of the price per hit, the plan limits and the cookies. Every limit below comes from Matomo’s own documentation, pricing page or plugin marketplace, checked on November 3, 2026.

If you self-host Matomo On-Premise

Matomo On-Premise is free under GPL v3, but it is a PHP application on MySQL or MariaDB that you install, patch and back up. Matomo 5 needs PHP 8. Matomo 6, out as a release candidate since October 30, 2026, needs PHP 8.1 and MySQL 8.0 or MariaDB 10.6 (requirements), so an install on an older MySQL has a database upgrade ahead of it. Matomo supports the previous major version for at least 12 months after the next one ships (long term support); Matomo 4 lost support on December 19, 2024.

Reports need a cron job. Matomo builds reports from raw data in a step it calls archiving, and above a few hundred visits a day it tells you to run core:archive every hour and to stop browsers from triggering it with browser_archiving_disabled_enforce = 1 (auto-archiving). A run takes minutes on a new site, a couple dozen minutes as data grows, and hours on the largest. Matomo calls checking the cron’s error output your most important job as an administrator.

/etc/cron.d/matomo-archive
MAILTO="you@example.com"
5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://matomo.example.com/ > /dev/null

Servers grow with traffic. Matomo’s sizing guide recommends at least two servers once you track more than 1 million actions a month, and gives these minimums (requirements):

Page views tracked a month Matomo’s recommended setup
Up to 100,000 One server: 2 CPUs, 2 GB RAM, 50 GB SSD
Up to 1 million One server: 4 CPUs, 8 GB RAM, 250 GB SSD
Up to 10 million An app server with 8 CPUs and 16 GB RAM, plus a database server with 8 CPUs, 16 GB and 400 GB
Up to 100 million Three app servers with 16 CPUs each, a database server with 16 CPUs, 32 GB and 1 TB, a load balancer and a CDN

The hardware is the cheap part. On Hetzner’s regular-performance cloud, a 4 vCPU, 8 GB server costs €35.99 a month before VAT, with 160 GB of disk (Hetzner). The hours of upgrades, backups and archiving logs cost more.

The features that set Matomo apart are premium plugins On-Premise, billed every year by number of users (marketplace). Current prices in US dollars:

Premium plugin 1 to 4 users, a year Up to 20 users, a year
Heatmap & Session Recording $269 $2,089
A/B Testing $269 $2,089
Custom Reports $269 $2,089
Funnels $239 $1,859
Media Analytics $219 $1,669
Form Analytics $179 $1,429
Users Flow $99 $859
Cohorts $99 $859
Multi Channel Conversion Attribution $99 $789

Heatmaps with recordings, funnels, A/B testing and form analytics together cost $956 a year for four users and $7,466 for twenty. Bundles start at $330 a month for Team (up to 4 users and 5M hits, without A/B testing) and $1,740 a month for Business (up to 20 users and 30M hits) (TeamBundle, pricing, On-Premise tab).

Matomo for WordPress, with more than 100,000 active installs on WordPress.org, runs the same Matomo inside your WordPress database and archives through WP-Cron instead of a system cron.

If you pay for Matomo Cloud

Matomo Cloud takes the server work away and charges by the hit. As of November 2026, Matomo Cloud Business costs $26 a month for 50K hits, $42 for 100K, $85 for 300K, $139 for 600K, $204 for 1M, $399 for 2M and $975 for 5M on monthly billing; above that Matomo quotes, and a year costs ten months (pricing). A hit is any tracking request: page views, events, downloads, outlinks and site searches. Matomo estimates 110 to 120 hits per 100 page views, and bot traffic counts unless you filter it out (what is a hit).

The limits Cloud customers run into, all from the same pricing page and Matomo’s FAQ:

What to look for in a Matomo alternative

Judge a Matomo alternative on the reasons you are leaving, plus the two things that decide how painful the move is: your history and your tracking code.

We checked every price and claim against the vendors’ own pages on November 3, 2026. Piwik PRO publishes Business prices only through a calculator, so its numbers come from that calculator with one domain.1

Matomo alternatives compared: hosting, price, cookies and history

Tool Self-hosting 100K a month 1M a month Cookies by default Data kept, hosted Heatmaps and recordings Takes Matomo history
Matomo (reference) Yes, GPL v3: PHP and MySQL $42 (Cloud) $204 (Cloud) _pk_id for 13 months Reports forever, raw data 24 months Cloud quota; $269 a year On-Premise Moves between Cloud and On-Premise
Umami Yes, MIT: Node.js and PostgreSQL Free $20 None, monthly hash 6 months to 5 years Self-hosted, or Business at $200 CSV by request on Cloud Pro
Plausible Yes, AGPLv3: ClickHouse and PostgreSQL $19 to $39 $69 to $139 None, daily hash While subscribed No Daily totals via CSV
Koko Analytics Yes, GPL: inside WordPress Free Free One cookie until midnight Your WordPress database No No
Piwik PRO Enterprise only €82 €394 After consent; anonymous modes 25 months on Business Not built in Migration help from Piwik PRO
Google Analytics 4 No Free Free _ga for 2 years Explorations 2 or 14 months No No
PostHog Hobby deploy, unsupported Free Free First-party cookie for 365 days 1 year free, 7 years paid Yes, 5,000 recordings free No; capture API with timestamps
invisit No $14 $49 None, daily hash Forever Heatmaps on every plan, no recordings No

Prices are monthly in each vendor’s unit, so they are not one for one: Matomo counts hits, Umami counts events plus each stored property, Plausible counts page views plus events, Piwik PRO counts actions, and PostHog counts every event and sends at least two per page view, so 1M page views is about 2M events and $50. Koko Analytics does not price by traffic; Pro costs €59 a year for one site. Plausible’s range runs from Starter to Business.

1. Umami: best for self-hosters who want funnels, heatmaps and replays without plugin fees

Umami is the self-hosted replacement for Matomo’s premium plugins. It is MIT licensed, and the self-hosted edition includes funnels, journeys, retention, cohorts, goals, click and scroll heatmaps and session replays at no license cost. On Matomo On-Premise, Heatmap & Session Recording plus Funnels alone cost $508 a year for four users.

Umami 3.4.1 runs on Node.js 20.19 or newer with PostgreSQL 12.14 or newer (installation). Umami v3 dropped MySQL (migration guide), so your Matomo database server cannot be reused. There is no archiving cron: Umami’s PostgreSQL schema has no rollup tables and counts raw rows when you open a report (schema), so at high volume you watch query times instead of cron logs.

If you would rather not host it, Umami Cloud is free up to 100K events on one site with 6 months of data, and Pro costs $20 a month for 1M events with 2 years. Heatmaps, replays and unlimited sites need Business at $200 a month (pricing). Umami bills each stored event property as one more event.

Umami’s limits next to Matomo: no tag manager, A/B testing, form or media analytics, and scheduled email reports stay on Umami Cloud. Umami sets no cookies; its visitor hash uses a salt that rotates monthly, so returning visitors are not followed for 13 months as Matomo’s cookie does. The heatmap and replay recorder adds about 58 KB gzipped to the page.

Umami has no Matomo importer. Umami Cloud imports CSV exports from Pro up, handled by Umami’s team (import data); the page does not name Matomo, so ask before you count on it. _paq.push(['trackEvent', 'Videos', 'Play', 'Intro', 30]) becomes umami.track('Play', { category: 'Videos', name: 'Intro', value: 30 }), and setUserId becomes umami.identify(user.id) (tracker functions).

Choose Umami to keep self-hosting with Matomo’s paid features included. See Umami vs invisit.

2. Plausible: best for a lighter dashboard that keeps your Matomo history

Plausible is for Matomo users who mostly read traffic, sources and goals and want fewer moving parts. Plausible Community Edition is AGPLv3 and runs in Docker Compose on ClickHouse and PostgreSQL, with 2 GB of RAM recommended and a CPU that supports SSE 4.2 or NEON (Community Edition). The dashboard reads events from ClickHouse and refreshes every 30 seconds, with no archiving job for you to schedule.

Plausible’s hosted service is run from Estonia on EU-owned providers. As of November 2026, Starter costs $19 a month at 100K page views and $69 at 1M; Business, which adds funnels, custom properties, revenue goals and the Stats API, costs $39 and $139 (pricing). Hosted data has no time limit while you subscribe. There is no free hosted plan, and the trial lasts 30 days.

Plausible’s limits next to Matomo: no visits log or visitor profiles, no heatmaps, recordings, retention or cohorts, by design (when not to use Plausible), no tag manager and no user IDs. Community Edition is released about twice a year and leaves out funnels, user journeys and revenue goals.

Plausible is the one tool here that shows your Matomo history beside new data without a vendor’s help. Its CSV import accepts ten imported_* tables of daily totals, the same files Plausible documents for moving between Community Edition and its cloud (CSV import). The script in the export section below writes the visitors and pages tables from Matomo’s API. Imported data covers each day up to your first native Plausible visitor, cannot be filtered by two unrelated properties at once (page and source, for example), and leaves out ecommerce revenue.

In code, trackEvent becomes plausible('Play', { props: { category: 'Videos', name: 'Intro' } }), and on the hosted service custom properties need Business. Choose Plausible for a content site that wants clean numbers and its history in one place. See Plausible vs invisit.

3. Koko Analytics: best for WordPress sites running Matomo for WordPress

Koko Analytics is the exit for a WordPress site that installed Matomo for WordPress to count page views and referrers. It is a free GPL plugin with more than 70,000 active installs that stores its counts in your WordPress database, adds less than 1 KB to each page and records hits through an endpoint that bypasses WordPress, with no third-party service involved (WordPress.org).

The free plugin shows visitors, page views, top pages and referrers. Koko Analytics Pro adds countries, devices, UTM campaigns, custom events, email reports and traffic spike alerts for €59 a year for one site, €99 for five and €249 for 25 (pricing). Traffic does not change the price.

By default Koko sets one cookie, _koko_analytics_pages_viewed, which expires at midnight. The Cookieless method instead hashes the IP address and user agent with a secret that changes every 24 hours, and None counts page views only (tracking methods).

Koko’s limits next to Matomo: its feature list has no goals, funnels, ecommerce reports, segments or visits log, so a shop or lead-generation site will miss Matomo. Its importer reads Jetpack Stats, Plausible, Burst Statistics, Statify, WP Statistics, Independent Analytics and SlimStat, not Matomo.

Choose Koko Analytics when your WordPress site needs a counter, not an analytics department.

Piwik PRO suits banks, health providers and public bodies that want a vendor to run analytics, a consent manager and a tag manager under one contract, with support. Matomo was once called Piwik, and Piwik PRO’s tracker uses the same _paq command queue, so _paq.push(['trackEvent', 'Videos', 'Play', 'Intro', 30]) works unchanged (trackEvent). Piwik PRO says it can migrate much of your Matomo data and setup, usually in about four weeks (switch from Matomo).

Piwik PRO no longer has a free plan: the free Core plan was retired, and Core accounts had until February 28, 2026 to upgrade (changelog). Business starts at €36 a month for 25,000 actions on one domain, and Piwik PRO’s calculator gave €82 a month for 100,000 actions and €394 for 1M on November 3, 2026 (pricing). Business tops out at 2M actions and 20 domains, keeps data 25 months, is hosted in Sweden, and rises 4% a year on renewal (Business plan).

Enterprise starts at €366 a month billed annually, with data centres in Germany, the Netherlands, the US, Sweden, Hong Kong and the UAE, a business associate agreement for HIPAA, and on-premises installs with unlimited retention (data retention).

Piwik PRO’s limits next to Matomo: at 1M, Business costs more than twice Matomo Cloud’s €172 for 1M hits, and actions include more than page views, since tag manager container loads, consent window loads and API requests count too (counting actions). Heatmaps and recordings are not built in (the help centre shows Hotjar loaded through the tag manager), raw data on Business comes through the API only, real-time reports look back 30 minutes, and the product is closed source. For visitors who decline consent, one of Piwik PRO’s anonymous modes uses what Piwik PRO calls a fingerprint derivative.

Choose Piwik PRO when compliance paperwork and a support contract matter more than price.

Google Analytics 4 is the free way to keep depth: funnel, path and cohort explorations, a user explorer, audiences, Google Ads conversions and Search Console data, free at any volume on a standard property. It suits Matomo users who chose Matomo for depth rather than privacy.

GA4’s limits next to Matomo: it sets _ga cookies for two years, so EU and UK visitors need consent, and there is no self-hosting and no EU storage option. gtag.js measured 155 to 179 KB gzipped, against 22 KB for matomo.js. The event-level data behind explorations is kept 2 months by default and 14 at most, while aggregated standard reports are not affected (data retention).

Nothing moves from Matomo to GA4: GA4’s event import only accepts data from the last 2 days (data import), and Matomo’s Google Analytics importer only goes the other way. trackEvent becomes gtag('event', 'video_play', { video_category: 'Videos', video_name: 'Intro', value: 30 }), and user IDs go in gtag('config', 'G-XXXXXXX', { user_id: user.id }).

Choose GA4 if you buy Google Ads and already run a consent banner. See Google Analytics vs invisit.

6. PostHog: best for teams that bought Matomo’s A/B testing, heatmaps and recordings

PostHog replaces the experimentation side of Matomo: session replay, heatmaps, experiments, feature flags, surveys and error tracking on one event stream. Each month the free tier includes 1M events, 5,000 recordings, 1M feature flag requests (experiments bill as flag requests) and 1,500 survey responses (pricing). On Matomo On-Premise, A/B Testing and Heatmap & Session Recording cost $538 a year for four users, and Matomo Cloud’s 1M plan caps recordings at 1,000 a month.

PostHog bills every event, and posthog-js sends at least two per page view, so 1M page views is about 2M events, around $50 a month on pay-as-you-go. Data is kept 1 year on the free tier and 7 years on paid plans, with an EU Cloud in Frankfurt.

PostHog’s limits next to Matomo: posthog-js sets a first-party cookie for 365 days and uses localStorage by default, and cookieless mode is opt-in. The main script measured about 119 KB gzipped. Self-hosting is an MIT hobby deploy that needs about 4 vCPUs and 16 GB of RAM, is unsupported and, in PostHog’s words, is “unlikely to scale past a couple 100ks events” (disclaimer), so it is no home for a self-hosted Matomo at scale.

PostHog has no Matomo importer. The raw visits from the export script below can be replayed as historical events through PostHog’s capture API (migrations), one event per Matomo action with its original timestamp, but you write that mapping. trackEvent becomes posthog.capture('video_play', { category: 'Videos', name: 'Intro', value: 30 }), and setUserId becomes posthog.identify(user.id).

Choose PostHog when experiments and recordings matter more than a light, cookieless dashboard. See PostHog vs invisit.

7. invisit: best for Matomo Cloud customers who want cookieless analytics for less

invisit, the tool we build, is hosted, cookieless web analytics for Matomo Cloud customers who pay by the hit for reports they mostly read at the top. It costs $14 a month for 100K events and $49 for 1M, against $42 and $204 on Matomo Cloud, and the free plan covers 20,000 events a month on 4 sites (pricing). The tracker and SDKs are MIT; the dashboard and backend are proprietary.

Next to Matomo Cloud, invisit sets no cookies and keeps all data forever, where Matomo Cloud deletes raw data after 24 months. Visitors are told apart with a hash salted per UTC day, and the salt is deleted about 25 hours after the day ends (how that works). Heatmaps that count clicks, rage clicks and dead clicks per element, with scroll depth, are on every plan, free included, and heatmap clicks are never billed. You can read any visit step by step, build funnels of 2 to 8 steps within one visit, and invite unlimited members on every plan, against Matomo Cloud Business’s 30. invisit.js measured 8,542 bytes gzipped, against 22,132 for matomo.js 5.14.2.

invisit’s limits next to Matomo: it cannot be self-hosted, which is the main reason many people picked Matomo. It has no session recordings, A/B tests, retention cohorts, scheduled email reports, Search Console integration or mobile SDKs, all of which Matomo offers. Revenue comes from Stripe, Paddle and four other providers and is charted beside traffic, but not attributed to sources or campaigns, where Matomo has ecommerce reports and multi-channel attribution. A daily hash means a month’s unique visitors read higher than Matomo’s cookie-based count. Data is stored in Falkenstein, Germany, with Cloudflare, a US company, in front.

There is no importer, so export from Matomo first and keep the archive. trackEvent becomes track('video_play', { category: 'Videos', name: 'Intro', value: 30 }), goals become conversions, and setUserId becomes identify(user.id), which stores only a hash. If you leave invisit later, Export raw events in site settings gives you a gzipped NDJSON file of the site’s raw events and funnels.

Choose invisit when you want hosted, cookieless numbers with heatmaps and permanent history, and can live without recordings and experiments. See Matomo vs invisit.

How do you get your history out of Matomo?

Export through Matomo’s Reporting API: it returns any report as CSV, TSV, JSON or XML, and Live.getLastVisitsDetails returns raw visits with every action (raw data export). Self-hosted, a database dump keeps everything. On Matomo Cloud, Matomo offers a full raw data dump on request (Matomo Cloud), and the paid Data Warehouse Connector backfills up to 24 months of raw data into a warehouse such as BigQuery (backfill).

The script below does the API part for one site. It pages through raw visits 1,000 at a time into NDJSON, and writes daily totals and pages as Plausible’s imported_visitors and imported_pages files. Create a token under Administration, Personal, Security; the script sends it in the POST body, so a token limited to secure requests works (token_auth).

export-matomo.ts
// Archive one Matomo site: raw visits as NDJSON, plus daily totals and pages in Plausible's CSV
// import format. Node 22.18+ or Bun:
// MATOMO_URL=https://matomo.example.com MATOMO_TOKEN=... node export-matomo.ts 1 2024-11-01 2026-10-31
import { appendFileSync, writeFileSync } from 'node:fs'

const [site = '1', from = '2026-10-01', to = '2026-10-31'] = process.argv.slice(2)
const range = `${from.replaceAll('-', '')}_${to.replaceAll('-', '')}`

async function matomo(method: string, params: Record<string, string>) {
  // The token travels in the POST body: it stays out of server logs and works with secure-only tokens.
  const body = new URLSearchParams({
    module: 'API',
    format: 'JSON',
    format_metrics: '0',
    method,
    idSite: site,
    period: 'day',
    token_auth: process.env.MATOMO_TOKEN ?? '',
    ...params,
  })
  const res = await fetch(`${process.env.MATOMO_URL}/index.php`, { method: 'POST', body })
  const data = await res.json().catch(() => null)
  if (!data || data.result === 'error')
    throw new Error(
      `${method}: ${data?.message ?? `HTTP ${res.status} without JSON, check MATOMO_URL and MATOMO_TOKEN`}`,
    )
  return data
}

const rows = (header: string[], data: unknown[][]) =>
  [header, ...data].map((row) => row.map((v) => JSON.stringify(v ?? 0)).join(',')).join('\n') + '\n'

const visitors: unknown[][] = []
const pages: unknown[][] = []
writeFileSync(`visits_${range}.ndjson`, '')

for (
  let d = new Date(`${from}T00:00:00Z`);
  d <= new Date(`${to}T00:00:00Z`);
  d.setUTCDate(d.getUTCDate() + 1)
) {
  const date = d.toISOString().slice(0, 10)

  // Raw visits with every action: empty once Matomo has deleted that day's raw data.
  for (let offset = 0; ; offset += 1000) {
    const batch = await matomo('Live.getLastVisitsDetails', {
      date,
      filter_limit: '1000',
      filter_offset: `${offset}`,
    })
    appendFileSync(
      `visits_${range}.ndjson`,
      batch.map((v: unknown) => JSON.stringify(v) + '\n').join(''),
    )
    if (batch.length < 1000) break
  }

  // Archived reports: these outlive the raw data.
  const t = await matomo('API.get', { date })
  visitors.push([
    date,
    t.nb_uniq_visitors,
    t.nb_pageviews,
    t.bounce_count,
    t.nb_visits,
    t.sum_visit_length,
  ])

  // Matomo keeps query strings in page URLs; Plausible wants one row per hostname and path.
  const byPath = new Map<string, number[]>()
  for (const p of await matomo('Actions.getPageUrls', { date, flat: '1', filter_limit: '-1' })) {
    if (!p.url) continue // rows without a URL, such as Others in a truncated report
    const { hostname, pathname } = new URL(p.url)
    const sum = byPath.get(`${hostname} ${pathname}`) ?? [0, 0, 0]
    byPath.set(`${hostname} ${pathname}`, [
      sum[0] + p.nb_visits,
      sum[1] + (p.nb_uniq_visitors ?? p.nb_visits),
      sum[2] + p.nb_hits,
    ])
  }
  for (const [key, [visits, uniques, views]] of byPath)
    pages.push([date, ...key.split(' '), visits, uniques, views])
}

writeFileSync(
  `imported_visitors_${range}.csv`,
  rows(['date', 'visitors', 'pageviews', 'bounces', 'visits', 'visit_duration'], visitors),
)
writeFileSync(
  `imported_pages_${range}.csv`,
  rows(['date', 'hostname', 'page', 'visits', 'visitors', 'pageviews'], pages),
)

We ran it with Node 24 against Matomo’s public demo (Matomo 6.1 alpha, its library demo site) for October 29 and 30, 2026. It took 24 seconds and wrote 6,973 raw visits, exactly the two days’ visit totals, as 31.3 MB of NDJSON: about 4.5 KB per visit, or 1.9 MB gzipped. The page rows summed to the 11,266 page views in the daily totals. At that rate, a site with 100,000 visits a month produces about 450 MB of raw export a month before compression.

Run it over every day whose raw data still exists: the last 24 months on Matomo Cloud, and on a self-hosted Matomo everything since install, unless someone turned on deletion of old raw data (delete_logs_enable is off by default in global.ini.php). For Plausible, end the range on the day before its script went live, since imports stop at the first native visitor.

What do you lose when you leave Matomo?

When should you stay on Matomo?

Stay on Matomo when one of its strengths is the reason you chose it, or when your complaint has a fix inside Matomo.

How do you switch from Matomo without losing your history?

Export first, import where the new tool can, and run both trackers side by side for two to four weeks before you remove the Matomo snippet.

  1. Export. Run the script over every day with raw data, gzip the NDJSON, and save goals, segments and annotations. Self-hosted, also take a mysqldump of the Matomo database with config/config.ini.php.
  2. Freeze, do not delete. On a self-hosted Matomo, set record_statistics = 0 under [Tracker] in config/config.ini.php once you stop tracking, and keep the instance read-only until nobody opens it. On Matomo Cloud, request the full raw data dump before you cancel.
  3. Install the new tracker next to Matomo’s. Every tool here can run on the same pages as the _paq snippet.
  4. Rewrite your tracking calls with the table below, and rebuild goals as the new tool’s goals, conversions or funnels.
  5. Compare for two to four weeks. Expect unique visitors to read higher on a cookieless tool, and page views to differ by the bots and ad blockers each tool sees.
  6. Remove the Matomo snippet, and cancel Matomo Cloud only after the export opens cleanly.
Tool _paq.push(['trackEvent', 'Videos', 'Play', 'Intro', 30]) _paq.push(['setUserId', id])
Umami umami.track('Play', { category: 'Videos', name: 'Intro', value: 30 }) umami.identify(id)
Plausible plausible('Play', { props: { category: 'Videos', name: 'Intro' } }) No equivalent: Plausible keeps no user IDs
Piwik PRO Unchanged Unchanged
GA4 gtag('event', 'video_play', { video_category: 'Videos', video_name: 'Intro', value: 30 }) gtag('config', 'G-XXXXXXX', { user_id: id })
PostHog posthog.capture('video_play', { category: 'Videos', name: 'Intro', value: 30 }) posthog.identify(id)
invisit track('video_play', { category: 'Videos', name: 'Intro', value: 30 }) identify(id)

Koko Analytics tracks custom events on Pro only, configured in the plugin rather than through _paq-style calls.

Before you turn Matomo off

Footnotes

  1. Piwik PRO’s Business calculator on its pricing page, set to one consent domain, on November 3, 2026: €36 at 25,000 actions, €57 at 50,000, €82 at 100,000 and €394 at 1,000,000 a month. More domains raise the price. ↩