The highlights of this release are:
- Create teams, manage users and permissions
- Scroll depth, engagement time and (reworked) time on page metrics
- Segments feature: group filters into persistent, named presets
Upgrade
Update the image used for plausible
compose.yml
diff --git a/compose.yml b/compose.yml
index f5a0a7e..3e03415 100644
--- a/compose.yml
+++ b/compose.yml
@@ -11,7 +11,7 @@ services:
start_period: 1m
plausible_events_db:
- image: clickhouse/clickhouse-server:24.3.3.102-alpine
+ image: clickhouse/clickhouse-server:24.12-alpine
restart: always
volumes:
- event-data:/var/lib/clickhouse
@@ -27,12 +27,14 @@ services:
nofile:
soft: 262144
hard: 262144
+ environment:
+ - CLICKHOUSE_SKIP_USER_SETUP=1
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1"]
start_period: 1m
plausible:
- image: ghcr.io/plausible/community-edition:v2.1.5
+ image: ghcr.io/plausible/community-edition:v3.0.0
restart: always
command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
and restart the containers
console
$ docker compose up -d
This will boot up the new version of the app.
Changelog
The following changes have been made since 2.1.5:
Added
- Ability to sort by and compare the
exit_rate
metric in the dashboard Exit Pages > Details report - Add top 3 pages into the traffic spike email
- Two new shorthand time periods
28d
and91d
available on both dashboard and in public API - Average scroll depth metric
- Scroll Depth goals
- Dashboard shows comparisons for all reports
- UTM Medium report and API shows (gclid) and (msclkid) for paid searches when no explicit utm medium present.
- Support for
case_sensitive: false
modifiers in Stats API V2 filters for case-insensitive searches. - Add text version to emails #4674
- Add acquisition channels report
- Add filter
is not
for goals in dashboard #4983 - Add Segments feature
- Support
["is", "segment", []]
filter in Stats API - Time on page metric is now sortable in reports
- Plausible tracker script now reports maximum scroll depth reached and time engaged with the site in an
engagement
event. These are reported assd
ande
integer parameters to /api/event endpoint respectively. If you’re using a custom proxy for plausible script, please ensure that these parameters are being passed forward. - Plausible tracker script now reports the version of the script in the
v
parameter sent with each request. - Add support for creating and managing teams owning multiple sites
- Introduce “billing” team role for users
- Introduce “editor” role with permissions greater than “viewer” but lesser than “admin”
- Support behavioral filters
has_done
andhas_not_done
on the Stats API to allow filtering sessions by other events that have been completed. time_on_page
metric is now graphable, sortable on the dashboard, and available in the Stats API and CSV and GA4 exports/imports
Removed
- Internal stats API routes no longer support legacy dashboard filter format.
- Dashboard no longer shows “Unique visitors” in top stats when filtering by a goal which used to count all users including ones who didn’t complete the goal. “Unique conversions” shows the number of unique visitors who completed the goal.
Changed
- Default period for brand new sites is now
today
rather thanlast 28 days
. On the next day, the default changes tolast 28 days
. - Increase decimal precision of the “Exit rate” metric from 0 to 1 (e.g. 67 -> 66.7)
- Increase decimal precision of the “Conversion rate” metric from 1 to 2 (e.g. 16.7 -> 16.67)
- The “Last 30 days” period is now “Last 28 days” on the dashboard and also the new default. Keyboard shortcut
T
still works for last 30 days. - Last
7d
and30d
periods do not include today anymore - Filters appear in the search bar as ?f=is,page,/docs,/blog&f=… instead of ?filters=((is,page,(/docs,/blog)),…) for Plausible links sent on various platforms to work reliably.
- Details modal search inputs are now case-insensitive.
- Improved report performance in cases where site has a lot of unique pathnames
- Plausible script now uses
fetch
with keepalive flag as default overXMLHttpRequest
. This will ensure more reliable tracking. Reminder to usecompat
script variant if tracking Internet Explorer is required. - The old
/api/health
healtcheck is soft-deprecated in favour of separate/api/system/health/live
and/api/system/health/ready
checks - Changed top bar filter menu and how applied filters wrap
- Main graph now shows revenue with relevant currency symbol when hovering a data point
- Main graph now shows
-
instead of0
for visit duration, scroll depth when hovering a data point with no visit data - Make Stats and Sites API keys scoped to teams they are created in
- Remove permissions to manage sites guests and run destructive actions from team editor and guest editor roles in favour of team admin role
- Time-on-page metric has been reworked. It now uses
engagement
events sent by plausible tracker script. We still use the old calculation methods for periods before the self-hosted instance was upgraded. Warnings are shown in the dashboard and API when legacy calculation methods are used. - Always set site and team member limits to unlimited for Community Edition
- Stats API now supports more
date_range
shorthand options like30d
,3mo
. - Stop showing Plausible footer when viewing stats, except when viewing a public dashboard or unembedded shared link dashboard.
Fixed
- Fix fetching favicons from DuckDuckGo when the domain includes a pathname
- Fix
visitors.csv
(in dashboard CSV export) vs dashboard main graph reporting different results forvisitors
andvisits
with atime:minute
interval. - The tracker script now sends pageviews when a page gets loaded from bfcache
- Fix returning filter suggestions for multiple custom property values in the dashboard Filter modal
- Fix typo on login screen
- Fix Direct / None details modal not opening
- Fix year over year comparisons being offset by a day for leap years
- Breakdown modals now display correct comparison values instead of 0 after pagination
- Fix database mismatch between event and session user_ids after rotating salts
/api/v2/query
no longer returns a 500 when querying percentage metric withoutvisitors
- Fix current visitors loading when viewing a dashboard with a shared link
- Fix Conversion Rate graph being unselectable when “Goal is …” filter is within a segment
- Fix Channels filter input appearing when clicking Sources in filter menu or clicking an applied “Channel is…” filter
- Fix Conversion Rate metrics column disappearing from reports when “Goal is …” filter is within a segment
- Graph tooltip now shows year when graph has data from multiple years
Source: https://github.com/plausible/analytics/releases/tag/v3.0.0