oursprivacy-ingest 1.5.0 → 1.7.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: 7ed1b63854906efe0f462b08eaf8cb9de0ff4a4586e13ce25159e54371939947
4
- data.tar.gz: 0531b08a511ed70b76b42a47d2541dfdf11fc388cce6b0a03f53f8f8017d3cde
3
+ metadata.gz: 58ab60818e804371f1f03601d65833bc11e8f5ed9698706d889181bb783b687f
4
+ data.tar.gz: 5857962996b22619663cde42083aa722f98be269735473771343811d30fd9821
5
5
  SHA512:
6
- metadata.gz: e629ea80c262196d7cf71ccf58a9ed7dcbc6ea633e7c89863a344dbc8dd24c48dcd58ce18881842989aa85986c62b3c8ff1d393b88eaec7a43444b4dc0dce7aa
7
- data.tar.gz: fca70c8d6c4c831dd2a624d409e244ebabe7ed4865de14b55aad2c5b9e4f3152d7c7ed5dde54e0f7507fa6a1a73fb97e96dbe9ffa677940eb3b65c3e9719bafe
6
+ metadata.gz: bde8ec9eb06b0e56ef71dad7e28cb1ba5525806890af099a08006617247ba9e2ae3312fd74a9e4f255e1e1146ea0262f387e142994e5683a4398cd37739236c1
7
+ data.tar.gz: 61803bff65a065a1c8272195597c00840090a1289744da95fd2657b814b499a920c0b158efd2df860f6de795ad25a7e534c5883606fbf92727b8848e64e2e922
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.7.0 (2026-05-08)
4
+
5
+ Full Changelog: [v1.6.0...v1.7.0](https://github.com/with-ours/ingest-sdk-ruby/compare/v1.6.0...v1.7.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([356be54](https://github.com/with-ours/ingest-sdk-ruby/commit/356be5482b0ac292331685dba21a31e91a0f9d02))
10
+
11
+ ## 1.6.0 (2026-05-07)
12
+
13
+ Full Changelog: [v1.5.0...v1.6.0](https://github.com/with-ours/ingest-sdk-ruby/compare/v1.5.0...v1.6.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([c54431d](https://github.com/with-ours/ingest-sdk-ruby/commit/c54431d5d205b735a570afa625a3b8e4bdd8c67d))
18
+
3
19
  ## 1.5.0 (2026-05-06)
4
20
 
5
21
  Full Changelog: [v1.4.0...v1.5.0](https://github.com/with-ours/ingest-sdk-ruby/compare/v1.4.0...v1.5.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.5.0"
20
+ gem "oursprivacy-ingest", "~> 1.7.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -29,7 +29,10 @@ module OursprivacyIngest
29
29
 
30
30
  class Event < OursprivacyIngest::Internal::Type::BaseModel
31
31
  # @!attribute distinct_id
32
- # A unique identifier for the event. This helps prevent duplicate events.
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).
33
36
  #
34
37
  # @return [String]
35
38
  required :distinct_id, String, api_name: :distinctId
@@ -52,9 +55,9 @@ module OursprivacyIngest
52
55
  nil?: true
53
56
 
54
57
  # @!attribute email
55
- # The email address of a user. We will associate this event with the user or
56
- # create a user. Used for lookup if externalId and userId are not included in the
57
- # 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.
58
61
  #
59
62
  # @return [String, nil]
60
63
  optional :email, String, nil?: true
@@ -69,9 +72,11 @@ module OursprivacyIngest
69
72
  nil?: true
70
73
 
71
74
  # @!attribute external_id
72
- # The externalId (the ID in your system) of a user. We will associate this event
73
- # with the user or create a user. If included in the request, email lookup is
74
- # 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.
75
80
  #
76
81
  # @return [String, nil]
77
82
  optional :external_id, String, api_name: :externalId, nil?: true
@@ -95,9 +100,10 @@ module OursprivacyIngest
95
100
  optional :time, Float, nil?: true
96
101
 
97
102
  # @!attribute user_id
98
- # The Ours user id stored in local storage and cookies on your web properties. If
99
- # userId is included in the request, we do not lookup the user by email or
100
- # 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.
101
107
  #
102
108
  # @return [String, nil]
103
109
  optional :user_id, String, api_name: :userId, nil?: true
@@ -116,28 +122,35 @@ module OursprivacyIngest
116
122
  # Some parameter documentations has been truncated, see
117
123
  # {OursprivacyIngest::Models::BatchCreateParams::Event} for more details.
118
124
  #
119
- # @param distinct_id [String] A unique identifier for the event. This helps prevent duplicate events.
125
+ # @param distinct_id [String] A unique identifier for this event used for deduplication. Highly recommended —
120
126
  #
121
127
  # @param event [String] The name of the event you're tracking. This must be whitelisted in the Ours dash
122
128
  #
123
129
  # @param default_properties [OursprivacyIngest::Models::BatchCreateParams::Event::DefaultProperties, nil] These properties are used throughout the Ours app to pass known values onto dest
124
130
  #
125
- # @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
126
132
  #
127
133
  # @param event_properties [Hash{Symbol=>String, nil}, nil] Any additional event properties you want to pass along.
128
134
  #
129
- # @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
130
136
  #
131
137
  # @param identity_context [OursprivacyIngest::Models::BatchCreateParams::Event::IdentityContext, nil] End-user network context for server-side calls. Required for probabilistic ident
132
138
  #
133
139
  # @param time [Float, nil] The time at which the event occurred in milliseconds since UTC epoch. The time m
134
140
  #
135
- # @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.
136
142
  #
137
143
  # @param user_properties [OursprivacyIngest::Models::BatchCreateParams::Event::UserProperties, nil] Properties to set on the visitor. (optional) You can also update these propertie
138
144
 
139
145
  # @see OursprivacyIngest::Models::BatchCreateParams::Event#default_properties
140
146
  class DefaultProperties < OursprivacyIngest::Internal::Type::BaseModel
147
+ # @!attribute _ef_transaction_id
148
+ # The Everflow affiliate Click (Transaction) ID, captured from the
149
+ # `_ef_transaction_id` URL parameter. Ex: ef_click_abc123
150
+ #
151
+ # @return [String, nil]
152
+ optional :_ef_transaction_id, String, nil?: true
153
+
141
154
  # @!attribute active_duration
142
155
  # The active time in milliseconds that the user had this tab active
143
156
  #
@@ -577,7 +590,7 @@ module OursprivacyIngest
577
590
  # @return [Boolean, nil]
578
591
  optional :webview, OursprivacyIngest::Internal::Type::Boolean, nil?: true
579
592
 
580
- # @!method initialize(active_duration: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, browser_language: nil, browser_name: nil, browser_version: nil, campaign_id: nil, clickid: nil, clid: nil, cpu_architecture: nil, current_url: nil, dclid: nil, device_model: nil, device_type: nil, device_vendor: nil, duration: nil, encoding: nil, engine_name: nil, engine_version: nil, epik: nil, fbc: nil, fbclid: nil, fbp: nil, fv: nil, gad_source: nil, gbraid: nil, gclid: nil, host: nil, iframe: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, new_s: nil, os_name: nil, os_version: nil, page_hash: nil, pathname: nil, qclid: nil, rdt_cid: nil, received_at: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, screen_height: nil, screen_width: nil, session_count: nil, sid: nil, sr: nil, title: nil, ttclid: nil, twclid: nil, uafvl: nil, user_agent: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, version: nil, wbraid: nil, webview: nil)
593
+ # @!method initialize(_ef_transaction_id: nil, active_duration: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, browser_language: nil, browser_name: nil, browser_version: nil, campaign_id: nil, clickid: nil, clid: nil, cpu_architecture: nil, current_url: nil, dclid: nil, device_model: nil, device_type: nil, device_vendor: nil, duration: nil, encoding: nil, engine_name: nil, engine_version: nil, epik: nil, fbc: nil, fbclid: nil, fbp: nil, fv: nil, gad_source: nil, gbraid: nil, gclid: nil, host: nil, iframe: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, new_s: nil, os_name: nil, os_version: nil, page_hash: nil, pathname: nil, qclid: nil, rdt_cid: nil, received_at: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, screen_height: nil, screen_width: nil, session_count: nil, sid: nil, sr: nil, title: nil, ttclid: nil, twclid: nil, uafvl: nil, user_agent: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, version: nil, wbraid: nil, webview: nil)
581
594
  # Some parameter documentations has been truncated, see
582
595
  # {OursprivacyIngest::Models::BatchCreateParams::Event::DefaultProperties} for
583
596
  # more details.
@@ -585,6 +598,9 @@ module OursprivacyIngest
585
598
  # These properties are used throughout the Ours app to pass known values onto
586
599
  # destinations
587
600
  #
601
+ # @param _ef_transaction_id [String, nil] The Everflow affiliate Click (Transaction) ID, captured from the
602
+ # `\_ef_transactio
603
+ #
588
604
  # @param active_duration [Float, nil] The active time in milliseconds that the user had this tab active
589
605
  #
590
606
  # @param ad_id [String, nil] The ad id for detected in the session. This is set by the web sdk automatically.
@@ -756,6 +772,11 @@ module OursprivacyIngest
756
772
 
757
773
  # @see OursprivacyIngest::Models::BatchCreateParams::Event#user_properties
758
774
  class UserProperties < OursprivacyIngest::Internal::Type::BaseModel
775
+ # @!attribute _ef_transaction_id
776
+ #
777
+ # @return [String, nil]
778
+ optional :_ef_transaction_id, String, nil?: true
779
+
759
780
  # @!attribute ad_id
760
781
  #
761
782
  # @return [String, nil]
@@ -1049,10 +1070,12 @@ module OursprivacyIngest
1049
1070
  # @return [String, nil]
1050
1071
  optional :zip, String, nil?: true
1051
1072
 
1052
- # @!method initialize(ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, campaign_id: nil, city: nil, clickid: nil, clid: nil, company_name: nil, consent: nil, country: nil, custom_properties: nil, date_of_birth: nil, dclid: nil, email: nil, epik: nil, external_id: nil, fbc: nil, fbclid: nil, fbp: nil, first_name: nil, gad_source: nil, gbraid: nil, gclid: nil, gender: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, job_title: nil, last_name: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, phone_number: nil, qclid: nil, rdt_cid: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, sid: nil, state: nil, ttclid: nil, twclid: nil, user_agent: nil, user_agent_full_list: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, wbraid: nil, zip: nil)
1073
+ # @!method initialize(_ef_transaction_id: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, campaign_id: nil, city: nil, clickid: nil, clid: nil, company_name: nil, consent: nil, country: nil, custom_properties: nil, date_of_birth: nil, dclid: nil, email: nil, epik: nil, external_id: nil, fbc: nil, fbclid: nil, fbp: nil, first_name: nil, gad_source: nil, gbraid: nil, gclid: nil, gender: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, job_title: nil, last_name: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, phone_number: nil, qclid: nil, rdt_cid: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, sid: nil, state: nil, ttclid: nil, twclid: nil, user_agent: nil, user_agent_full_list: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, wbraid: nil, zip: nil)
1053
1074
  # Properties to set on the visitor. (optional) You can also update these
1054
1075
  # properties via the identify endpoint.
1055
1076
  #
1077
+ # @param _ef_transaction_id [String, nil]
1078
+ #
1056
1079
  # @param ad_id [String, nil]
1057
1080
  #
1058
1081
  # @param admitad_uid [String, nil]
@@ -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,25 +113,32 @@ 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
  #
126
132
  # @param request_options [OursprivacyIngest::RequestOptions, Hash{Symbol=>Object}]
127
133
 
128
134
  class DefaultProperties < OursprivacyIngest::Internal::Type::BaseModel
135
+ # @!attribute _ef_transaction_id
136
+ # The Everflow affiliate Click (Transaction) ID, captured from the
137
+ # `_ef_transaction_id` URL parameter. Ex: ef_click_abc123
138
+ #
139
+ # @return [String, nil]
140
+ optional :_ef_transaction_id, String, nil?: true
141
+
129
142
  # @!attribute active_duration
130
143
  # The active time in milliseconds that the user had this tab active
131
144
  #
@@ -565,7 +578,7 @@ module OursprivacyIngest
565
578
  # @return [Boolean, nil]
566
579
  optional :webview, OursprivacyIngest::Internal::Type::Boolean, nil?: true
567
580
 
568
- # @!method initialize(active_duration: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, browser_language: nil, browser_name: nil, browser_version: nil, campaign_id: nil, clickid: nil, clid: nil, cpu_architecture: nil, current_url: nil, dclid: nil, device_model: nil, device_type: nil, device_vendor: nil, duration: nil, encoding: nil, engine_name: nil, engine_version: nil, epik: nil, fbc: nil, fbclid: nil, fbp: nil, fv: nil, gad_source: nil, gbraid: nil, gclid: nil, host: nil, iframe: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, new_s: nil, os_name: nil, os_version: nil, page_hash: nil, pathname: nil, qclid: nil, rdt_cid: nil, received_at: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, screen_height: nil, screen_width: nil, session_count: nil, sid: nil, sr: nil, title: nil, ttclid: nil, twclid: nil, uafvl: nil, user_agent: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, version: nil, wbraid: nil, webview: nil)
581
+ # @!method initialize(_ef_transaction_id: nil, active_duration: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, browser_language: nil, browser_name: nil, browser_version: nil, campaign_id: nil, clickid: nil, clid: nil, cpu_architecture: nil, current_url: nil, dclid: nil, device_model: nil, device_type: nil, device_vendor: nil, duration: nil, encoding: nil, engine_name: nil, engine_version: nil, epik: nil, fbc: nil, fbclid: nil, fbp: nil, fv: nil, gad_source: nil, gbraid: nil, gclid: nil, host: nil, iframe: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, new_s: nil, os_name: nil, os_version: nil, page_hash: nil, pathname: nil, qclid: nil, rdt_cid: nil, received_at: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, screen_height: nil, screen_width: nil, session_count: nil, sid: nil, sr: nil, title: nil, ttclid: nil, twclid: nil, uafvl: nil, user_agent: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, version: nil, wbraid: nil, webview: nil)
569
582
  # Some parameter documentations has been truncated, see
570
583
  # {OursprivacyIngest::Models::TrackEventParams::DefaultProperties} for more
571
584
  # details.
@@ -573,6 +586,9 @@ module OursprivacyIngest
573
586
  # These properties are used throughout the Ours app to pass known values onto
574
587
  # destinations
575
588
  #
589
+ # @param _ef_transaction_id [String, nil] The Everflow affiliate Click (Transaction) ID, captured from the
590
+ # `\_ef_transactio
591
+ #
576
592
  # @param active_duration [Float, nil] The active time in milliseconds that the user had this tab active
577
593
  #
578
594
  # @param ad_id [String, nil] The ad id for detected in the session. This is set by the web sdk automatically.
@@ -742,6 +758,11 @@ module OursprivacyIngest
742
758
  end
743
759
 
744
760
  class UserProperties < OursprivacyIngest::Internal::Type::BaseModel
761
+ # @!attribute _ef_transaction_id
762
+ #
763
+ # @return [String, nil]
764
+ optional :_ef_transaction_id, String, nil?: true
765
+
745
766
  # @!attribute ad_id
746
767
  #
747
768
  # @return [String, nil]
@@ -1033,10 +1054,12 @@ module OursprivacyIngest
1033
1054
  # @return [String, nil]
1034
1055
  optional :zip, String, nil?: true
1035
1056
 
1036
- # @!method initialize(ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, campaign_id: nil, city: nil, clickid: nil, clid: nil, company_name: nil, consent: nil, country: nil, custom_properties: nil, date_of_birth: nil, dclid: nil, email: nil, epik: nil, external_id: nil, fbc: nil, fbclid: nil, fbp: nil, first_name: nil, gad_source: nil, gbraid: nil, gclid: nil, gender: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, job_title: nil, last_name: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, phone_number: nil, qclid: nil, rdt_cid: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, sid: nil, state: nil, ttclid: nil, twclid: nil, user_agent: nil, user_agent_full_list: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, wbraid: nil, zip: nil)
1057
+ # @!method initialize(_ef_transaction_id: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, campaign_id: nil, city: nil, clickid: nil, clid: nil, company_name: nil, consent: nil, country: nil, custom_properties: nil, date_of_birth: nil, dclid: nil, email: nil, epik: nil, external_id: nil, fbc: nil, fbclid: nil, fbp: nil, first_name: nil, gad_source: nil, gbraid: nil, gclid: nil, gender: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, job_title: nil, last_name: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, phone_number: nil, qclid: nil, rdt_cid: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, sid: nil, state: nil, ttclid: nil, twclid: nil, user_agent: nil, user_agent_full_list: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, wbraid: nil, zip: nil)
1037
1058
  # Properties to set on the visitor. (optional) You can also update these
1038
1059
  # properties via the identify endpoint.
1039
1060
  #
1061
+ # @param _ef_transaction_id [String, nil]
1062
+ #
1040
1063
  # @param ad_id [String, nil]
1041
1064
  #
1042
1065
  # @param admitad_uid [String, nil]
@@ -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,17 +81,22 @@ 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
 
91
94
  class UserProperties < OursprivacyIngest::Internal::Type::BaseModel
95
+ # @!attribute _ef_transaction_id
96
+ #
97
+ # @return [String, nil]
98
+ optional :_ef_transaction_id, String, nil?: true
99
+
92
100
  # @!attribute ad_id
93
101
  #
94
102
  # @return [String, nil]
@@ -380,11 +388,13 @@ module OursprivacyIngest
380
388
  # @return [String, nil]
381
389
  optional :zip, String, nil?: true
382
390
 
383
- # @!method initialize(ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, campaign_id: nil, city: nil, clickid: nil, clid: nil, company_name: nil, consent: nil, country: nil, custom_properties: nil, date_of_birth: nil, dclid: nil, email: nil, epik: nil, external_id: nil, fbc: nil, fbclid: nil, fbp: nil, first_name: nil, gad_source: nil, gbraid: nil, gclid: nil, gender: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, job_title: nil, last_name: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, phone_number: nil, qclid: nil, rdt_cid: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, sid: nil, state: nil, ttclid: nil, twclid: nil, user_agent: nil, user_agent_full_list: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, wbraid: nil, zip: nil)
391
+ # @!method initialize(_ef_transaction_id: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, campaign_id: nil, city: nil, clickid: nil, clid: nil, company_name: nil, consent: nil, country: nil, custom_properties: nil, date_of_birth: nil, dclid: nil, email: nil, epik: nil, external_id: nil, fbc: nil, fbclid: nil, fbp: nil, first_name: nil, gad_source: nil, gbraid: nil, gclid: nil, gender: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, job_title: nil, last_name: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, phone_number: nil, qclid: nil, rdt_cid: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, sid: nil, state: nil, ttclid: nil, twclid: nil, user_agent: nil, user_agent_full_list: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, wbraid: nil, zip: nil)
384
392
  # User properties to associate with this user. The existing user properties will
385
393
  # be updated. And all future events will have these properties associated with
386
394
  # them.
387
395
  #
396
+ # @param _ef_transaction_id [String, nil]
397
+ #
388
398
  # @param ad_id [String, nil]
389
399
  #
390
400
  # @param admitad_uid [String, nil]
@@ -503,6 +513,13 @@ module OursprivacyIngest
503
513
  end
504
514
 
505
515
  class DefaultProperties < OursprivacyIngest::Internal::Type::BaseModel
516
+ # @!attribute _ef_transaction_id
517
+ # The Everflow affiliate Click (Transaction) ID, captured from the
518
+ # `_ef_transaction_id` URL parameter. Ex: ef_click_abc123
519
+ #
520
+ # @return [String, nil]
521
+ optional :_ef_transaction_id, String, nil?: true
522
+
506
523
  # @!attribute active_duration
507
524
  # The active time in milliseconds that the user had this tab active
508
525
  #
@@ -942,7 +959,7 @@ module OursprivacyIngest
942
959
  # @return [Boolean, nil]
943
960
  optional :webview, OursprivacyIngest::Internal::Type::Boolean, nil?: true
944
961
 
945
- # @!method initialize(active_duration: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, browser_language: nil, browser_name: nil, browser_version: nil, campaign_id: nil, clickid: nil, clid: nil, cpu_architecture: nil, current_url: nil, dclid: nil, device_model: nil, device_type: nil, device_vendor: nil, duration: nil, encoding: nil, engine_name: nil, engine_version: nil, epik: nil, fbc: nil, fbclid: nil, fbp: nil, fv: nil, gad_source: nil, gbraid: nil, gclid: nil, host: nil, iframe: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, new_s: nil, os_name: nil, os_version: nil, page_hash: nil, pathname: nil, qclid: nil, rdt_cid: nil, received_at: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, screen_height: nil, screen_width: nil, session_count: nil, sid: nil, sr: nil, title: nil, ttclid: nil, twclid: nil, uafvl: nil, user_agent: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, version: nil, wbraid: nil, webview: nil)
962
+ # @!method initialize(_ef_transaction_id: nil, active_duration: nil, ad_id: nil, admitad_uid: nil, adset_id: nil, alart: nil, aleid: nil, axwrt: nil, basis_cid: nil, browser_language: nil, browser_name: nil, browser_version: nil, campaign_id: nil, clickid: nil, clid: nil, cpu_architecture: nil, current_url: nil, dclid: nil, device_model: nil, device_type: nil, device_vendor: nil, duration: nil, encoding: nil, engine_name: nil, engine_version: nil, epik: nil, fbc: nil, fbclid: nil, fbp: nil, fv: nil, gad_source: nil, gbraid: nil, gclid: nil, host: nil, iframe: nil, im_ref: nil, ip: nil, irclickid: nil, is_bot: nil, li_fat_id: nil, msclkid: nil, ndclid: nil, new_s: nil, os_name: nil, os_version: nil, page_hash: nil, pathname: nil, qclid: nil, rdt_cid: nil, received_at: nil, referrer: nil, referring_domain: nil, sacid: nil, sccid: nil, screen_height: nil, screen_width: nil, session_count: nil, sid: nil, sr: nil, title: nil, ttclid: nil, twclid: nil, uafvl: nil, user_agent: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_name: nil, utm_source: nil, utm_term: nil, version: nil, wbraid: nil, webview: nil)
946
963
  # Some parameter documentations has been truncated, see
947
964
  # {OursprivacyIngest::Models::VisitorUpsertParams::DefaultProperties} for more
948
965
  # details.
@@ -950,6 +967,9 @@ module OursprivacyIngest
950
967
  # These properties are used throughout the Ours app to pass known values onto
951
968
  # destinations
952
969
  #
970
+ # @param _ef_transaction_id [String, nil] The Everflow affiliate Click (Transaction) ID, captured from the
971
+ # `\_ef_transactio
972
+ #
953
973
  # @param active_duration [Float, nil] The active time in milliseconds that the user had this tab active
954
974
  #
955
975
  # @param ad_id [String, nil] The ad id for detected in the session. This is set by the web sdk automatically.
@@ -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.5.0"
4
+ VERSION = "1.7.0"
5
5
  end