Changelog
Last updated
Last updated
For upcoming changes see the public roadmap on Trello.
Ask AI can now generate and display charts!
Changes |
---|
This update introduces the Mobile/Desktop filter and Japanese translation.
Changes |
---|
This update introduces UI improvements for Goals and Domains and bug fixes.
Changes |
---|
This update includes UX and Ask AI improvements, bug fixes and a new database backup script.
For Agency: Make sure you back up multidb-list.php before updating, as the contents might not be properly migrated due to a bug in a previous updater version.
Changes |
---|
This update improves Ask AI. You can now enable chat history to send your previous questions and bot-generated responses with each new request.
This update introduces tracking code changes, better SPA support, a new Agency feature and some bug fixes.
This update introduces tracking code changes. Please make sure, by clearing all relevant caches (WordPress cache, Cloudflare cache, etc.), that your users will be served the new tracking file (ust.min.js).
The new session timeout functionality will result in slightly different new stats tracked:
The average session length will be shorter.
The number of visits/pageviews will slightly increase (a long session will now be likely split into 2 or more sessions, usually in cases where the user keeps the site in a background tab for more than 30 minutes).
This update includes improvements, fixes and migrating the date library.
Update Ask AI models and improve responses.
This update introduces multi-domain filtering, a bunch of UI improvements and some quality-of-life changes.
License upgrade support, multi-database improvements and bugs fixes.
This update includes a new feature (Goals), many UI/UX improvements and some bug fixes.
Improve session recordings stability and performance. Includes a few quality-of-life fixes.
NOTE: This update includes JS tracker changes. You should update your included tracker code (or at least update the cache-breaker string ?v=6.1.0 at the end), and clear all caches, so your users will load the new JS tracker file.
Quick update in preparation for publishing UXWizz as a 1-Click app on DigitalOcean. Updates a few internal JS packages and improves the Trial version.
Bug fixes. Better PHP 8 support.
Small UX and security improvements for the Ask AI feature.
This update includes a new feature (Ask AI), UI/UX improvements and multiple library upgrades.
It is recommended to backup your files and database before upgrading. Please report if you encounter any updating issues or have any suggestions.
Hotfix: Make sure version 6.0.0 update download will work as expected (fix hash integrity path check).
Quality of life update: licensing system improvements and preparation for v6.0.0 release.
New URL hash tracking setting, UI improvements and bug fixes.
Performance improvements, bug fixes and improved GeoIP precision.
Small fixes, code improvements and an enhanced Agency logo-upload experience.
New language (pt-BR), bug fixes and performance improvements.
Quick quality-of-life change for better default date range picker intervals.
This is a major release! Please backup your files and database before upgrading.
This update introduces multi-database support (Agency version) and a big (mostly invisible for now) code upgrade to React v18 and Material UI v5. Updating to the latest versions of React and MUI not only makes the platform more future-proof, but it also improves the performance and usability of the platform.
Improved admin privacy within the dashboard by either eliminating 3rd party requests or adding the option to disable them.
This update includes mainly Agency version changes, including a Max domains per user feature.
This update introduces session playback pause and speed controls plus some Agency version improvements and fixes.
This is a maintenance update with bug fixes and improvements.
Hotfix: Fix redirect after login not properly leading to the dashboard.
This update introduces a new feature for the Agency version and improves/fixes some error messages.
IMPORTANT: The permissions levels have changed! See the first item in the "Other" section. Users with level 4 now have more rights!!
This update adds city geolocation, the Russian language and some useful fixes.
userTrack has been rebranded to UXWizz. This update includes the branding changes plus some bug fixes.
New:
userTrack is now UXWizz. Most brand text, links and images have been updated with the new name. There might still be some references to "userTrack". You can read more about this change in the blog post.
Bug fixes:
Fixed errors on some versions of MariaDB when sql_mode
has enabled the ONLY_FULL_GROUP_BY
flag.
Fix server/troubleshoot.php
not working due to CSRF checks.
Fix notification snackbars not being closable (updated Notistack)
Fix a crash in the visitors list when when page size was changed to a smaller value. Also summited the fix as a PR for the material-table-core package.
Fixed link to Personal Data Information in the GDPR pop-up showed (if the setting is enabled)
A new, secondary, session-recording system was added. You can now record sessions on dynamic websites and in user areas (behind login screens) when using the new recording system.
New:
Full session-recording system. Added a secondary session recording/playback system that records entire page content and changes. This is based on rrrweb.
The recordings will be more accurate but take up a lot more space (eg. 20KB/session instead of 100sessions/KB with the default userTrack system)
To enable this new tracking system please include the new tracker script that contains this recording method (i.e. ust-rr.min.js instead of ust.min.js). Read more about this in the session recording docs.
Improvements:
UI: Improve country flags clarity
Bug fixes:
Fix German (DE) language flag missing.
Fix German language name (Deutsche -> Deutsch)
Fix events for clients sometimes showing wrong cached data.
Fix Event date parsing in Safari (Safari doesn't parse dates in the YYYY-MM-DD hh:mm:ss
format).
Updated ChartJS to v3. Improved heatmaps and session playback stability.
Improvements:
Updated ChartJS to the new v3 release.
Improved iframe loading stability (for viewing heatmaps and session recordings).
Improved support for tracking pages with non-standard characters (eg. Chinese characters) in their URL.
Improved chart tooltips and date formats.
Updated userTrack branding (new logo). Improved build tools and added an agency version.
New:
Agency version - there is now a separate userTrack build for the Agency version, which for now includes the branding (whitelabel) feature.
Improvements:
Updated branding (logo) to the new version.
Implemented a one-time info/tutorial system for displaying tips inside the dashboard.
An info modal/warning is displayed the first time you play a session recording.
Development only: improved some build and localization tools, this should increase the rate of future userTrack updates.
Introducing a brand new events system, an important security improvement and some small fixes.
This update includes changes to tracker.js.
ust.min.js will be updated so make sure to clear all relevant caches so users load the latest tracker file.
Updating the tracker include code, which already contains a cache-breaker is the best way to clear the cache. (eg. ust.min.js?v=3.5.0)
New:
Events system. You can use events to track sales, errors or any arbitrary data for each user. Read more details here: https://docs.usertrack.net/api/events More graphs and filtering options for events will be added soon.
Improvements:
Added a setting to toggle URI encoding for the recording data sent via the tracking pixel. Please enable this if your firewall (such as Sucuri) blocks non-encoded parameters in the URL.
Improved query peformance for retrieving the list of visitors.
Security:
Added Cross Site Request Forgery (CSRF) protection. This is pre-emptive measure, which stops the possibility of someone tricking you into clicking an external link/button that executes an existing action on your userTrack dashboard.
Bug fixes:
Fixed a rare timing issue, when sometimes loading the dashboard showed an error if a request took too long to load.
Added bot filtering, some improvements for the WordPress version, new translations and some fixes.
This update includes changes to tracker.js.
ust.min.js will be updated so make sure to clear all relevant caches so users load the latest tracker file.
Updating the tracker include code, which already contains a cache-breaker is the best way to clear the cache. (eg. ust.min.js?v=3.4.4)
New:
Bot filtering - Bots are now automatically excluded from tracking based on the UserAgent string.
New languages: French, Spanish and Portuguese - Those were mostly automatically translated, if you find issues you can submit fixes on the userTrack translation repository.
Improvements:
Added no-cache
headers to all PHP files to avoid potential caching issues with specific server configurations.
Bug fixes:
Fixed an issue where the trial could not be automatically upgraded to the full version if it has already expired.
Fixed missing translations for time intervals (eg. date, hour).
Other:
Marketing/sales: Added a 7 days trial version of userTrack which can be upgraded automatically to the full version.
WordPress:
NEW: Ability to disable tracking for specific user categories (visitors/logged-in users/admins)
Improved tracking settings loading performance.
Improved tracking settings UI.
Introducing JavaScript hooks which can be used on your website to read userTrack activity. More UX improvements.
This update includes changes to tracker.js.
ust.min.js will be updated so make sure to clear all relevant caches so users load the latest tracker file.
Updating the tracker include code, which already contains a cache-breaker is the best way to clear the cache. (eg. ust.min.js?v=3.4.3)
New:
JS Callbacks. Added JavaScript callbacks/hooks you can register to. Using them you can extend or implement custom userTrack functionality on your site. Check out the JS Callbacks docs.
Improvements:
UX: You can now update filters such as tags, pages in existing segments by clicking on them.
UX: You can now click on pages in the visitors list to add them to the current segment filter.
Better accuracy for user IP detection (if the IP is sent in the HTTP_CF_CONNECTING_IP
or HTTP_X_SUCURI_CLIENTIP
headers).
Hotfix for 3.4.1 Fixes Pages autocomplete query not working on some MySQL instances. Fixes timeseries loading bar not appearing
Improved tracking settings, some tracking fixes and UI improvements.
This update includes changes to tracker.js.
ust.min.js will be updated so make sure to clear all relevant caches so users load the latest tracker file.
Updating the tracker include code, which already contains a cache-breaker is the best way to clear the cache. (eg. ust.min.js?v=3.4.1)
New:
Added setting to enable/disable session recordings. You can now enable/disable full session recording from the settings UI while still tracking basic pageviews stats. You can also independently enable/disable heatmaps.
Improvements:
UI: Simplified segment context menu. Now only the icons are shown for segment actions (new, copy, rename, delete).
Improved pages filter autocomplete performance when having many unique pages stored. Now only 50 URLs are loaded initially and then the rest is dynamically fetched. Responses are also cached until you refresh the dashboard, so typing twice the same page query won't hit the server again.
Improved the pixel tracker batching logic. It now sends data less often. It should still be accurate, but should result in 30-50% fewer requests sent for longer sessions.
Bug fixes:
Important: Fixed record keyboard setting being always false
. The setting was saved in DB with the key recordKey
but the JavaScript tracker file was reading recordKeyboard
.
Fixed pages still not being ordered sometimes in session playback (ORDER BY clause was wrong).
Other:
The "Visitors" graph is now called "Visits" as it currently shows the number of sessions, not of unique visitors. An unique visitors graph will be added soon.
Improved heatmaps UI. Several bug fixes and performance improvements.
This update includes changes to tracker.js.
ust.min.js will be updated so make sure to clear all relevant caches so users load the latest tracker file.
Updating the tracker include code, which already contains a cache-breaker is the best way to clear the cache. (eg. ust.min.js?v=3.4.0)
New:
Heatmaps by device filter. Added device buttons to the heatmaps interface so you can quickly select and view data based on visitors' screen size. Previously you had to manually select both iframe width and page width filter. Selecting a device automatically sets those two values.
Improvements:
When viewing heatmaps, changing the current page by clicking a link on the site now automatically loads the heatmap data for that specific page
Improved overall dashboard queries performance (especially for larger databases)
Bug fixes:
Fixed page scroll sometimes not being recorded in playback if the website scrollbar was happening on the body
instead of the window
.
Fixed pages order in playback not always being correct.
More query performance improvements. The dashboard should be REALLY fast now.
Improvements:
Improved query performance for top referrers.
Improved query performance for top pages.
Improved query performance for domain total stats.
Improved query performance for bounce rate graph.
Bug fixes:
Fixed some graphs not updating when changing domains from the top-left domain selector.
Some query performance improvements.
Performance improvements:
Visitors list performance drastically improved for big databases.
Top pages query performance increased by 5x.
Filtering for exact page visited query performance increased by 2x.
Drastically improved the performance of the visitors limit query (the one that deletes old users when limit is reached).
Graphs data can now be grouped by hour, day, week or month. Other minor improvements and bug fixes.
New:
Time intervals for charts. You can now change the time intervals for timeline charts to be grouped by Hour, Day, Week or Month.
Improvements:
Tags are now sorted by time instead of alphabetically, this means that you can now see the order in which events happened.
UI: Month name is now displayed in short format in the date range picker (Sept. instead of September) for better space usage.
UI: Reduced chart legend length below chart title (only shows segment name now). Detailed legend (chart title + segment name) is still displayed in the hover tooltip.
Bug fixes:
sessionStorage
is now used instead of localStorage
to store user and session recording data. This should fix some issues when the user opens the site in multiple tabs (as sessionStorage
is unique per tab but localStorage
was shared.
Drastically improved visitors list query performance and added session length filter.
New:
Session length filter. You can now filter sessions with a specific sessions length.
Improvements:
Improved dashboard loading speed by always caching the bundled CSS/JS. It's safe to always cache them as each new build has a hashed/distinct bundle filename.
Drastically improved visitors list loading time, especially when using a larger page size (eg: 100 rows)
Bug fixes:
Fix not being able to add more than two page filters
Added new summary stats per segment to easier understand and compare them.
New:
Summary stats. In the statistics page, for each segment it will now also be displayed: the total number of visitors, pageviews, average session length and average bounce rate.
Improvements:
Referrer links act more like links now, meaning that you can middle or right click a referrer in the Top referrers or Visitors lists to open that page in a new tab.
Bug fixes:
Fixed some translation issues for the German locale.
This update introduces more privacy features, the ability to filter all sessions from a single user and some UX improvements for the visitors list.
New:
Anonymize IP. You can now choose to hash IPs before they are stored in the database for increased user privacy. The hash also includes the UserAgent string to avoid false positives. I strongly recommend using this feature.
Filter by IP. You can now easily filter all sessions for a user based on IP (or hashed IP). Now that the IP can be anonymized, this allows you to see multiple visits of a single user without affecting a specific user's privacy.
Improvements:
Updated the AB testing tracker code to be included. It now hides the page using opacity: 0
instead of visibility: hidden
as it results in less content flashing in most browsers.
Default settings: Hash user IP and Censor visible IP settings are enabled by default to increase user privacy.
UX: Number of rows per page in visitors list is now cached in localStorage
.
UX: Page index currently being viewed in visitors list is now stored in the URL. This means that you can now refresh or use the browser back button and you will stay on the same page number.
Performance: Improved visitors list loading performance (previously the list was requested multiple times, thus putting more stress on the server)
Bug fixes:
Fixed some translation issues for the Dutch locale.
This update introduces wildcard filters for referrers, German language, some performance improvements and a heatmap fix.
New:
Wildcard referrer filter. You can now search for a referrer using a start or an end wildcard (similar to the pages search). This is very useful as you can now add *google.*
as a segment's referrer filter, and it will match all international Google domains (eg. google.com, google.de, google.es, etc.)
Translation: German language
Improvements:
Improved tracking performance of a new user (removed one DB query).
Bug fixes:
Fix heatmap points position: static
positioning was not correctly storing the relative X values.
Fix tracking error on some PHP versions, when notices are enabled (in createClient.php:70)
This update introduces improvements to the translation system and adds the Dutch language.
New:
Dutch language
Improvements:
Code: Translation files are not stored as JSON. You can help with translations here: https://github.com/userTrack/translations
UI: Remove the domains thumbnail images. Read the reasons here: https://trello.com/c/Vvoo0ak5
UI: admin
is now shown as a placeholder in the login form (useful if you forgot the default username).
Bug fixes:
Fix update .htaccess
file not working on some server configurations.
This is mainly an update for the WordPress version. The auto-updater has also been added to the userTrack WordPress plugin.
New:
Auto-updater on WordPress. The same auto-updater that was added in 3.2.0 for the standalone version is now also available in the WordPress version.
Bug fixes:
Fixed an issue with A/B tests were the last previewed variant was used during playback instead of the A/B variants the user saw.
WordPress:
Auto-updater was added (as mentioned above).
You can now deselect all checkboxes in the Pages to track menu if you don't want the tracker file to be automatically included. Previously at least one checkbox had to be selected.
This update includes small improvements and bug fixes.
New:
URL tracking opt-out. Users can opt out (or in) from being tracked by your userTrack instance by accessing any URL where your tracker is installed with the query parameter ust-opt-out
or ust-opt-in
.
eg. site.com?ust-opt-out
Improvements:
Slightly improved tracking performance and accuracy.
For URL Favicons images use DuckDuckGo URL instead Google.
Bug fixes:
Fix scroll playback offset sometimes not saving last scroll position.
Hot fixes for latest 3.2.0 release.
Bug fixes:
Always show errors while updating.
Fix wrong upcoming version number shown in UI.
Hot fixes for latest 3.2.0 release.
Bug fixes:
Fix default relative tracking setting being false.
Fix settings save not working.
This update introduces automatic updates. You will now be able to update your userTrack dashboard with one click.
Automatic updates. A notification will appear in the dashboard when a new userTrack update is ready. To update the installation go to Settings->Updates->Update now. A valid license key is required.
Important changes:
Tracking settings are now stored in the database instead of the tracker.js file. This means that you can now safely replace/update the file without losing your personalized settings.
Bug fixes:
Fix tracker throwing an error when a radio button or select was clicked.
WordPress version:
This update is only available for the standalone version. The WordPress version will receive the automatic updates functionality soon.
This update doesn't include any new big feature, but it fixes multiple UX issues, caching issues, tracking issues and adds some security and performance improvements.
New:
Average session length chart. The previous "pages per session" bar chart has been hidden as it was hard to read.
Important changes:
Tracker.js was updated to fix the session length issue, you will have to change on setting to regenerate the ust.min.js minified tracking code.
Improvements:
Small UI/UX improvements for:
Sidebar UI
Domains list UI
A/B tests list UI
Tracking code modal
A toggle has been added in the tracking code modal so you can choose to include or not the extra A/B tracking scripts.
A warning is now shown saying that you will be logged out when you change your own user information
Disabled caching of userTrack's index.html to make it easier to update to new versions
Added a cache breaker query string ?v=3.1.0
to the included tracker script, to force clients to get the latest version.
Improved tracking performance: reduced the initial number of requests done for each page visited from 3 to 2.
Security:
A password must now be chosen at installation time for the admin user instead of using a default password. Note that there should always be a user named "admin".
Bug fixes:
Fixed a bug where session length would be really long if a user comes back to the site. If you saw a session length of "20hours" it could have meant that the user left the site and then came back 20 hours later.
You are now properly logged out after changing your password
Page now correctly starts scrolled at the top when navigating to a different page in the dashboard
Fixed errors flashing before being redirected to the login screen, if accessing the dashboard while not logged in.
WordPress version:
userTrack will no longer be displayed in an iframe inside WordPress, but the dashboard will open in a new tab. This way there is a lot more space for the graphs/stats and it also fixes the issue with the iframe sizes not filling entire window.
This update introduces A/B tests, dark mode, fixes some issues with record playback and adds several UI improvements.
New:
A/B tests: you can now change text or inline styles on your page using just the userTrack interface. Users who see a specific version are automatically tagged with that A/B test variant so you can segment and view data for those users only.
Dark mode: you can now switch between the dark and light themes of the userTrack UI.
Important changes:
The tracker inclusion code was updated. There is some extra inline JavaScript before including the tracker file, in order to be able to track page load speed and make sure tags will be correctly saved, even if you call UST.addTag()
before the script loads.
The A/B test file can also be optionally included in order to enable A/B testing.
Improvements:
You can now dismiss the info/error mesages shown in the dashboard. Their position was also moved to bottom center (was bottom left).
You can now click the referrer URL either in the visitors list or the top referrers list and it will be added as a filter to the current active segment.
You can now filter the referrer based on an exact URL (before you could only filter by domain name).
Some alignment improvements for the visitors table.
A small dot indicator is now shown on the first active segment if multiple segments are active.
To help with installation troubleshooting, a server/troubleshoot.php file was added which, when accessed, checks some common userTrack installation errors and displays them.
You can no longer add invalid domain names to tracked domains. This fixes the problem with the navigation when a a domain name was added that included a subdirectory path.
Added info text with examples showcasing the wildcard feature for the pages filter input.
Autocomplete dropdown options are now automatically shown, without having to type a letter first.
Increased default users limit from 1k to 100k.
Bug fixes:
Fixed an issue with event listeners callbacks not being called sometimes, which stopped some specific actions or tags from being recorded.
Fixed a bug which stopped element hovering from working during playback. Now the elements hover should again be triggered when the cursor position is above an element.
Fixed some events not beig replayed below the fold (if the page was scrolled).
Fix a bug where removing all ignoredIP
or all ignoreGET
values from the settings would break the settings editor from working.
This update adds back skip pauses during playback, live visitors playback and adds a new pages visited filter to segments.
New:
Live playback. When watching the playback of a visitor that is still on your site, new data will be automatically loaded and playback will only stop if 10 seconds pass without any user activity.
Skip pauses in playback . The option to skip inactivity while watching a recording has been reimplemented.
Page filters for segments. You can now add one or more pages to filter by in segments. The pages can have a starting/ending wildcard. For example, adding *blog*
will only show users who visited a page whos URL contains the blog
keyword. The same wildcard syntax works when filtering data in the Visitors
table.
Bug fixes:
A default date range (14 days) is now always enabled for segments. Without having a range selected, the comparison data from segments would not be aligned. You can no longer view data without a date range specified.
Fixed pagination of visitors list when using segments (total number of pages was wrong).
Fixed empty/incomplete visitor pages being shown in visitors list when the pages filter is used. The filter is now done in MySQL, but the page path has to be exact.
WordPress specific fixes:
Fixed an issue where sometimes the userTrack tables would not be deleted when the userTrack plugin is uninstalled.
Fixed a possible conflict with other plugins, if they someone included the MaxMind GeoIP DB automatically.
Fixed an issue where saving settings would add magic slashes to the tracker.js file and break it.
This update includes a new segments feature and fixes some installation and UX issues.
New:
Segments. You can now group multiple filters into segments. The graphs will show all segments at once and the visitors list, heatmaps and list statistics (top pages/top referrers) will show the data for the first active segment.
Country filter. A new users filter has been added in order to select only users coming from a specific country.
Improvements:
When adding a new domain name, the protocol (http) is automatically removed from the URL. Previously, adding a domain name with http in front would fail to show the data for that domain and also break the interface.
A new UI modal system was implemented, so most prompts in the interface now use the MaterialUI design instead of the native, thread-blocking, prompt.
The notification system that was showing error/success messages was replaced with notistack.
Filters inputs now have an autocomplete feature (eg. when you add a new tag, you can suggestion based on the existing tags in the database for the current domain).
Some performance improvements, especially when changing filters/segments. Only the graphs for the segments that were changed are now reloaded.
Bug fixes:
Fixed: Pagination in visitors list - visitors list page would be wrong or the interface would crash when changing filters/segments while on a page other than first.
Security:
The current database password is no longer shown during the initial database setup, to avoid a possible attack before the script is installed.
This is a complete rewrite of userTrack's interface. It also includes new and improved features, but the best part is that now it's a lot easier to add new functionalities to userTrack.
Summary:
Front-end is now written in TypeScript.
The interface is based on ReactJS Material-UI.
i18n localization - the entire UI can now easily be translated with translation files.
There's a new Stats page showing different graphs about visitors.
Ability to have Filters for all graphs and heatmaps.
Improved Security
Hot fixes:
19 March 2020
Updated Minifier.php to fix PHP 7.3 compatibility issue.
Fix server sub-folder permissions. This was caused by a gulp-zip bug.
Add missing .htaccess files.
New:
Localization using react-i18next
Performance improvements:
User visit start and end time are now stored in the ust_clients folder. This means that now the visit duration can be easily computed as a difference, between it was computed by summing the duration of each page visited.
Graphs:
Pages per session (bar chart)
Bounce rate (time series chart)
Top pages (list of 10 most viewed pages)
Top countries (list of 10 most common visitor countries, based on IP geolocation)
Top referrers (list of 10 most common traffic sources, choice of domain or full URL counting)
Filters:
A new header bar with filters was added in UI.
Those filters are applied to all data shown (graphs, list of visitors, heatmaps).
Currently you can filter based on Tags, Referrer and Date range.
More filters will be implemented soon.
React-router is used, so you can now refresh the dashboard and remain on the same page.
Domain changing can now be done from any page in the interface. This allows for easily viewing a specific type of data for each of the tracked domains.
Iframe auto-scaling: The iframe scale slider was removed. Its only purpose was to allow for manually scaling of the iframe so when viewing heatmap for a resolution larger than our monitor's it would still fit within our screen size. Now the iframe is always scaled to fit within our browser window. The scaling is now also applied when playing back recordings (previously recordings didn't have any type of scaling).
Security:
Changed password encryption from md5 to sha256.
All passwords are now salted using a cryptographically secure randomly generated salt.
Fixed one case where stats about live clients could be publicly read.
It is recommended to update to version 3 as soon as possible.
Big thanks to Patrick Nappa for discovering and describing possible security issues and for recommending fixes for them.
Improved:
Scroll heatmap is still based on mouse activity, but it now shows activity thresholds. We can now see, for example, that 80% of activity was above this line.
During session playback the time that the user spent on each page is also shown next to the pages names in the pages list.
After installation the serverPath should be automatically set to the correct value.
Bug fixes:
Count of live visitors was wrong, it was sometimes showing more than it should.
Other changes:
Database:
Country is now computed and stored directly in database using the Geolite2 database.
Browser, IP and token are now stored in 3 different columns instead of a single string.
Client token character length has been reduced, resulting in a slight improvement in DB usage.
The client visit start date and end date are directly stored in the ust_clients table.
All the server PHP files have been moved inside a subfolder named /server.
Heatmaps minimap was removed as it was not really useful.
Temporarily removed functionality:
Live visitors (will be reimplemented, not high priority).
Adding label to IP addresses (will be reimplemented soon).
Skipping pauses in recording (will be reimplemented very soon).
Seeking to a specific time in session playback (will be implemented, it was somewhat buggy before).
Deleting a single page from a session recording (might be reimplemented).
Downloading users as CSV (will be reimplemented soon).
Clearing data buttons: all domain data, zero recordings (will be reimplemented)
Autoplay (this was a good idea, but it doesn't really seem to work, it won't be reimplemented any time soon).
Record playback direct link sharing (might be reimplemented, it would be a lot more useful to make a guide on how to record and share the recording as a video).
There might be other small changes which have not been added to this list.
New:
Visited page filter. You can now filter the the list of clients to only show users that visited a specific page.
Setting to respect browser doNotTrack flag. In some browsers users can set a preference to not be tracked by websites. If you want to respect this preference you can enable that in the settings.
Started implementing segment statistics. You can now see how many clients are in total in the list and how many match the current page and tag filters. Note: stats currently correct only for the tag filters.
Range selection for clients list. You can now use Shift+Click and Ctrl+Click controls for selecting clients in the list, making it easier to select a range of clients, useful when you want to delete multiple users at once.
Users with Level 4 (out of 5) can now change their own name/password.
Bug fixes:
Renamed heatmap.js to h337.js and userTrack.html to dataViewer.html to avoid being blocked by AdBlockers.
Renamed tracker.min.js to ust.min.js for the same reason.
Other changes:
Slightly improved dashboard code, reducing the number of global variables used. This is the first step towards a bigger refactoring.
Updated Chart.js to v2.8.0.
New:
IP labels. You can now click an IP address in the clients list to assign a label to it.
Database usage. The size (in MB) that all the userTrack tables are using is now shown in the admin dashboard.
Bug fixes:
Fixed an issue causing form elements with a dash in their name not to be tracked properly.
The CensorIP setting is now permanently stored in the tracking file instead of locally in localStorage. This means that the setting value will persist even if you clear cookies or access the dashboard from a different device.
Fixed permissions for deleting recordings. Now demo accounts (level 0 access) no longer have access to delete recordings.
Other changes:
Remove text saying jQuery has to be included before the tracker, as it is no longer required.
Improved image quality of dashboard site thumbnails and also fixed the thumbnail aspect ratio (images were squashed before).
NEW! Ignore IP classes. You can now use the wildcard character () to ignore specific IP ranges. eg: 66.249.66.* will ignore Google crawlers.
Bug fixes:
Fixed an issue where recording only a percentage of visitors would sometimes record fewer users than the specified percentage.
Fixed GDPR alert showing while viewing the recordings.
Fixed an error with UST.start() function not being defined sometimes.
Other changes:
The default password has now been changed. Remember that you should always change the default admin password.
NEW! GDPR consent form. A new setting has been added that enables showing users a consent form with an ACCEPT button. If this setting is enabled, tracking will only start for that user if he accepts the form.
Bug fixes:
Fixed some errors throwing when using PHP 7.
Fixed dashboard alert prompt not properly showing in older browsers that don't support ES6. You should now correctly see an alert if your browser does not support ES6 when accessing the UST dashboard.
NEW! tracker.js minification. A tracker.min.js file is now always automatically generated so you can include the minified tracker on your site, reducing the downloaded file size.
NEW! Recording sites with port different than 80. You can now track websites or applications that run on different ports (ex: webapp.com:3000 can now be tracked).
UI improvements:
You can now click on the "x visitors online" in the main dashboard to go directly to the Live playback panel
Bug fixes:
Deleting clients was broken in the previous version.
Not being able to playback shared recordings.
Fixed dates sometimes displaying as NaN in IE and Safari.
Clients list delete buttons and autoplay button were sometimes invisible.
NEW! Download as CSV. You can download the detailed list of visitors (Date of visit, IP, pages visited, visit duration, browser, etc.) as a .CSV file
NEW! Heatmap range width filter. You can now view heatmaps for a specific device width interval (eg: for screens with width between 0 and 1024 pixels).
NEW! Pre-initialization tag caching. You can now use UST.addTag('tag')
even before the tracker was initialized. The values are now cached and when the connection is ready they will be automatically sent.
UI improvements:
Fixed an issue where long domains would break the dashboard UI.
A new button has been added for downloading CSV data in the clients list page.
Fixed several other small alignment issues .
Bug fixes:
User sessions act like actual sessions now, if the tab is closed and opened again you will see a new row in the recordings list instead of adding data to the same row.
Performance for clients deletion has been greatly improved. Now if you change the recording limit and have to delete many visitors it will be much faster.
Fixed several bugs for when there was no data in the database, for timezone.
Update WordPress plugins to use plugins_url()
instead of the hardcoded wp-content/plugins
path.
Thanks to everyone who suggested new features and reported bugs! :)
NEW! Live visitors (beta) is finally here!!! You can now watch visitors live, while they are still browsing your website.
UI improvements:
A large part of the record-playback UI has been updated be easier to read and use.
A new button has been added for accessing the Live visitors list.
Bug fixes:
Fixed a bug that would sometimes stop playing the recording even if there were more pages to be played back.
Thanks to everyone who suggested new features and helped with testing the new version before it was released! :)
NEW! Text selection is now recorded. If the user selects some text or element during his visit, userTrack will now also record and playback those actions.
NEW! Local timezone. The date and time of the recordings will now always be shown in the current timezone (the timezone of the device used to view the recording).
Small UI improvements.
Bug fixes:
Fixed the previous bug mentioned in the 2.3.0 notes regarding cross-domain tracking.
Fixed a bug where sometimes click positions would not be stored as integers.
Fixed a bug where the unique path to an element was not correctly generated. Also compressed the unique path string to reduce memory usage.
Fixed a bug where position: fixed; elements would not be fixed during playback (due to a bug with Chrome iframes).
NOTE!!:
There is a bug in this version (2.3.0) which stops the script from working cross-domain. To fix the bug please remove line 251 from tracker.js, more exactly this has to be removed:
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
NEW! jQuery dependency has been removed. Now, tracker.js no longer requires jQuery to be included.
NEW! Autoplay mode. You can now start playing a list of recordings from the clients list. Once one user session was played the next one will automatically start.
[API] NEW! UST.forceSendData() allows you to immediately queue the sending of all stored data that has not been yet sent to the server.
Performance improvements:
As jQuery is no longer used most tracking should be faster as it uses pure JavaScript
If you only included jQuery of userTrack this is a huge performance boost.
Heatmap should only be drawn once (previously sometimes it might be drawn twice after the page was loaded).
A passive scroll listener is used to track scroll.
Security improvements.
Bug fixes:
Fixed a bug where text input was sometimes not recorded.
Fixed thumbnails not displaying in the main dashboard.
NEW! Recordings that haven't been watched show a "new" icon.
Performance improvements:
A new format to store data has been implemented (replacing JSON) which lead to ~70% less storage used for recordings and heatmap data.
AJAX requests for storing data have been replaced by tracking pixel requests (reducing network usage)
Bug fixes:
Viewport size is more accurately recorded.
Dropdown option select should be correctly recorded.
Other small bug fixes related action recording.
Development: E2E tests have been created for us to use in order to make sure userTrack changes and new features don't break existing functionalities. This doesn't affect you in any way, just means that new userTrack releases will be more frequent and less likely to introduce bugs.
NEW! Interface update.
NEW! The ability to scale the size of the heatmap points.
NEW! Ability to scale the entire iframe/heatmap. This means you can easily view heatmaps for users who had larger screen resolution than yourself.
NEW! Changing the page by clicking inside the iframe will also update the heatmap data. This means you can now change the page for which to view the heatmaps for by simply navigating through your website.
Started refactoring most of the codebase.
Many other UI/UX improvements.
Dashboard performance improvements.
Fixed a bug where sharing a recording did not work if the tracked site was from a different domain.
The API to get visitors IP has been replaced with a local implementation.
Improved IP2Location API usage, performance and accuracy.
City of visitor is also displayed while hovering over the country flag.
Created the foundation for a new and improved permissions system.
Security improvements.
NEW! Share recording. You can now share a recording via a public link.
NEW! IPv6 support for country flag detection.
Performance improvements
UI bug fixes
Starting with this version the database structure will auto-update if necessary. This means that you wil most likely be able to keep your old data while upgrading to a new version.
Several UX improvements.
WordPress version bug fixes (click position is displayed correctly regardless the visibility of the WP admin bar)
WordPress version UX improvements.
NEW! Basic mobile tracking support.
NEW! Window resize event is also tracked.
Disable MySQL 5.7 FULL GROUP BY error bug.
userTrack 1.9 (20 June 2016)
userTrack 1.8 (09 February 2016)
userTrack 1.7 (4 April 2015)
userTrack 1.6 (8 September 2014)
userTrack 1.5 (11 February 2014)
Version 1.4 (16 July 2013)
Version 1.3 (01 April 2013)
Version 1.2 (18 February 2013)
Version 1.0 (01 February 2013)
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
Changes |
---|
New:
Ask AI Charts: You can ask the AI to generate charts and also download them.
Improvements:
If only one domain is shown, make the domain card full-width.
Update internal JS packages to latest versions.
New:
Device type filter: You can now filter a segment on “Desktop” or “Mobile” devices.
Japanese locale: To report any issues or suggest a new language, use this repo: https://github.com/UXWizz/translations
Improvements:
Translations: Add some missing translations and update a few wrong ones.
Improvements:
UI: Improve goal block UI when only ALL segment is visible.
UI: Improve number block UI in stats.
UI: Improve Domains page layout and domain card UI.
Self-host: Improve database backup script robustness, performance and error logs.
Bug fixes:
Charts: Fix chart start/end dates when the server’s timezone is different from client’s.
UI: Fix stats card alignment when only one goal is visible.
AskAI: Fix chat history when using PHP get_magic_quotes_gpc enabled.
New:
Docs: Added a server migration guide here.
Self-host: Added cron example cron/ust_backup_db.sh that creates a backup of the current database. You can also use this for on-demand backups. Note: For agencies, this currently only backs up the main database.
Ask AI: Added GPT o1 and o1-mini models support (early access required).
Improvements:
Ask AI: Better handle Ask AI GPT error responses.
UX: Added “Copy” button to snackbar notifications (for errors only).
UX: Better dark mode settings: you can now set the color scheme back to ‘system’ also (previously, once set, it was either ‘light’ or ‘dark’)
UX: Clear All segment IP filter after deleting all sessions for specific user IP.
Bug fixes:
Agency: Fix a potential issue with multiDB updating. Make sure you back up multidb-list.php before updating.
Fix a bug in the Visitors screen, where the list of visited pages for a session was out of order when the session had both multiple Events and multiple Tags.
New:
Ask AI: Setting to include chat history. This allows for follow-up questions.
Ask AI: Button to ask the AI to fix the SQL error, if the latest query execution resulted in one.
Added example cron/ust_del_zero_sec_rec.sh that deletes all recordings with 0-second
Bug fixes:
Ask AI: Fix execution query output when selecting data from database that is in a binary format.
New:
Agency: Custom Pages - You can now add buttons to the sidebar that, when clicked, displays the given URL in an iframe within the dashboard. This allows to embed any type of external or local content within the dashboard.
UST.trackNewPage() - New JS API function that triggers a new pageview. Useful for tracking SPA applications. Read more about UST.trackNewPage() in the docs.
Session timeout - If a user leaves your site in a background tab for more than 30 minutes, when they come back to the tab, a new session will be created instead of continuing the previous one. This should reduce the number of very long (1h+) sessions.
Improvements:
Ask AI: Pass current date to AI. Asking questions like “visitors in June” now returns data for June of this year.
Bug fixes:
Possibly fix an updating issue where the integrity hash value for the new version was returning an older cached value, thus preventing the update process.
Potentially fix most issues with long session lengths.
Default recorder - fix ust-rec-ignore and ust-rec-block still recording <select> elements when using the
Default recorder - ust-rec-mask now will also mask select elements. This will actually behave the same as ust-rec-ignore and ust-rec-block when using the default recoder, as masking the selected value will stop it from correctly playing back.
Improvements:
Migrate from Moment.js to Day.js (modern, efficient and better maintained).
Always display full IP in visitors list (if not hashed or censored), instead of only the last 6 characters.
Better handle the downloading of GeoIP databases. Make sure tracking doesn’t break if the GeoIP database is corrupt.
Update GeoIP databases to August 2024 versions.
Add support for the new OpenAI project API keys.
Update JavaScript packages to latest versions.
Bug fixes:
Fixed censorIP sometimes still displaying IP in tooltip.
Other:
Update the feedback/bug report link to: https://feedback.uxwizz.com
Improvements:
Ask AI: Add GPT4o and GPT4o-mini models.
Ask AI: Always display selected model in chat header.
Ask AI: Improve prompts/responses.
UI: Improve consistency - make top countries flags clickable chips.
New:
Multi-domain filtering: The segments header is now also displayed in the main domains page.
You can now dynamically prevent tracking the current session by returning false when overwriting the UST.onTrackingStarted callback.
Improvements:
Updater: Check some files for write permissions before initiating the updater. This reduces instances when the updater would silently fail.
UI: Simplify the stats layout if only the “All” segment is active (hide segment name and segment color).
UI: Redesign Goals block styling to make them more skimmable.
UI: Improve Goals responsive layout for smaller screens.
UI: Increase the font size (+1px) of segment names for better readability.
UI: Improved sidebar spacing and alignment.
UI: Improved responsive breakpoints (mobile layout).
Bug fixes:
Fix (again) trial ending sooner than intended.
New:
Added the ability to upgrade to a different license type (e.g. Company → Agency).
Improvements:
Agency: Implement some workarounds to allow enabling multidb for an existing instance that already had tracked domains.
Preserve equivalent segment colors for all segments when toggling dark/light mode.
Bug fixes:
Agency: Fix total database size usage calculation if multiple domains use the same database.
Improve separator used in GROUP_CONCAT pages list MySQL query.
Fix dashboard crashing if toggling dark mode when more than 7 segments are enabled (because only 7 segment colors are available).
Improvements:
Improve header date selector positioning (show date before segments).
Improve session recordings:
Reduce sessionStorage
data usage used for recording caching.
Fix some recordings missing when visit duration was long.
Reduce session recordings network traffic by ~50%.
Improve client-side recording performance.
Bug fixes:
Fix reset icon positioning in header date selector.
Fix domain icon alignment in sidebar domain selector.
Fix trial ending sooner than intended.
Improvements:
Trial version is now 14 days (instead of seven).
Update some internal node packages minor versions.
Bug fixes:
Fix JSON encoding in the AI response unnecessarily escaping slashes and Unicode characters, making the response hard to read.
Fix PHP 8 notice if a visitor had no tags. (Thanks to Rodrigo for the fix)
Fix selected rows in visitors list after deleting an entry.
Improvements:
Ask AI: If the SQL query fails to execute, display the error message instead of 500 Internal Server Error.
Ask AI: Add a warning banner stating that the returned MySQL queries could be incorrect.
Security:
Ask AI: Add an extra check, to make sure the user has access to the domain they want to chat with the AI about.
New:
🥳 Ask AI: ChatGPT integration: You can ask the AI questions about your data. Learn more about Ask AI in the docs.
Smart auto chart granularity: The granularity of charts automatically switches to a better value (e.g. if you choose to view “last 2 days”, the graph will switch to hourly, if you choose “last 3 years”, the graph will switch to monthly).
Improvements:
Dashboard styling improvements (small UI fixes and dark mode color changes).
Full URL path is now displayed when hovering a page name in the visitors list.
Added more pre-made date range intervals (e.g. last 3 days, last 365 days, last 3 years)
Migrated the visitors table to MaterialReactTable. This introduces new features like column hiding, performance improvements, UI improvements and more.
Bug fixes:
Fix recorded visitors number in domains overview sometimes showing 0 (caching issue).
Other:
Updated TypeScript (v5.0 → 5.4)
Updated MUI (v5.13 → 5.15)
Updated ChartJS (v3 → v4)
Updated i18next (v19 → v23)
Updated various other internal package dependencies.
Updated Licenses and pricing
Updated the refund period to match the advertised one (14 days).
The Agency license now matches the Company license "install on up to 5 servers"
Improved TL;DR; format.
New:
Implemented system to enable support renewal without having to manually contact support.
Created a dashboard to manage and see detailed information about your UXWizz license (will be soon live).
Improvements:
The licensing system has been revamped to be more robust.
Bug fixes:
If your support period is expired, you will see the correct message inside the dashboard instead of “Invalid license”.
Notes:
Until now, you might have been able to access the latest releases without having a valid support/updates period. Unfortunately, this has a major impact on the resources available for the project’s development. If you do like UXWizz and want to speed up the rate of updates, please consider renewing your support period. Each and every sale matters a lot for our small company.
New:
Setting to include or not the URL fragment (#hash part) when saving URLs in the database. Useful for when using a SPA or hash router.
Improvements:
Added a way to expand the list of visited pages in the visitors list.
Show full date, including date of the week, when hovering Events chips and dates in the Visitors list.
Bug fixes:
Fixed number of visited pages count being incorrect in the visitors list when many pages (10+) were visited in a single session.
Fix percentages display overlapping bar in top pages/countries charts.
Fix displayed Events time, when server timezone is different from your timezone.
Fix tag removal when using multi-db.
Improvements:
Considerably improved multiple-domains overview loading performance.
Updated Country and City GeoIP databases for more accurate geolocation.
Bug fixes:
Fix segment header not being displayed on the heatmaps page.
Agency: MultiDB – Fix domain total visitors count not showing properly in the multi-domains overview screen.
Internal Development:
Refactored the entire codebase to remove @material/styling and replaced it with the new MUI v5 sx prop. This made the code cleaner and allows for a quicker component development.
Improvements:
Agency: Added UI for uploading the logo image for the dashboard (instead of having to paste the base64 image string).
Bug fixes:
BUG: Fix dashboard crashing when no domains were added (e.g. after initial setup).
UX: Fix currently selected domain changing to first domain in list when going back to overview.
Minor fixes for some warnings shown in the JS console related to URL routing.
New:
Added pt-BR language (thanks to Rodrigo for submitting it).
Improvements:
Improved domain selector logic/performance.
Bug fixes:
Fixes when the new MultiDB feature is enabled:
Fix A/B tests creation
Fix viewing events
Fix record watched flag
Fix domain selector
Fix adding/removing tags through the interface
Fix domain selector UI sometimes not working.
Improvements:
Better date range picker intervals.
Upgrade internal build package (ParcelJS) to latest version.
New:
Agency: Multi database support - When first setting up the dashboard, you can choose to store the data for each domain in a separate database on the same server.
Agency: Multi database servers support - You can now scale the database for new websites or users by adding multiple database servers. Each new domain tracked can have the data stored on any of the listed database servers. Both those changes together can drastically improve performance, security and privacy.
Improvements:
Updated interface to MUI V5.
Updated internal React to v18 and TypeScript to the latest versions.
Replaced DateRangePicker to the PRO one from MUIX.
Reduced total dashboard app size (by upgrading the ParcelJS bundler to the latest version).
Various small UI fixes and improvements. The UI will be improved even further in v5 (Note: some small UI inconsistencies might still be noticed from the current transition to the new UI framework version).
Bug fixes:
Fix SET_USER_MAX_DOMAINS permission not being properly checked.
Other:
App paths switched to HashRouter: The routing in the dashboard (URLs) has been changed to HashRouter. This was done to remove the need of .htaccess redirects and improve compatibility with NGINX and other webservers that don’t support URL rewrites. Paths will now look like app**/#/visitors** instead of app**/visitors**. If you get a 404 error accessing the dashboard from your browser history or bookmarks, update the saved URL to include the hash symbol.
WordPress:
Fixed a potential warning with undefined $UST_VERSION
Use wp-load.php instead of wp-config.php for database connection, as some managed hosting providers don't provide proper wp-config.php files.
New:
Settings->Privacy - Disable domain favicon loading - Option to disable loading of domains favicons from icons.duckduckgo.com.
Settings->Privacy - Disable new version check - Option to stop the request made on dashboard load to the UXWizz license server that checks whether a new version is available or not.
Improvements:
Replaced dashboard Inter Google Font with local font files.
Replaced dashboard Material Icons Google Font with local font file.
New:
Agency - max domains per user - You can now set a limit on how many domains can an individual user track.
New user permission: CHANGE_OWN_DOMAIN_ACCESS - Level 3 users can now change their own domain access (add/remove domain) without being able to do the same for other users.
Improvements:
UX: Clicking a domain in the users list now opens the domain settings dropdown (limit, tracking pixel info).
Agency: Removed three external links to the UXWizz documentation website in order to better respect the white-label feature. In the future, more documentation will be included locally instead of linking to docs.uxwizz.com.
Bug fixes:
Don't show Add tracker info if domain add failed
New:
New playback controls: session playback can now be paused and sped up by 2x, 4x or 8x.
Improvements:
The default link in the (optional) consent pop-up now leads to a local copy of the privacy-policy instead of the UXWizz documentation.
Bug fixes:
Fix local links in Agency sidebar being relative to server root instead of UXWizz server root.
Fix custom logo in Agency not being used in some locations.
Fix login redirect still not working on some servers where $_SERVER['DOCUMENT_ROOT']
doesn't return the correct path.
Improvements:
The updates settings page and new version notification are now hidden to users that don't have the UPDATE_PLATFORM permission.
Bug fixes:
Fix full-page record playback not working when the recorded page contained the text Error:
.
Fix a React warning logged during playback.
Fix redirect after login being wrong in some server environments.
New:
Agency version - Custom links in sidebar: You can now add custom links/text in sidebar. Use this to link to your website, promote other services, or link to your own customer's portal.
Bug fixes:
Fixed error messages being displayed in the dashboard when the login session expired. Now you are properly redirected to the login page (without having to refresh).
Fixed dashboard long error message when using a license for a different variant than the one installed.
Agency version - Suppress error message when saving settings without adding a custom logo.
Other:
User permissions have been updated. To better separate user roles, now only level 5 users (root) can change the dashboard itself (update, set license key, change tracking settings). Level 4 users (admins) can now also manage user accounts (create/delete users, change domain access). You can not change your own user level. You can not set to others a user level higher than your own.
The current dashboard version is now also stored in the ust_meta
table, with the key VERSION
. This is useful for checking using MySQL which version is currently installed.
New:
City-level IP geolocation. You can now optionally save the city of the visitor in the database. The city is also displayed when you hover the country icon in the visitors list. You can enable city geolocation in the Tracking settings.
Translation: Russian language
Improvements:
Improved client/server timezone management. Previously, if your MySQL server had a different timezone than your local timezone, when you searched for sessions within a date interval, the date will be sent as is to the server for querying which lead to unexpected results. For example, let's assume you searched from the interface for visits on Tuesday at (eg. now being 9AM on Tuesday) and the server timezone was 10h behind your timezone. The query wouldn't have returned any results as for the server it was still Monday. Solution: The time used for querying is now converted to server time. Following the example above, when you search for "visits from Tuesday 00:00 to 23:59" it will convert the query to server time: "visits from Monday 14:00 to Tuesday 13:59" for a 10h behind offset. This will correctly show the sessions on your local Tuesday.
Improve settings text in UI for enabling/disable session recordings to avoid confusion (disabling the "enable full session recordings" setting removes the session playback ability entirely, it does not switch between the default/full tracking systems).
Security:
Fixed a non-critical XSS issue (an arbitrary string could be displayed in a dashboard endpoint response if the request headers were tampered, but if JS was written it wouldn't have been executed).
Bug fixes:
Fix a case where session playback would not start.
New:
🥳 Goals: A segment can now be converted to a goal. Goals help you find the amount of and conversion rates for specific user behaviors within specific user segments. Learn more about goals in the docs.
Improvements:
Clicking on a country icon now adds it to the current segment.
Clicking on a page in Top pages now adds it to the current segment.
Improve stats screen styling for better readability.
Improve segment menu styling.
Update internal JS packages to their latest minor versions.
Improve segment header layout and transition for different screen sizes.
Improved tooltips consistency for elements that can be used as segment filters (e.g. country icon, referral chip, user IP, etc.)
Bug fixes:
Fix a bug where sometimes adding a segment filter would add it to the wrong segment.
Fix segment header layout when many segments are saved.