Skip to content

Releases: umami-software/umami

v2.19.0

27 Jul 22:25
60eaaaf
Compare
Choose a tag to compare

Today we're excited to release Umami v2.19.0! This will likely be the final release of the v2 series as we prepare for v3. In this release, we are preparing the underlying tables for the v3 migration.

Features

Data export

You can now export data directly from the UI. On the overview page, there is a download button that will get all the stats from the current page.

image

Additionally, you can download individual stats from different sections and from reports. All data returned is in CSV format.

image

Event properties chart/table view

You can now view custom event properties as a chart or as a table.

image

Migrations

This release includes a migration to create a new table for holding revenue data.

If you have any revenue data, you will need to run the migration under scripts/data-migrations/populate-revenue-table.sql.

Fixes

  • Fixed environment variables so they work in Docker at runtime #3412
  • Fixed malformed frameAncestors #3494
  • Added keepalive to tracker fetch #3489
  • Improved performance of send #3469
  • URL hash is not included in record #3445

Updates

  • Language updates: Vietnamese, Arabic
  • Upgraded Next to 15.3.3
  • Upgrade Prisma to 6.7.0

Thanks

@vedantbhavsar26 @sancho1952007 @sufyanfa @eoussama @abcsnoob @basbroek @vicke4 @AlexEscalante @alasjo @Sov3rain @KrakenWagen @querry43 @Nambers @ruchernchong @monyasau

v2.18.1

12 May 07:16
Compare
Choose a tag to compare

Fixes

  • Incorrect Channel Metrics caused by missing ReferrerQuery data #3403
  • BASE_PATH issue with set-routes-manifest.js #3402
  • Migrate data script for postgresql fails #3401
  • Minutes not showing on realtime graph #3396
  • Identify returns a 400 #3409

Thanks

@tsykin @Maxime-J

v2.18.0

08 May 07:14
Compare
Choose a tag to compare

Features

Attribution report

The new Attribution report allows you to trace the source origin of a user so that you can measure the effectiveness of your ad campaigns and optimize your spend. This report also integrates revenue data so you can see which channels contribute the most to your sales.

Read docs.

image

Distinct ID

We are introducing a new property for sessions called the distinct ID. This is a new parameter that lets you assign a ID to a session to help you identify a user later.

To set a distinct ID, use the umami.identify method from the tracker.

umami.identify('[email protected]');

In a server environment, you would send an event payload with a id parameter.

{
  "payload": {
    "hostname": "your-hostname",
    "language": "en-US",
    "referrer": "",
    "screen": "1920x1080",
    "title": "dashboard",
    "url": "/",
    "website": "your-website-id",
    "id": "[email protected]"
  },
  "type": "event"
}

You can then search the distinct ID from the Sessions screen.

image

Read docs.

data-before-send attribute

We are introducing a new tracker attribute data-before-send that let's you define a function that will be called before data is sent. You can then inspect and modify the payload or cancel the send entirely. The function will take two parameters, type and payload. To continue with sending, you return a payload object. To cancel the send, return a false-y value.

First, define the function to be called.

function beforeSendHandler(type, payload) {
  if (checkPayload(payload)) {
    return payload;
  }
  return false;
}

Then pass the name of the function using the data-before-send attribute.

<script defer
  src="/script.js"
  data-website-id="7801d46c-afd2-424c-8680-4ea713b2002a"
  data-before-send="beforeSendHandler"></script>

Events chart filtering

You can now filter custom events by clicking on an item in the events table.

umami2

Alternative host for icons

The default host we use for displaying website favicons is icons.duckduckgo.com. Now you can use an alternative host with the environment variable FAVICON_URL. You need to pass a string with a token to replace the domain name. For example:

https://icons.duckduckgo.com/ip3/{{domain}}.ico

Some alternatives you can use:

https://www.google.com/s2/favicons?domain={{domain}}
https://logo.clearbit.com/{{domain}}

Migrations

This release includes some database migrations that add new columns for handling UTM parameters. The migrations will
automatically run during the build process.

The migrations will only apply the new schema but not do any migration of old data. The reason for this is we didn't
want to hang up the build process for users with lots of data. Instead we will be providing scripts that you can run to migrate your
data separately.

To migrate your data for this release, use the SQL for your database from here

Fixes

  • Empty event search #3329
  • Realtime activity details not listed from newest to oldest #3330
  • POST /api/auth/very Method not allowed | Outdated documentation? #3339
  • Null region breaks Insights Report #3344
  • Docker middleware #3357
  • CORS errors in Docker #3307
  • API requests are ignored if User-Agent is empty #3337
  • Referrer data displayed in every table #3284
  • Realtime View Graph and Activity are not in sync #3244

Updates

  • Upgraded Next to 15.3.1
  • Upgraded Prisma to 6.7.0

Thanks

@harryo @Cibiyanna26 @YoSev @Maxime-J @perso182 @astappiev @thomasdn @YektaDev @gjelbrim

v2.17.0

08 Mar 06:08
Compare
Choose a tag to compare

Features

Batch send

You can now send data in batches, for example when trying to import a lot of data through the API. Instead of sending a single payload object, you would send an array of objects. It will be processed by the same logic from /api/send. To use this feature, you would make a POST request to /api/batch.

Payload overrides

