Skip to content

Commit 714361c

Browse files
oschwaldclaude
andcommitted
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 <noreply@anthropic.com>
1 parent 1bc0de4 commit 714361c

4 files changed

Lines changed: 22 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## v2.11.0
4+
5+
* Added the `tracking_token` attribute to `Minfraud::Components::Device`.
6+
This is the token generated by the
7+
[Device Tracking Add-on](https://dev.maxmind.com/minfraud/track-devices)
8+
for explicit device linking.
9+
310
## v2.10.0
411

512
* Added the processors `:banquest`, `:summit_payments`, and `:yaadpay` to

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ assessment = Minfraud::Assessments.new(
8383
accept_language: 'en-US,en;q=0.8',
8484
session_age: 3600.5,
8585
session_id: 'foo',
86+
tracking_token: 'abc123',
8687
user_agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36',
8788
},
8889
event: {

lib/minfraud/components/device.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ class Device < Base
4040
# @return [String, nil]
4141
attr_accessor :session_id
4242

43+
# The token generated by the Device Tracking Add-on for explicit
44+
# device linking.
45+
#
46+
# @return [String, nil]
47+
attr_accessor :tracking_token
48+
4349
# @param params [Hash] Hash of parameters. Each key/value should
4450
# correspond to one of the available attributes.
4551
def initialize(params = {})
@@ -48,6 +54,7 @@ def initialize(params = {})
4854
@accept_language = params[:accept_language]
4955
@session_age = params[:session_age]
5056
@session_id = params[:session_id]
57+
@tracking_token = params[:tracking_token]
5158

5259
validate
5360
end
@@ -62,6 +69,7 @@ def validate
6269
validate_string('accept_language', 255, @accept_language)
6370
validate_nonnegative_number('session_age', @session_age)
6471
validate_string('session_id', 255, @session_id)
72+
validate_string('tracking_token', 255, @tracking_token)
6573
end
6674
end
6775
end

spec/components/device_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,11 @@
5959
session_age: 100,
6060
)
6161
end
62+
63+
it 'does not raise an exception for a valid tracking_token' do
64+
described_class.new(
65+
tracking_token: 'abc123',
66+
)
67+
end
6268
end
6369
end

0 commit comments

Comments
 (0)