diff --git a/CHANGELOG.md b/CHANGELOG.md index f190dcc..9840f86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## 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. * Added the processors `:banquest`, `:summit_payments`, and `:yaadpay` to `Minfraud::Components::Payment`. * Unnecessary files were removed from the published .gem. diff --git a/README.md b/README.md index 2d13359..be0e7d9 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 c067c4b..cb9a44b 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 9b7fbff..63a4b6d 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