When you send a request to /api/send, Umami pulls data from the request such as user-agent and IP address. Now you can provide your own values in the payload. This is useful when you're sending from a server or mobile environment where you are not using a web browser. The values you can provide are:

  • ip: IP address. Note that when you send a custom IP address, the normal geo headers from hosts like Vercel and Cloudflare are ignored and a local lookup will be made to get the country and city data.
  • userAgent: User agent string. Note this must be in a valid format or your request might be flagged as a bot.
  • timestamp: UNIX timestamp in seconds. If passed in, Umami will record the data with the given timestamp instead of the current time.

Do Not Track

You can respect users DNT setting by adding the parameter data-do-not-track=true on your tracker script.

Fixes

  • Error when filtering using referrer #3255
  • CORS headers missing from custom endpoints. #3281
  • Journey report regression #3268
  • Hostname is not allowed 127.0.0.1 #3279
  • Grouped referrers shows incorrect values #3257

Updates

  • Improved paid ad channel detection #3270

Thanks

@shrutesh1 @harryo @zeroCoder1 @Maxime-J

v2.16.1

22 Feb 05:23
2e84fc6
Compare
Choose a tag to compare

Fixes

  • Create user error #3247
  • Channels not working #3245

Updates

  • Updated languages: Indonesian

Thanks

@Rikthepixel @Dexalt142 @zcraber

v2.16.0

21 Feb 05:33
b6e5438
Compare
Choose a tag to compare

Features

Channels

We added a new view called Channels which shows you how your traffic is divided up. This is also where you can see your direct traffic (no referrer).

image

Grouped referrers

There is also a new view for seeing grouped referrers. So domains like google.com, google.es, google.co.uk all get grouped under the category Google.

image

Ignore URL hashes

If you don't want to track hash values in the URL, you can now set an attribute on the tracker tag, data-exclude-hash=true.

Updates

  • Language updates: Mongolian, Persian (Farsi), Spanish
  • Prisma upgraded to v6.1.0

Fixes

  • Event tracking on links with target=_top are broken #3187
  • Custom filtering triggers invalid query #3154
  • Issue with User Role in Redis Authentication #3213
  • Session creation soft-lock #3188
  • Funnel report does not work for events with spaces in their name #3171

Thanks

@mamal72 @appuchias @iffa @bilguun0203 @harryo @ahocevar @murtazabaanihali

v2.15.1

15 Dec 00:47
Compare
Choose a tag to compare

This is a hotfix release for MySQL and ARM users. If v2.15.0 is working for you, you don't need this.

Fixes

  • Fixed OpenSSL issue with Prisma #3107 #3115
  • Fixed charts not rendering in MySQL #3114

v2.15.0

13 Dec 04:55
35068d3
Compare
Choose a tag to compare

Features

The funnel report now allows partial matching for URLs. You can add * to the start and/or end of the text. In this example, we're seeing if users triggered ANY event with "button" in the name.

image

You can now properly search on city, region and country names. Before you had to lookup by ISO codes because that is what is stored in the database.

image

It even works with localized names.

image

Fixes

  • Fixed unicode characters in location names #3106
  • Fixed websiteId missing error #2614
  • Fixed favicon issue with www subdomains #3073

Updates

  • Language updates: Chinese, Japanese, Norweigan
  • Upgraded Next to v15.0.4
  • Upgraded Prisma to v5.22.0

Thank you

@Maxime-J @bparmentier @ccrvlh @mxbeer @PeterDaveHello @God-2077 @Kilian @blt950 @pawelromanskidajar @milk1000cc

v2.14.0

22 Nov 02:52
d76603b
Compare
Choose a tag to compare

Features

Revenue report

We added a new report that allows you to track revenue. Simply send a custom event with revenue data and it will start tracking. Learn more.

image

Improved dashboard

In the dashboard, you are now able to select which websites you want to appear, not just the order. Simply toggle the ones you want visible and the rest will be hidden. If none are toggled then all the websites will appear just like before. We also fixed an issue where you couldn't see all your websites if you had too many. Additionally you can now search for websites on the dashboard edit screen.

image

Hash based routing support

We now record hashes in URLs for websites that use hashed based routing.

Redirect to team

Umami now redirects to your last selected team on login.

Fixes

  • Fixed dashboard editing #3048
  • Fixed unknown countries #3054
  • Fixed mobile display issue #3039
  • Fixed wrong events count #2980
  • Fixed display of event properties #2928
  • Fixed session data not deleting #2915

Updates

  • Language updates (German, French, Russian, Czech, German - Switzerland)
  • Added minor version tags to Docker images
  • Allow underscores in subdomains
  • Added cache control headers for tracker script

Thank you

@quiple @konstantintutsch @Quadrubo @xuserz @peter-kuhmann @yArna @Brawl345 @fra-iesus @ZerGo0 @rafaelschranz @DDDDD12138 @ruchernchong @sigmazz @michaelpayne02 @chelsey-g @mooxl @eremannisto

v2.13.2

28 Aug 02:49
e881735
Compare
Choose a tag to compare

Fixes

  • Fixed incorrect referrer #2765
  • Fixed chart rendering issues #2918
  • Fixed metrics changes not appearing on dashboard #2902
  • Fixed strings #2914

Updates

  • Language updates: German, Catalan, Korean

Thank you

@konstantintutsch @gerardnll @quiple