Skip to content

Releases: snowplow/snowplow-javascript-tracker

Version 4.0.1

01 Nov 10:40
Compare
Choose a tag to compare

4.0.1 (2024-11-01)

This patch release fixes an issue in the HTML5 media tracking plugin in that it didn't correctly initialize and failed to track events.

Bug fixes

  • Fix initialization of the HTML5 media tracking plugin so that it initializes the parent media plugin (#1369)

Under the hood

  • Fix broken API docs generation by adding explicit type for EventStoreIteratorNextResult (#1367)

Version 4.0.0

28 Oct 11:54
Compare
Choose a tag to compare

4.0.0 (2024-10-28)

The release adopts the fetch API for making requests to the Snowplow collector which provides the keepalive option that enables requests to outlive the webpage they were made from.

Performance of the track calls has been improved by making cookie writes async. Our benchmarks show this improves the time it takes to track 100 events to a third of what it was in v3.

The tracker APIs have been significantly improved and simplified:

  • Form and link click tracking now support event delegation and don’t require the app to refresh the tracking after page changes.
  • It’s now easier to manage global context using named tags.
  • Plugins add a new filter function to enable skipping events.
  • The tracker API on Node.JS has been significantly revised and streamlined also thanks to the use of the fetch API.

Other changes include the YouTube and HTML5 media plugins adopting new media schemas, upgrades to the UUID package, revised defaults, and removal and deprecation of older plugins.

Enhancements

  • Use fetch API instead of XMLHttpRequest both in browser and Node trackers and refactor emitter and event store interfaces (#1076)
  • Make cookie writes async by default to improve tracker performance (#1340)
  • Fix message when a resource triggers errors (#1341)
  • Add event delegation for form tracking (#1329)
  • Add support for named global context (#1331)
  • Add a filter function to plugins to filter out events so that they are not tracked (#1326)
  • Add event delegation for link click tracking (#1325)
  • Add browser-tracker-core default for os_timezone (#1338)
  • Revise Node.js initialization API
  • Migrate to v2 Media for HTML5 Plugin (#1344)
  • Migrate to v2 Media for YouTube plugin (#1342)
  • Support events on buttons/links/forms in ShadowDOMs (#1351)
  • Use capture-phase listeners for button click tracking (#1348)
  • Switch to GA4 as default for gaCookies plugin (#1349)
  • Disable b64 for SDJ data on POST requests from browsers by default (#1352)
  • Update discoverRootDomain default behaviour (#1350)

Removed deprecated functionality

  • Remove browser-features, optimizely, ecommerce and consent plugins, deprecate enhanced ecommerce and performance timing plugins and add web vitals by default (#1345)
  • Revise default plugins included on the JavaScript tracker (#1147)

Upgraded internals

  • Update uuid package dependency to version 10.0.0 (#1305)
  • Update browser targets for compilation (#1131, #1132)
  • Update Node.js to v14 (#1129, #1130)

Other improvements and fixes

  • Change default tracker initialization parameters for JS/Browser v4 (#1144)
  • Fix SelfDescribingJson type to allow optional keys in type parameter (#1330)
  • Fix newTracker optional typing (#1237)
  • Fix newTracker typing to accurately return null or undefined (#1167)
  • Read the request response to avoid overlapping requests to collector (#1358)

Version 3.24.6

28 Oct 10:29
Compare
Choose a tag to compare

3.24.6 (2024-10-28)

This release addresses a problem with validation errors for the browser context entity in case browsers reported 0 width and height.

Bug fixes

  • Allow 0x0 viewport in browser context to avoid schema validation errors (#1365)

Version 3.24.5

25 Oct 08:58
Compare
Choose a tag to compare

3.24.5 (2024-10-25)

This patch release fixes a problem with removing global context generator functions in case multiple were used.

Bug fixes

  • Fix removal of context generator functions (#1361)

Version 4.0.0-beta.4

22 Oct 05:25
Compare
Choose a tag to compare
Version 4.0.0-beta.4 Pre-release
Pre-release

4.0.0-beta.4 (2024-10-22)

Enhancements

  • Read the request response to avoid overlapping requests to collector (#1358)
  • Update uuid package dependency to version 10.0.0 (#1305)

Version 4.0.0-beta.3

18 Oct 09:45
Compare
Choose a tag to compare
Version 4.0.0-beta.3 Pre-release
Pre-release

4.0.0-beta.3 (2024-10-18)

Enhancements

  • Enable batching multiple events into a single POST request over buffer size if maxPostBytes setting is followed (#1356)
  • Make base64 encoding an optional parameter in Node newTracker call (#1354)

Version 4.0.0-beta.2

15 Oct 06:28
Compare
Choose a tag to compare
Version 4.0.0-beta.2 Pre-release
Pre-release

4.0.0-beta.2 (2024-10-15)

Enhancements

  • Migrate to v2 Medai for HTML5 Plugin (#1344)
  • Migrate to v2 Media for YouTube plugin (#1342)
  • Support events on buttons/links/forms in ShadowDOMs (#1351)
  • Use capture-phase listeners for button click tracking (#1348)
  • Switch to GA4 as default for gaCookies plugin (#1349)
  • Disable b64 for SDJ data on POST requests from browsers by default (#1352)
  • Update discoverRootDomain default behaviour (#1350)

Bug fixes

  • Fix SelfDescribingJson type regression from #1330 (#1347)
  • Fix GA cookies unit tests broken by #1349 (#1353)

Version 4.0.0-beta.1

03 Oct 12:58
Compare
Choose a tag to compare
Version 4.0.0-beta.1 Pre-release
Pre-release

4.0.0-beta.1 (2024-10-03)

Enhancements

  • Use fetch API instead of XMLHttpRequest both in browser and Node trackers and refactor emitter and event store interfaces (#1076)
  • Make cookie writes async by default to improve tracker performance (#1340)
  • Fix message when a resource triggers errors (#1341)
  • Add event delegation for form tracking (#1329)
  • Add support for named global context (#1331)
  • Add a filter function to plugins to filter out events so that they are not tracked (#1326)
  • Add event delegation for link click tracking (#1325)
  • Add browser-tracker-core default for os_timezone (#1338)
  • Revise Node.js initialization API

Removed deprecated functionality

  • Remove browser-features, optimizely, ecommerce and consent plugins, deprecate enhanced ecommerce and performance timing plugins and add web vitals by default (#1345)
  • Revise default plugins included on the JavaScript tracker (#1147)

Upgraded internals

Other improvements and fixes

  • Change default tracker initialization parameters for JS/Browser v4 (#1144)
  • Fix SelfDescribingJson type to allow optional keys in type parameter (#1330)
  • Fix newTracker optional typing (#1237)
  • Fix newTracker typing to accurately return null or undefined (#1167)

Version 3.24.4

26 Sep 06:16
Compare
Choose a tag to compare

3.24.4 (2024-09-26)

This patch release fixes an issue in the optimizely-x plugin to handle incorrectly populated state.

Bug fixes

  • Handle optimizely.get not yet existing (#1343)

Under the hood

  • Update version of upload-artifact action to v4
  • Skip YouTube integration tests since they are blocked on SauceLabs

Version 3.24.3

03 Sep 08:21
Compare
Choose a tag to compare

3.24.3 (2024-09-03)

This release updates the supported versions of Node.JS during the build of the project to 18 to 20 LTS.

Under the hood

  • Upgrade supported Node.JS versions in build to 18 - 20 and upgrade rush
  • Upgrade pnpm to 9.7.1
  • Remove node-fetch from dev dependencies