github umami-software/umami v2.18.0

latest releases: v2.19.0, v2.18.1
4 months ago

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('bob@aol.com');

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": "bob@aol.com"
  },
  "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

Don't miss a new umami release

NewReleases is sending notifications on new releases.