From f05aa0829bac847db648027d5a4ab793b565873d Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Mon, 23 Feb 2026 15:18:34 -0800 Subject: [PATCH 1/2] Add tracking_token to Device request object This adds the optional tracking_token attribute to the Device request object for explicit device linking via the Device Tracking Add-on. Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 7 +++++++ README.md | 1 + lib/minfraud/components/device.rb | 7 +++++++ spec/components/device_spec.rb | 6 ++++++ 4 files changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f190dcc7..4b3adfcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## v2.11.0 + +* Added the `tracking_token` attribute to `Minfraud::Components::Device`. + This is the token generated by the + [Device Tracking Add-on](https://dev.maxmind.com/minfraud/track-devices) + for explicit device linking. + ## v2.10.0 * Added the processors `:banquest`, `:summit_payments`, and `:yaadpay` to diff --git a/README.md b/README.md index 2d13359d..be0e7d99 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ assessment = Minfraud::Assessments.new( accept_language: 'en-US,en;q=0.8', session_age: 3600.5, session_id: 'foo', + tracking_token: 'abc123', user_agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36', }, event: { diff --git a/lib/minfraud/components/device.rb b/lib/minfraud/components/device.rb index c067c4ba..cb9a44b4 100644 --- a/lib/minfraud/components/device.rb +++ b/lib/minfraud/components/device.rb @@ -40,6 +40,12 @@ class Device < Base # @return [String, nil] attr_accessor :session_id + # The token generated by the Device Tracking Add-on for explicit + # device linking. + # + # @return [String, nil] + attr_accessor :tracking_token + # @param params [Hash] Hash of parameters. Each key/value should # correspond to one of the available attributes. def initialize(params = {}) @@ -48,6 +54,7 @@ def initialize(params = {}) @accept_language = params[:accept_language] @session_age = params[:session_age] @session_id = params[:session_id] + @tracking_token = params[:tracking_token] validate end diff --git a/spec/components/device_spec.rb b/spec/components/device_spec.rb index 9b7fbffc..63a4b6d9 100644 --- a/spec/components/device_spec.rb +++ b/spec/components/device_spec.rb @@ -59,5 +59,11 @@ session_age: 100, ) end + + it 'does not raise an exception for a valid tracking_token' do + described_class.new( + tracking_token: 'abc123', + ) + end end end From 3a53fbcd68c2d10a682d6dba654e94fcdfe6fa31 Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Wed, 25 Feb 2026 13:18:54 -0800 Subject: [PATCH 2/2] Don't unnecessarily bump version --- CHANGELOG.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b3adfcb..9840f868 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,11 @@ # Changelog -## v2.11.0 +## v2.10.0 * Added the `tracking_token` attribute to `Minfraud::Components::Device`. This is the token generated by the [Device Tracking Add-on](https://dev.maxmind.com/minfraud/track-devices) for explicit device linking. - -## v2.10.0 - * Added the processors `:banquest`, `:summit_payments`, and `:yaadpay` to `Minfraud::Components::Payment`. * Unnecessary files were removed from the published .gem.