oursprivacy-ingest 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8cdcde9b61ee37a6cd1eb19ecb8e4444a9d8a910678ff4c8134ed064dd391b17
4
- data.tar.gz: 3edc160e7d78d29da1ac5140356e4e94db135dc18be4afd7dd268c80e2b24dec
3
+ metadata.gz: d23eb81e41813ee04947b2d1a04f410bf7b8198b2d958ae79042ca379162e62c
4
+ data.tar.gz: e8a0964d9d45ad11a6a2cc5dd44be08af26382036c5c95e6d6790aacd75f4817
5
5
  SHA512:
6
- metadata.gz: 9640276478ee03a778fb897b401840d005418ac4bf7dd3dd1cc44ab2a6dc7deb27e2157f386c04ba38cd0389242f0e95f96807749c22fd425a91c5303b3bbe97
7
- data.tar.gz: 8fdf075be4fc764fbe36ff172251aa8a7c96fcb0fa39f840e46bdddc29e6776ed89f5ec138f7ed46d02facf9c35b2cdc93dea0e4386761ed5d7c20578a9e1fcc
6
+ metadata.gz: 2e933d84b08922ee6f9885e9fadb991b4d237a97ed77be3b2672d1e6e59564b1f15e5f9a761cb572fddb1af0c4ccc393137f9b51eccfe371dc1fe6b0661ab75c
7
+ data.tar.gz: c9575d16b3128719b6aac612889144486685e7894835970a813ccd2258090668507e5e8e50d48dcdfb6bd648d421d6d1b8e2da4bcbeb856bcb9a470bc356f482
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.6.0 (2026-05-07)
4
+
5
+ Full Changelog: [v1.5.0...v1.6.0](https://github.com/with-ours/ingest-sdk-ruby/compare/v1.5.0...v1.6.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([c54431d](https://github.com/with-ours/ingest-sdk-ruby/commit/c54431d5d205b735a570afa625a3b8e4bdd8c67d))
10
+
11
+ ## 1.5.0 (2026-05-06)
12
+
13
+ Full Changelog: [v1.4.0...v1.5.0](https://github.com/with-ours/ingest-sdk-ruby/compare/v1.4.0...v1.5.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([70e698d](https://github.com/with-ours/ingest-sdk-ruby/commit/70e698d9524677ef21e236253598ef7d52babbe7))
18
+
3
19
  ## 1.4.0 (2026-05-06)
4
20
 
5
21
  Full Changelog: [v1.3.0...v1.4.0](https://github.com/with-ours/ingest-sdk-ruby/compare/v1.3.0...v1.4.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "oursprivacy-ingest", "~> 1.4.0"
20
+ gem "oursprivacy-ingest", "~> 1.6.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -28,6 +28,15 @@ module OursprivacyIngest
28
28
  # @param request_options [OursprivacyIngest::RequestOptions, Hash{Symbol=>Object}]
29
29
 
30
30
  class Event < OursprivacyIngest::Internal::Type::BaseModel
31
+ # @!attribute distinct_id
32
+ # A unique identifier for this event used for deduplication. Highly recommended —
33
+ # if omitted, Ours will generate one for you, but supplying your own gives you
34
+ # stronger idempotency guarantees (e.g. a Stripe payment intent ID or your
35
+ # internal order ID).
36
+ #
37
+ # @return [String]
38
+ required :distinct_id, String, api_name: :distinctId
39
+
31
40
  # @!attribute event
32
41
  # The name of the event you're tracking. This must be whitelisted in the Ours
33
42
  # dashboard.
@@ -35,12 +44,6 @@ module OursprivacyIngest
35
44
  # @return [String]
36
45
  required :event, String
37
46
 
38
- # @!attribute token
39
- # The token for your Source. You can find this in the dashboard.
40
- #
41
- # @return [String, nil]
42
- optional :token, String
43
-
44
47
  # @!attribute default_properties
45
48
  # These properties are used throughout the Ours app to pass known values onto
46
49
  # destinations
@@ -51,16 +54,10 @@ module OursprivacyIngest
51
54
  api_name: :defaultProperties,
52
55
  nil?: true
53
56
 
54
- # @!attribute distinct_id
55
- # A unique identifier for the event. This helps prevent duplicate events.
56
- #
57
- # @return [String, nil]
58
- optional :distinct_id, String, api_name: :distinctId, nil?: true
59
-
60
57
  # @!attribute email
61
- # The email address of a user. We will associate this event with the user or
62
- # create a user. Used for lookup if externalId and userId are not included in the
63
- # request.
58
+ # The email address of a user. Used as a fallback lookup when neither userId nor
59
+ # externalId is provided. We search your account for a visitor with this email and
60
+ # attach the event to them. If no match is found, a new visitor is created.
64
61
  #
65
62
  # @return [String, nil]
66
63
  optional :email, String, nil?: true
@@ -75,9 +72,11 @@ module OursprivacyIngest
75
72
  nil?: true
76
73
 
77
74
  # @!attribute external_id
78
- # The externalId (the ID in your system) of a user. We will associate this event
79
- # with the user or create a user. If included in the request, email lookup is
80
- # ignored.
75
+ # Your system's unique identifier for this user. We search your account for an
76
+ # existing visitor with this externalId and attach the event to them (resolving to
77
+ # their Ours Visitor ID). If no match is found, a new visitor is created. When
78
+ # present, email lookup is skipped. If you also have the userId from cookies or
79
+ # local storage, send both — it removes the lookup round-trip.
81
80
  #
82
81
  # @return [String, nil]
83
82
  optional :external_id, String, api_name: :externalId, nil?: true
@@ -101,9 +100,10 @@ module OursprivacyIngest
101
100
  optional :time, Float, nil?: true
102
101
 
103
102
  # @!attribute user_id
104
- # The Ours user id stored in local storage and cookies on your web properties. If
105
- # userId is included in the request, we do not lookup the user by email or
106
- # externalId.
103
+ # The Ours Visitor ID stored in local storage and cookies on your web properties.
104
+ # When present, this is used directly no lookup by externalId or email is
105
+ # performed. If you have both a userId and an externalId, send both so the event
106
+ # is attached to the right visitor without any lookup overhead.
107
107
  #
108
108
  # @return [String, nil]
109
109
  optional :user_id, String, api_name: :userId, nil?: true
@@ -118,29 +118,27 @@ module OursprivacyIngest
118
118
  api_name: :userProperties,
119
119
  nil?: true
120
120
 
121
- # @!method initialize(event:, token: nil, default_properties: nil, distinct_id: nil, email: nil, event_properties: nil, external_id: nil, identity_context: nil, time: nil, user_id: nil, user_properties: nil)
121
+ # @!method initialize(distinct_id:, event:, default_properties: nil, email: nil, event_properties: nil, external_id: nil, identity_context: nil, time: nil, user_id: nil, user_properties: nil)
122
122
  # Some parameter documentations has been truncated, see
123
123
  # {OursprivacyIngest::Models::BatchCreateParams::Event} for more details.
124
124
  #
125
- # @param event [String] The name of the event you're tracking. This must be whitelisted in the Ours dash
125
+ # @param distinct_id [String] A unique identifier for this event used for deduplication. Highly recommended
126
126
  #
127
- # @param token [String] The token for your Source. You can find this in the dashboard.
127
+ # @param event [String] The name of the event you're tracking. This must be whitelisted in the Ours dash
128
128
  #
129
129
  # @param default_properties [OursprivacyIngest::Models::BatchCreateParams::Event::DefaultProperties, nil] These properties are used throughout the Ours app to pass known values onto dest
130
130
  #
131
- # @param distinct_id [String, nil] A unique identifier for the event. This helps prevent duplicate events.
132
- #
133
- # @param email [String, nil] The email address of a user. We will associate this event with the user or creat
131
+ # @param email [String, nil] The email address of a user. Used as a fallback lookup when neither userId nor e
134
132
  #
135
133
  # @param event_properties [Hash{Symbol=>String, nil}, nil] Any additional event properties you want to pass along.
136
134
  #
137
- # @param external_id [String, nil] The externalId (the ID in your system) of a user. We will associate this event w
135
+ # @param external_id [String, nil] Your system's unique identifier for this user. We search your account for an exi
138
136
  #
139
137
  # @param identity_context [OursprivacyIngest::Models::BatchCreateParams::Event::IdentityContext, nil] End-user network context for server-side calls. Required for probabilistic ident
140
138
  #
141
139
  # @param time [Float, nil] The time at which the event occurred in milliseconds since UTC epoch. The time m
142
140
  #
143
- # @param user_id [String, nil] The Ours user id stored in local storage and cookies on your web properties. If
141
+ # @param user_id [String, nil] The Ours Visitor ID stored in local storage and cookies on your web properties.
144
142
  #
145
143
  # @param user_properties [OursprivacyIngest::Models::BatchCreateParams::Event::UserProperties, nil] Properties to set on the visitor. (optional) You can also update these propertie
146
144
 
@@ -11,70 +11,112 @@ module OursprivacyIngest
11
11
 
12
12
  # @!attribute failed
13
13
  #
14
- # @return [Float, OursprivacyIngest::Models::BatchCreateResponse::Failed]
15
- required :failed, enum: -> { OursprivacyIngest::Models::BatchCreateResponse::Failed }
14
+ # @return [Integer]
15
+ required :failed, Integer
16
16
 
17
17
  # @!attribute results
18
18
  #
19
- # @return [Array<OursprivacyIngest::Models::BatchCreateResponse::Result>]
19
+ # @return [Array<OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember0, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1>]
20
20
  required :results,
21
- -> { OursprivacyIngest::Internal::Type::ArrayOf[OursprivacyIngest::Models::BatchCreateResponse::Result] }
21
+ -> { OursprivacyIngest::Internal::Type::ArrayOf[union: OursprivacyIngest::Models::BatchCreateResponse::Result] }
22
22
 
23
23
  # @!attribute success
24
24
  #
25
- # @return [Boolean, OursprivacyIngest::Models::BatchCreateResponse::Success]
26
- required :success, enum: -> { OursprivacyIngest::Models::BatchCreateResponse::Success }
25
+ # @return [Boolean]
26
+ required :success, OursprivacyIngest::Internal::Type::Boolean
27
27
 
28
28
  # @!method initialize(accepted:, failed:, results:, success:)
29
29
  # @param accepted [Integer]
30
- # @param failed [Float, OursprivacyIngest::Models::BatchCreateResponse::Failed]
31
- # @param results [Array<OursprivacyIngest::Models::BatchCreateResponse::Result>]
32
- # @param success [Boolean, OursprivacyIngest::Models::BatchCreateResponse::Success]
30
+ # @param failed [Integer]
31
+ # @param results [Array<OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember0, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1>]
32
+ # @param success [Boolean]
33
33
 
34
- # @see OursprivacyIngest::Models::BatchCreateResponse#failed
35
- module Failed
36
- extend OursprivacyIngest::Internal::Type::Enum
34
+ module Result
35
+ extend OursprivacyIngest::Internal::Type::Union
37
36
 
38
- FAILED_0 = 0
37
+ variant -> { OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember0 }
39
38
 
40
- # @!method self.values
41
- # @return [Array<Float>]
42
- end
39
+ variant -> { OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1 }
43
40
 
44
- class Result < OursprivacyIngest::Internal::Type::BaseModel
45
- # @!attribute index
46
- #
47
- # @return [Integer]
48
- required :index, Integer
41
+ class UnionMember0 < OursprivacyIngest::Internal::Type::BaseModel
42
+ # @!attribute index
43
+ #
44
+ # @return [Integer]
45
+ required :index, Integer
49
46
 
50
- # @!attribute success
51
- #
52
- # @return [Boolean, OursprivacyIngest::Models::BatchCreateResponse::Result::Success]
53
- required :success, enum: -> { OursprivacyIngest::Models::BatchCreateResponse::Result::Success }
47
+ # @!attribute success
48
+ #
49
+ # @return [Boolean, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember0::Success]
50
+ required :success,
51
+ enum: -> { OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember0::Success }
54
52
 
55
- # @!method initialize(index:, success:)
56
- # @param index [Integer]
57
- # @param success [Boolean, OursprivacyIngest::Models::BatchCreateResponse::Result::Success]
53
+ # @!method initialize(index:, success:)
54
+ # @param index [Integer]
55
+ # @param success [Boolean, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember0::Success]
58
56
 
59
- # @see OursprivacyIngest::Models::BatchCreateResponse::Result#success
60
- module Success
61
- extend OursprivacyIngest::Internal::Type::Enum
57
+ # @see OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember0#success
58
+ module Success
59
+ extend OursprivacyIngest::Internal::Type::Enum
62
60
 
63
- TRUE = true
61
+ TRUE = true
64
62
 
65
- # @!method self.values
66
- # @return [Array<Boolean>]
63
+ # @!method self.values
64
+ # @return [Array<Boolean>]
65
+ end
67
66
  end
68
- end
69
67
 
70
- # @see OursprivacyIngest::Models::BatchCreateResponse#success
71
- module Success
72
- extend OursprivacyIngest::Internal::Type::Enum
73
-
74
- TRUE = true
68
+ class UnionMember1 < OursprivacyIngest::Internal::Type::BaseModel
69
+ # @!attribute code
70
+ #
71
+ # @return [Symbol, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1::Code]
72
+ required :code, enum: -> { OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1::Code }
73
+
74
+ # @!attribute index
75
+ #
76
+ # @return [Integer]
77
+ required :index, Integer
78
+
79
+ # @!attribute message
80
+ #
81
+ # @return [String]
82
+ required :message, String
83
+
84
+ # @!attribute success
85
+ #
86
+ # @return [Boolean, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1::Success]
87
+ required :success,
88
+ enum: -> { OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1::Success }
89
+
90
+ # @!method initialize(code:, index:, message:, success:)
91
+ # @param code [Symbol, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1::Code]
92
+ # @param index [Integer]
93
+ # @param message [String]
94
+ # @param success [Boolean, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1::Success]
95
+
96
+ # @see OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1#code
97
+ module Code
98
+ extend OursprivacyIngest::Internal::Type::Enum
99
+
100
+ INVALID_EVENT = :invalid_event
101
+ QUEUE_FAILED = :queue_failed
102
+
103
+ # @!method self.values
104
+ # @return [Array<Symbol>]
105
+ end
106
+
107
+ # @see OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1#success
108
+ module Success
109
+ extend OursprivacyIngest::Internal::Type::Enum
110
+
111
+ FALSE = false
112
+
113
+ # @!method self.values
114
+ # @return [Array<Boolean>]
115
+ end
116
+ end
75
117
 
76
- # @!method self.values
77
- # @return [Array<Boolean>]
118
+ # @!method self.variants
119
+ # @return [Array(OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember0, OursprivacyIngest::Models::BatchCreateResponse::Result::UnionMember1)]
78
120
  end
79
121
  end
80
122
  end
@@ -31,15 +31,18 @@ module OursprivacyIngest
31
31
  nil?: true
32
32
 
33
33
  # @!attribute distinct_id
34
- # A unique identifier for the event. This helps prevent duplicate events.
34
+ # A unique identifier for this event used for deduplication. Highly recommended —
35
+ # if omitted, Ours will generate one for you, but supplying your own gives you
36
+ # stronger idempotency guarantees (e.g. a Stripe payment intent ID or your
37
+ # internal order ID).
35
38
  #
36
39
  # @return [String, nil]
37
40
  optional :distinct_id, String, api_name: :distinctId, nil?: true
38
41
 
39
42
  # @!attribute email
40
- # The email address of a user. We will associate this event with the user or
41
- # create a user. Used for lookup if externalId and userId are not included in the
42
- # request.
43
+ # The email address of a user. Used as a fallback lookup when neither userId nor
44
+ # externalId is provided. We search your account for a visitor with this email and
45
+ # attach the event to them. If no match is found, a new visitor is created.
43
46
  #
44
47
  # @return [String, nil]
45
48
  optional :email, String, nil?: true
@@ -54,9 +57,11 @@ module OursprivacyIngest
54
57
  nil?: true
55
58
 
56
59
  # @!attribute external_id
57
- # The externalId (the ID in your system) of a user. We will associate this event
58
- # with the user or create a user. If included in the request, email lookup is
59
- # ignored.
60
+ # Your system's unique identifier for this user. We search your account for an
61
+ # existing visitor with this externalId and attach the event to them (resolving to
62
+ # their Ours Visitor ID). If no match is found, a new visitor is created. When
63
+ # present, email lookup is skipped. If you also have the userId from cookies or
64
+ # local storage, send both — it removes the lookup round-trip.
60
65
  #
61
66
  # @return [String, nil]
62
67
  optional :external_id, String, api_name: :externalId, nil?: true
@@ -80,9 +85,10 @@ module OursprivacyIngest
80
85
  optional :time, Float, nil?: true
81
86
 
82
87
  # @!attribute user_id
83
- # The Ours user id stored in local storage and cookies on your web properties. If
84
- # userId is included in the request, we do not lookup the user by email or
85
- # externalId.
88
+ # The Ours Visitor ID stored in local storage and cookies on your web properties.
89
+ # When present, this is used directly no lookup by externalId or email is
90
+ # performed. If you have both a userId and an externalId, send both so the event
91
+ # is attached to the right visitor without any lookup overhead.
86
92
  #
87
93
  # @return [String, nil]
88
94
  optional :user_id, String, api_name: :userId, nil?: true
@@ -107,19 +113,19 @@ module OursprivacyIngest
107
113
  #
108
114
  # @param default_properties [OursprivacyIngest::Models::TrackEventParams::DefaultProperties, nil] These properties are used throughout the Ours app to pass known values onto dest
109
115
  #
110
- # @param distinct_id [String, nil] A unique identifier for the event. This helps prevent duplicate events.
116
+ # @param distinct_id [String, nil] A unique identifier for this event used for deduplication. Highly recommended —
111
117
  #
112
- # @param email [String, nil] The email address of a user. We will associate this event with the user or creat
118
+ # @param email [String, nil] The email address of a user. Used as a fallback lookup when neither userId nor e
113
119
  #
114
120
  # @param event_properties [Hash{Symbol=>String, nil}, nil] Any additional event properties you want to pass along.
115
121
  #
116
- # @param external_id [String, nil] The externalId (the ID in your system) of a user. We will associate this event w
122
+ # @param external_id [String, nil] Your system's unique identifier for this user. We search your account for an exi
117
123
  #
118
124
  # @param identity_context [OursprivacyIngest::Models::TrackEventParams::IdentityContext, nil] End-user network context for server-side calls. Required for probabilistic ident
119
125
  #
120
126
  # @param time [Float, nil] The time at which the event occurred in milliseconds since UTC epoch. The time m
121
127
  #
122
- # @param user_id [String, nil] The Ours user id stored in local storage and cookies on your web properties. If
128
+ # @param user_id [String, nil] The Ours Visitor ID stored in local storage and cookies on your web properties.
123
129
  #
124
130
  # @param user_properties [OursprivacyIngest::Models::TrackEventParams::UserProperties, nil] Properties to set on the visitor. (optional) You can also update these propertie
125
131
  #
@@ -34,17 +34,19 @@ module OursprivacyIngest
34
34
  nil?: true
35
35
 
36
36
  # @!attribute email
37
- # The email address of a user. We will associate this event with the user or
38
- # create a user. Used for lookup if externalId and userId are not included in the
39
- # request.
37
+ # The email address of a user. Used as a fallback lookup when neither userId nor
38
+ # externalId is provided. We search your account for a visitor with this email and
39
+ # attach the event to them. If no match is found, a new visitor is created.
40
40
  #
41
41
  # @return [String, nil]
42
42
  optional :email, String, nil?: true
43
43
 
44
44
  # @!attribute external_id
45
- # The externalId (the ID in your system) of a user. We will associate this event
46
- # with the user or create a user. If included in the request, email lookup is
47
- # ignored.
45
+ # Your system's unique identifier for this user. We search your account for an
46
+ # existing visitor with this externalId and attach the event to them (resolving to
47
+ # their Ours Visitor ID). If no match is found, a new visitor is created. When
48
+ # present, email lookup is skipped. If you also have the userId from cookies or
49
+ # local storage, send both — it removes the lookup round-trip.
48
50
  #
49
51
  # @return [String, nil]
50
52
  optional :external_id, String, api_name: :externalId, nil?: true
@@ -61,9 +63,10 @@ module OursprivacyIngest
61
63
  nil?: true
62
64
 
63
65
  # @!attribute user_id
64
- # The Ours user id stored in local storage and cookies on your web properties. If
65
- # userId is included in the request, we do not lookup the user by email or
66
- # externalId.
66
+ # The Ours Visitor ID stored in local storage and cookies on your web properties.
67
+ # When present, this is used directly no lookup by externalId or email is
68
+ # performed. If you have both a userId and an externalId, send both so the event
69
+ # is attached to the right visitor without any lookup overhead.
67
70
  #
68
71
  # @return [String, nil]
69
72
  optional :user_id, String, api_name: :userId, nil?: true
@@ -78,13 +81,13 @@ module OursprivacyIngest
78
81
  #
79
82
  # @param default_properties [OursprivacyIngest::Models::VisitorUpsertParams::DefaultProperties, nil] These properties are used throughout the Ours app to pass known values onto dest
80
83
  #
81
- # @param email [String, nil] The email address of a user. We will associate this event with the user or creat
84
+ # @param email [String, nil] The email address of a user. Used as a fallback lookup when neither userId nor e
82
85
  #
83
- # @param external_id [String, nil] The externalId (the ID in your system) of a user. We will associate this event w
86
+ # @param external_id [String, nil] Your system's unique identifier for this user. We search your account for an exi
84
87
  #
85
88
  # @param identity_context [OursprivacyIngest::Models::VisitorUpsertParams::IdentityContext, nil] End-user network context for server-side calls. Required for probabilistic ident
86
89
  #
87
- # @param user_id [String, nil] The Ours user id stored in local storage and cookies on your web properties. If
90
+ # @param user_id [String, nil] The Ours Visitor ID stored in local storage and cookies on your web properties.
88
91
  #
89
92
  # @param request_options [OursprivacyIngest::RequestOptions, Hash{Symbol=>Object}]
90
93
 
@@ -6,10 +6,12 @@ module OursprivacyIngest
6
6
  # Some parameter documentations has been truncated, see
7
7
  # {OursprivacyIngest::Models::TrackEventParams} for more details.
8
8
  #
9
- # Track events from your server. Please include at least one of: userId,
10
- # externalId, or email. These properties help us associate events with existing
11
- # users. For top-level visitor properties: null clears the existing value, while
12
- # undefined, omitted fields, and empty strings are ignored. For entries inside
9
+ # Track events from your server. Include at least one of userId, externalId, or
10
+ # email so the event can be associated with a visitor. Identity resolution runs in
11
+ # priority order: userId (direct, no lookup) externalId (lookup by your ID) →
12
+ # email (fallback lookup). If you know both userId and externalId, send both. For
13
+ # top-level visitor properties: null clears the existing value, while undefined,
14
+ # omitted fields, and empty strings are ignored. For entries inside
13
15
  # custom_properties: null, undefined, and empty strings are all ignored
14
16
  # (custom_properties use merge semantics). See
15
17
  # https://docs.oursprivacy.com/docs/data-types for details and common pitfalls.
@@ -22,19 +24,19 @@ module OursprivacyIngest
22
24
  #
23
25
  # @param default_properties [OursprivacyIngest::Models::TrackEventParams::DefaultProperties, nil] These properties are used throughout the Ours app to pass known values onto dest
24
26
  #
25
- # @param distinct_id [String, nil] A unique identifier for the event. This helps prevent duplicate events.
27
+ # @param distinct_id [String, nil] A unique identifier for this event used for deduplication. Highly recommended —
26
28
  #
27
- # @param email [String, nil] The email address of a user. We will associate this event with the user or creat
29
+ # @param email [String, nil] The email address of a user. Used as a fallback lookup when neither userId nor e
28
30
  #
29
31
  # @param event_properties [Hash{Symbol=>String, nil}, nil] Any additional event properties you want to pass along.
30
32
  #
31
- # @param external_id [String, nil] The externalId (the ID in your system) of a user. We will associate this event w
33
+ # @param external_id [String, nil] Your system's unique identifier for this user. We search your account for an exi
32
34
  #
33
35
  # @param identity_context [OursprivacyIngest::Models::TrackEventParams::IdentityContext, nil] End-user network context for server-side calls. Required for probabilistic ident
34
36
  #
35
37
  # @param time [Float, nil] The time at which the event occurred in milliseconds since UTC epoch. The time m
36
38
  #
37
- # @param user_id [String, nil] The Ours user id stored in local storage and cookies on your web properties. If
39
+ # @param user_id [String, nil] The Ours Visitor ID stored in local storage and cookies on your web properties.
38
40
  #
39
41
  # @param user_properties [OursprivacyIngest::Models::TrackEventParams::UserProperties, nil] Properties to set on the visitor. (optional) You can also update these propertie
40
42
  #
@@ -6,12 +6,15 @@ module OursprivacyIngest
6
6
  # Some parameter documentations has been truncated, see
7
7
  # {OursprivacyIngest::Models::VisitorUpsertParams} for more details.
8
8
  #
9
- # Define visitor properties on an existing visitor or create a new visitor. This
10
- # fires a $identify event, making the call visible in the event stream. For
11
- # top-level visitor properties: null clears the existing value, while undefined,
12
- # omitted fields, and empty strings are ignored. For entries inside
13
- # custom_properties: null, undefined, and empty strings are all ignored
14
- # (custom_properties use merge semantics). See
9
+ # Set or update properties on an existing visitor, or create a new visitor if no
10
+ # match is found. This fires a $identify event, making the call visible in the
11
+ # event stream. Identity resolution runs in priority order: userId (direct, no
12
+ # lookup) externalId (lookup by your ID) → email (fallback lookup). When a
13
+ # visitor is found, their Ours Visitor ID is used going forward so all future
14
+ # events are attached to the same profile. For top-level visitor properties: null
15
+ # clears the existing value, while undefined, omitted fields, and empty strings
16
+ # are ignored. For entries inside custom_properties: null, undefined, and empty
17
+ # strings are all ignored (custom_properties use merge semantics). See
15
18
  # https://docs.oursprivacy.com/docs/data-types for details and common pitfalls.
16
19
  #
17
20
  # @overload upsert(token:, user_properties:, default_properties: nil, email: nil, external_id: nil, identity_context: nil, user_id: nil, request_options: {})
@@ -22,13 +25,13 @@ module OursprivacyIngest
22
25
  #
23
26
  # @param default_properties [OursprivacyIngest::Models::VisitorUpsertParams::DefaultProperties, nil] These properties are used throughout the Ours app to pass known values onto dest
24
27
  #
25
- # @param email [String, nil] The email address of a user. We will associate this event with the user or creat
28
+ # @param email [String, nil] The email address of a user. Used as a fallback lookup when neither userId nor e
26
29
  #
27
- # @param external_id [String, nil] The externalId (the ID in your system) of a user. We will associate this event w
30
+ # @param external_id [String, nil] Your system's unique identifier for this user. We search your account for an exi
28
31
  #
29
32
  # @param identity_context [OursprivacyIngest::Models::VisitorUpsertParams::IdentityContext, nil] End-user network context for server-side calls. Required for probabilistic ident
30
33
  #
31
- # @param user_id [String, nil] The Ours user id stored in local storage and cookies on your web properties. If
34
+ # @param user_id [String, nil] The Ours Visitor ID stored in local storage and cookies on your web properties.
32
35
  #
33
36
  # @param request_options [OursprivacyIngest::RequestOptions, Hash{Symbol=>Object}, nil]
34
37
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OursprivacyIngest
4
- VERSION = "1.4.0"
4
+ VERSION = "1.6.0"
5
5
  end