v3.1.0
antgroup/echomimicv3.1.0Nov 13, 2025by apata
AI Summary
Introduces a new dynamic tracking script and snippet, revamps the dark theme, and adds support for an `interactive` event property to control bounce rate calculation.
Key Highlights
- New dynamic tracking script and snippet
- Interactive event property for bounce rate
- Dark theme revamp
- Stats APIv2 trimming support
Breaking Changes
- Bounce rate calculation logic changed: sessions with < 2 pageviews and no interactive events are now marked as bounces.
- Docker image update required to `ghcr.io/plausible/community-edition:v3.1.0`
New Features
- Custom events marked as non-interactive
- Ability to leave team
- Stats APIv2 supports trimming empty date range values
- Properties included in full site exports
- Google Search Console dynamic property seeking
- Weekly/monthly email reports with top goal conversions
- New dynamic tracking script/snippet
- @plausible-analytics/tracker ESM module
- Enforce 2FA for team members
Full Release Notes
This release
- Introduces the new dynamic and more configurable tracking snippet and script (legacy scripts and snippets will still continue to work). See [this doc](https://plausible.io/docs/script-update-guide) for more details
- Supports a new optional property on events: `interactive`. See [this doc](https://plausible.io/docs/events-api#request-body-json-parameters:~:text=interactive%20optional) for more details.
- Revamps dark theme
- ...other fixes and improvements listed below
## Upgrade
Update the image used for `plausible`
<sub><kbd>compose.yml</kbd></sub>
```diff
plausible:
- image: ghcr.io/plausible/community-edition:v3.0.1
+ image: ghcr.io/plausible/community-edition:v3.1.0
```
and restart the containers
<sub><kbd>console</kbd></sub>
```console
$ docker compose up -d
```
This will boot up the new version of the app.
## Changelog
### Added
- Custom events can now be marked as non-interactive in events API and tracker script: events marked as non-interactive are not counted towards bounce rate
- Ability to leave team via Team Settings > Leave Team
- Stats APIv2 now supports `include.trim_relative_date_range` - this option allows trimming empty values after current time for `day`, `month` and `year` date_range values
- Properties are now included in full site exports done via Site Settings > Imports & Exports
- Google Search Console integration settings: properties can be dynamically sought
- Weekly/monthly e-mail reports now contain top goal conversions
- Newly created sites are offered a new dynamic tracking script and snippet that's specific to the site
- Old sites that go to "Review installation" flow are offered the new script and snippet, along with a migration guide from legacy snippets, legacy snippets continue to function as before
- The new tracker script allows configuring `transformRequest` function to change event payloads before they're sent
- The new tracker script allows configuring `customProperties` function hook to derive custom props for events on the fly
- The new tracker script supports tracking form submissions if enabled
- The new tracker script automatically updates to respect site domain if it's changed in "Change domain" flow
- The new tracker script automatically updates to respect the following configuration options available in "New site" flows and "Review installation" flows: whether to track outbound links, file downloads, form submissions
- The new tracker script allows overriding almost all options by changing the snippet on the website, with the function `plausible.init({ ...your overrides... })` - this can be unique page-by-page
- A new `@plausible-analytics/tracker` ESM module is available on NPM - it has near-identical configuration API and identical tracking logic as the script and it receives bugfixes and updates concurrently with the new tracker script
- Ability to enforce enabling 2FA by all team members
### Removed
### Changed
- A session is now marked as a bounce if it has less than 2 pageviews and no interactive custom events
- All dropmenus on dashboard are navigable with Tab (used to be a mix between tab and arrow keys), and no two dropmenus can be open at once on the dashboard
- Special path-based events like "404" don't need `event.props.path` to be explicitly defined when tracking: it is set to be the same as `event.pathname` in event ingestion; if it is explicitly defined, it is not overridden for backwards compatibility
- Main graph no longer shows empty values after current time for `day`, `month` and `year` periods
- Include `bounce_rate` metric in Entry Pages breakdown
- Dark mode theme has been refined with darker color scheme and better visual hierarchy
- Configuring shared links is now in a modal
### Fixed
- Make clicking Compare / Disable Comparison in period picker menu close the menu
- Do not log page views for hidden pages (prerendered pages and new tabs), until pages are viewed
- Password-authenticated shared links now carry over dashboard params properly
- Realtime and hourly graphs of visit duration, views per visit no longer overcount due to long-lasting sessions, instead showing each visit when they occurred
- Fixed realtime and hourly graphs of visits overcounting
- When reporting only `visitors` and `visits` per hour, count visits in each hour they were active in
- Fixed unhandled tracker-related exceptions on link clicks within svgs
- Remove Subscription and Invoices menu from CE
- Fix email sending error "Mua.SMTPError" 503 Bad sequence of commands
- Make button to include / exclude imported data visible on Safari