From 2673fffa3b90cd1e443ab07e2816acbf37657c2f Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Mon, 23 Feb 2026 15:18:43 -0800 Subject: [PATCH] Add trackingToken to Device request object This adds the optional trackingToken field to the Device request object for explicit device linking via the Device Tracking Add-on. Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 8 ++++++++ README.md | 1 + src/request/device.spec.ts | 8 ++++++++ src/request/device.ts | 7 +++++++ 4 files changed, 24 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4211683e..714e9767 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ CHANGELOG ========= +8.4.0 +------------------ + +* Added the input `/device/tracking_token`. This is the token generated by + the [Device Tracking Add-on](https://dev.maxmind.com/minfraud/track-devices) + for explicit device linking. You may provide this by providing + `trackingToken` to `Device`. + 8.3.0 (2026-01-20) ------------------ diff --git a/README.md b/README.md index ae993c43..981313db 100644 --- a/README.md +++ b/README.md @@ -179,6 +179,7 @@ try { transaction = new minFraud.Transaction({ device: new minFraud.Device({ ipAddress: "81.2.69.160", + trackingToken: "abc123", }), event: new minFraud.Event({ party: minFraud.Constants.EventParty.Customer, diff --git a/src/request/device.spec.ts b/src/request/device.spec.ts index 64d2d924..487555de 100644 --- a/src/request/device.spec.ts +++ b/src/request/device.spec.ts @@ -27,4 +27,12 @@ describe('Device()', () => { }); }).not.toThrow(); }); + + it('sets trackingToken correctly', () => { + const device = new Device({ + ipAddress: '1.1.1.1', + trackingToken: 'abc123', + }); + expect(device.trackingToken).toBe('abc123'); + }); }); diff --git a/src/request/device.ts b/src/request/device.ts index 9f8c0dcb..d2edd7f2 100644 --- a/src/request/device.ts +++ b/src/request/device.ts @@ -26,6 +26,11 @@ interface DeviceProps { * identifies a visitor's session on the site. */ sessionId?: string; + /** + * The tracking token from the Device Tracking Add-on for explicit device + * linking. + */ + trackingToken?: string; } /** @@ -42,6 +47,8 @@ export default class Device implements DeviceProps { public sessionAge?: number; /** @inheritDoc DeviceProps.sessionId */ public sessionId?: string; + /** @inheritDoc DeviceProps.trackingToken */ + public trackingToken?: string; public constructor(device: DeviceProps) { if (device.ipAddress != null && isIP(device.ipAddress) === 0) {