oursprivacy-ingest 0.1.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.
Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +16 -0
  4. data/README.md +206 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/oursprivacy_ingest/client.rb +64 -0
  7. data/lib/oursprivacy_ingest/errors.rb +228 -0
  8. data/lib/oursprivacy_ingest/file_part.rb +58 -0
  9. data/lib/oursprivacy_ingest/internal/transport/base_client.rb +573 -0
  10. data/lib/oursprivacy_ingest/internal/transport/pooled_net_requester.rb +204 -0
  11. data/lib/oursprivacy_ingest/internal/type/array_of.rb +168 -0
  12. data/lib/oursprivacy_ingest/internal/type/base_model.rb +534 -0
  13. data/lib/oursprivacy_ingest/internal/type/base_page.rb +55 -0
  14. data/lib/oursprivacy_ingest/internal/type/boolean.rb +77 -0
  15. data/lib/oursprivacy_ingest/internal/type/converter.rb +327 -0
  16. data/lib/oursprivacy_ingest/internal/type/enum.rb +133 -0
  17. data/lib/oursprivacy_ingest/internal/type/file_input.rb +111 -0
  18. data/lib/oursprivacy_ingest/internal/type/hash_of.rb +188 -0
  19. data/lib/oursprivacy_ingest/internal/type/request_parameters.rb +42 -0
  20. data/lib/oursprivacy_ingest/internal/type/union.rb +245 -0
  21. data/lib/oursprivacy_ingest/internal/type/unknown.rb +81 -0
  22. data/lib/oursprivacy_ingest/internal/util.rb +915 -0
  23. data/lib/oursprivacy_ingest/internal.rb +20 -0
  24. data/lib/oursprivacy_ingest/models/track_event_params.rb +1009 -0
  25. data/lib/oursprivacy_ingest/models/track_event_response.rb +26 -0
  26. data/lib/oursprivacy_ingest/models/visitor_upsert_params.rb +972 -0
  27. data/lib/oursprivacy_ingest/models/visitor_upsert_response.rb +26 -0
  28. data/lib/oursprivacy_ingest/models.rb +48 -0
  29. data/lib/oursprivacy_ingest/request_options.rb +79 -0
  30. data/lib/oursprivacy_ingest/resources/track.rb +61 -0
  31. data/lib/oursprivacy_ingest/resources/visitor.rb +52 -0
  32. data/lib/oursprivacy_ingest/version.rb +5 -0
  33. data/lib/oursprivacy_ingest.rb +59 -0
  34. data/manifest.yaml +15 -0
  35. data/rbi/oursprivacy_ingest/client.rbi +46 -0
  36. data/rbi/oursprivacy_ingest/errors.rbi +205 -0
  37. data/rbi/oursprivacy_ingest/file_part.rbi +37 -0
  38. data/rbi/oursprivacy_ingest/internal/transport/base_client.rbi +305 -0
  39. data/rbi/oursprivacy_ingest/internal/transport/pooled_net_requester.rbi +80 -0
  40. data/rbi/oursprivacy_ingest/internal/type/array_of.rbi +108 -0
  41. data/rbi/oursprivacy_ingest/internal/type/base_model.rbi +316 -0
  42. data/rbi/oursprivacy_ingest/internal/type/base_page.rbi +43 -0
  43. data/rbi/oursprivacy_ingest/internal/type/boolean.rbi +58 -0
  44. data/rbi/oursprivacy_ingest/internal/type/converter.rbi +225 -0
  45. data/rbi/oursprivacy_ingest/internal/type/enum.rbi +82 -0
  46. data/rbi/oursprivacy_ingest/internal/type/file_input.rbi +59 -0
  47. data/rbi/oursprivacy_ingest/internal/type/hash_of.rbi +108 -0
  48. data/rbi/oursprivacy_ingest/internal/type/request_parameters.rbi +33 -0
  49. data/rbi/oursprivacy_ingest/internal/type/union.rbi +134 -0
  50. data/rbi/oursprivacy_ingest/internal/type/unknown.rbi +58 -0
  51. data/rbi/oursprivacy_ingest/internal/util.rbi +487 -0
  52. data/rbi/oursprivacy_ingest/internal.rbi +18 -0
  53. data/rbi/oursprivacy_ingest/models/track_event_params.rbi +1072 -0
  54. data/rbi/oursprivacy_ingest/models/track_event_response.rbi +71 -0
  55. data/rbi/oursprivacy_ingest/models/visitor_upsert_params.rbi +1035 -0
  56. data/rbi/oursprivacy_ingest/models/visitor_upsert_response.rbi +71 -0
  57. data/rbi/oursprivacy_ingest/models.rbi +7 -0
  58. data/rbi/oursprivacy_ingest/request_options.rbi +64 -0
  59. data/rbi/oursprivacy_ingest/resources/track.rbi +74 -0
  60. data/rbi/oursprivacy_ingest/resources/visitor.rbi +58 -0
  61. data/rbi/oursprivacy_ingest/version.rbi +5 -0
  62. data/sig/oursprivacy_ingest/client.rbs +25 -0
  63. data/sig/oursprivacy_ingest/errors.rbs +117 -0
  64. data/sig/oursprivacy_ingest/file_part.rbs +21 -0
  65. data/sig/oursprivacy_ingest/internal/transport/base_client.rbs +131 -0
  66. data/sig/oursprivacy_ingest/internal/transport/pooled_net_requester.rbs +45 -0
  67. data/sig/oursprivacy_ingest/internal/type/array_of.rbs +48 -0
  68. data/sig/oursprivacy_ingest/internal/type/base_model.rbs +106 -0
  69. data/sig/oursprivacy_ingest/internal/type/base_page.rbs +24 -0
  70. data/sig/oursprivacy_ingest/internal/type/boolean.rbs +26 -0
  71. data/sig/oursprivacy_ingest/internal/type/converter.rbs +79 -0
  72. data/sig/oursprivacy_ingest/internal/type/enum.rbs +32 -0
  73. data/sig/oursprivacy_ingest/internal/type/file_input.rbs +25 -0
  74. data/sig/oursprivacy_ingest/internal/type/hash_of.rbs +48 -0
  75. data/sig/oursprivacy_ingest/internal/type/request_parameters.rbs +20 -0
  76. data/sig/oursprivacy_ingest/internal/type/union.rbs +52 -0
  77. data/sig/oursprivacy_ingest/internal/type/unknown.rbs +26 -0
  78. data/sig/oursprivacy_ingest/internal/util.rbs +185 -0
  79. data/sig/oursprivacy_ingest/internal.rbs +10 -0
  80. data/sig/oursprivacy_ingest/models/track_event_params.rbs +673 -0
  81. data/sig/oursprivacy_ingest/models/track_event_response.rbs +28 -0
  82. data/sig/oursprivacy_ingest/models/visitor_upsert_params.rbs +653 -0
  83. data/sig/oursprivacy_ingest/models/visitor_upsert_response.rbs +28 -0
  84. data/sig/oursprivacy_ingest/models.rbs +5 -0
  85. data/sig/oursprivacy_ingest/request_options.rbs +36 -0
  86. data/sig/oursprivacy_ingest/resources/track.rbs +21 -0
  87. data/sig/oursprivacy_ingest/resources/visitor.rbs +17 -0
  88. data/sig/oursprivacy_ingest/version.rbs +3 -0
  89. metadata +146 -0
@@ -0,0 +1,1072 @@
1
+ # typed: strong
2
+
3
+ module OursprivacyIngest
4
+ module Models
5
+ class TrackEventParams < OursprivacyIngest::Internal::Type::BaseModel
6
+ extend OursprivacyIngest::Internal::Type::RequestParameters::Converter
7
+ include OursprivacyIngest::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ OursprivacyIngest::TrackEventParams,
13
+ OursprivacyIngest::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The token for your Ours Privacy Source. You can find this in the Ours dashboard.
18
+ sig { returns(String) }
19
+ attr_accessor :token
20
+
21
+ # The name of the event you're tracking. This must be whitelisted in the Ours
22
+ # dashboard.
23
+ sig { returns(String) }
24
+ attr_accessor :event
25
+
26
+ # These properties are used throughout the Ours app to pass known values onto
27
+ # destinations
28
+ sig do
29
+ returns(
30
+ T.nilable(OursprivacyIngest::TrackEventParams::DefaultProperties)
31
+ )
32
+ end
33
+ attr_reader :default_properties
34
+
35
+ sig do
36
+ params(
37
+ default_properties:
38
+ T.nilable(
39
+ OursprivacyIngest::TrackEventParams::DefaultProperties::OrHash
40
+ )
41
+ ).void
42
+ end
43
+ attr_writer :default_properties
44
+
45
+ # A unique identifier for the event. This helps prevent duplicate events.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_accessor :distinct_id
48
+
49
+ # The email address of a user. We will associate this event with the user or
50
+ # create a user. Used for lookup if externalId and userId are not included in the
51
+ # request.
52
+ sig { returns(T.nilable(String)) }
53
+ attr_accessor :email
54
+
55
+ # Any additional event properties you want to pass along.
56
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(T.anything)])) }
57
+ attr_accessor :event_properties
58
+
59
+ # The externalId (the ID in your system) of a user. We will associate this event
60
+ # with the user or create a user. If included in the request, email lookup is
61
+ # ignored.
62
+ sig { returns(T.nilable(String)) }
63
+ attr_accessor :external_id
64
+
65
+ # The time at which the event occurred in milliseconds since UTC epoch. The time
66
+ # must be in the past and within the last 7 days.
67
+ sig { returns(T.nilable(Float)) }
68
+ attr_accessor :time
69
+
70
+ # The Ours user id stored in local storage and cookies on your web properties. If
71
+ # userId is included in the request, we do not lookup the user by email or
72
+ # externalId.
73
+ sig { returns(T.nilable(String)) }
74
+ attr_accessor :user_id
75
+
76
+ # Properties to set on the visitor. (optional) You can also update these
77
+ # properties via the identify endpoint.
78
+ sig do
79
+ returns(T.nilable(OursprivacyIngest::TrackEventParams::UserProperties))
80
+ end
81
+ attr_reader :user_properties
82
+
83
+ sig do
84
+ params(
85
+ user_properties:
86
+ T.nilable(
87
+ OursprivacyIngest::TrackEventParams::UserProperties::OrHash
88
+ )
89
+ ).void
90
+ end
91
+ attr_writer :user_properties
92
+
93
+ sig do
94
+ params(
95
+ token: String,
96
+ event: String,
97
+ default_properties:
98
+ T.nilable(
99
+ OursprivacyIngest::TrackEventParams::DefaultProperties::OrHash
100
+ ),
101
+ distinct_id: T.nilable(String),
102
+ email: T.nilable(String),
103
+ event_properties: T.nilable(T::Hash[Symbol, T.nilable(T.anything)]),
104
+ external_id: T.nilable(String),
105
+ time: T.nilable(Float),
106
+ user_id: T.nilable(String),
107
+ user_properties:
108
+ T.nilable(
109
+ OursprivacyIngest::TrackEventParams::UserProperties::OrHash
110
+ ),
111
+ request_options: OursprivacyIngest::RequestOptions::OrHash
112
+ ).returns(T.attached_class)
113
+ end
114
+ def self.new(
115
+ # The token for your Ours Privacy Source. You can find this in the Ours dashboard.
116
+ token:,
117
+ # The name of the event you're tracking. This must be whitelisted in the Ours
118
+ # dashboard.
119
+ event:,
120
+ # These properties are used throughout the Ours app to pass known values onto
121
+ # destinations
122
+ default_properties: nil,
123
+ # A unique identifier for the event. This helps prevent duplicate events.
124
+ distinct_id: nil,
125
+ # The email address of a user. We will associate this event with the user or
126
+ # create a user. Used for lookup if externalId and userId are not included in the
127
+ # request.
128
+ email: nil,
129
+ # Any additional event properties you want to pass along.
130
+ event_properties: nil,
131
+ # The externalId (the ID in your system) of a user. We will associate this event
132
+ # with the user or create a user. If included in the request, email lookup is
133
+ # ignored.
134
+ external_id: nil,
135
+ # The time at which the event occurred in milliseconds since UTC epoch. The time
136
+ # must be in the past and within the last 7 days.
137
+ time: nil,
138
+ # The Ours user id stored in local storage and cookies on your web properties. If
139
+ # userId is included in the request, we do not lookup the user by email or
140
+ # externalId.
141
+ user_id: nil,
142
+ # Properties to set on the visitor. (optional) You can also update these
143
+ # properties via the identify endpoint.
144
+ user_properties: nil,
145
+ request_options: {}
146
+ )
147
+ end
148
+
149
+ sig do
150
+ override.returns(
151
+ {
152
+ token: String,
153
+ event: String,
154
+ default_properties:
155
+ T.nilable(OursprivacyIngest::TrackEventParams::DefaultProperties),
156
+ distinct_id: T.nilable(String),
157
+ email: T.nilable(String),
158
+ event_properties: T.nilable(T::Hash[Symbol, T.nilable(T.anything)]),
159
+ external_id: T.nilable(String),
160
+ time: T.nilable(Float),
161
+ user_id: T.nilable(String),
162
+ user_properties:
163
+ T.nilable(OursprivacyIngest::TrackEventParams::UserProperties),
164
+ request_options: OursprivacyIngest::RequestOptions
165
+ }
166
+ )
167
+ end
168
+ def to_hash
169
+ end
170
+
171
+ class DefaultProperties < OursprivacyIngest::Internal::Type::BaseModel
172
+ OrHash =
173
+ T.type_alias do
174
+ T.any(
175
+ OursprivacyIngest::TrackEventParams::DefaultProperties,
176
+ OursprivacyIngest::Internal::AnyHash
177
+ )
178
+ end
179
+
180
+ # The active time in milliseconds that the user had this tab active
181
+ sig { returns(T.nilable(Float)) }
182
+ attr_accessor :active_duration
183
+
184
+ # The ad id for detected in the session. This is set by the web sdk automatically.
185
+ sig { returns(T.nilable(String)) }
186
+ attr_accessor :ad_id
187
+
188
+ # The adset id for detected in the session. This is set by the web sdk
189
+ # automatically.
190
+ sig { returns(T.nilable(String)) }
191
+ attr_accessor :adset_id
192
+
193
+ # The language of the browser. Ex: en-US
194
+ sig { returns(T.nilable(String)) }
195
+ attr_accessor :browser_language
196
+
197
+ # The name of the browser. Ex: Chrome
198
+ sig { returns(T.nilable(String)) }
199
+ attr_accessor :browser_name
200
+
201
+ # The version of the browser. Ex: 114.0
202
+ sig { returns(T.nilable(String)) }
203
+ attr_accessor :browser_version
204
+
205
+ # The campaign id for detected in the session. This is set by the web sdk
206
+ # automatically.
207
+ sig { returns(T.nilable(String)) }
208
+ attr_accessor :campaign_id
209
+
210
+ # The Click ID. Ex: clickid123
211
+ sig { returns(T.nilable(String)) }
212
+ attr_accessor :clickid
213
+
214
+ # The Generic Click ID. Ex: clid123
215
+ sig { returns(T.nilable(String)) }
216
+ attr_accessor :clid
217
+
218
+ # The architecture of the CPU. Ex: x64
219
+ sig { returns(T.nilable(String)) }
220
+ attr_accessor :cpu_architecture
221
+
222
+ # The full url (including query params) of the current page
223
+ sig { returns(T.nilable(String)) }
224
+ attr_accessor :current_url
225
+
226
+ # The DoubleClick Click ID. Ex: dclid123
227
+ sig { returns(T.nilable(String)) }
228
+ attr_accessor :dclid
229
+
230
+ # The model of the device. Ex: iPhone 13
231
+ sig { returns(T.nilable(String)) }
232
+ attr_accessor :device_model
233
+
234
+ # The type of device the user is using. Ex: mobile
235
+ sig { returns(T.nilable(String)) }
236
+ attr_accessor :device_type
237
+
238
+ # The vendor of the device. Ex: Apple
239
+ sig { returns(T.nilable(String)) }
240
+ attr_accessor :device_vendor
241
+
242
+ # The time in milliseconds since the page was loaded // script was loaded
243
+ sig { returns(T.nilable(Float)) }
244
+ attr_accessor :duration
245
+
246
+ # The browsers encoding. Ex: UTF-8
247
+ sig { returns(T.nilable(String)) }
248
+ attr_accessor :encoding
249
+
250
+ # The name of the browser engine. Ex: Blink
251
+ sig { returns(T.nilable(String)) }
252
+ attr_accessor :engine_name
253
+
254
+ # The version of the browser engine. Ex: 114.0
255
+ sig { returns(T.nilable(String)) }
256
+ attr_accessor :engine_version
257
+
258
+ # The Pinterest Click ID. Ex: epik456
259
+ sig { returns(T.nilable(String)) }
260
+ attr_accessor :epik
261
+
262
+ # Facebook Click ID with prefix format for Conversions API tracking. Ex:
263
+ # fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890
264
+ sig { returns(T.nilable(String)) }
265
+ attr_accessor :fbc
266
+
267
+ # Raw Facebook Click ID query parameter without prefix from ad clicks. Ex:
268
+ # AbCdEfGhIjKlMnOpQrStUvWxYz1234567890
269
+ sig { returns(T.nilable(String)) }
270
+ attr_accessor :fbclid
271
+
272
+ # Facebook Browser ID parameter for identifying browsers and attributing events.
273
+ # Ex: fb.1.1554763741205.1098115397
274
+ sig { returns(T.nilable(String)) }
275
+ attr_accessor :fbp
276
+
277
+ # Deprecated
278
+ sig { returns(T.nilable(T::Boolean)) }
279
+ attr_accessor :fv
280
+
281
+ # The Google Ad Source. Ex: google
282
+ sig { returns(T.nilable(String)) }
283
+ attr_accessor :gad_source
284
+
285
+ # The Google Braid ID. Ex: gbraid123
286
+ sig { returns(T.nilable(String)) }
287
+ attr_accessor :gbraid
288
+
289
+ # The Google Click ID. Ex: gclid123
290
+ sig { returns(T.nilable(String)) }
291
+ attr_accessor :gclid
292
+
293
+ # The host of the current page. Ex: example.com
294
+ sig { returns(T.nilable(String)) }
295
+ attr_accessor :host
296
+
297
+ # Whether the user is in an iframe. Ex: true
298
+ sig { returns(T.nilable(T::Boolean)) }
299
+ attr_accessor :iframe
300
+
301
+ # The IP address of the user. Ex: 127.0.0.1
302
+ sig { returns(T.nilable(String)) }
303
+ attr_accessor :ip
304
+
305
+ # Whether we have detected that the user is a bot. This is set automatically by
306
+ # the Ours server primarily for events tracked through the web SDK.
307
+ sig { returns(T.nilable(T.anything)) }
308
+ attr_reader :is_bot
309
+
310
+ sig { params(is_bot: T.anything).void }
311
+ attr_writer :is_bot
312
+
313
+ # The LinkedIn Click ID. Ex: li_fat_id123
314
+ sig { returns(T.nilable(String)) }
315
+ attr_accessor :li_fat_id
316
+
317
+ # The Microsoft Click ID. Ex: msclkid123
318
+ sig { returns(T.nilable(String)) }
319
+ attr_accessor :msclkid
320
+
321
+ # The NextDoor Click ID. Ex: ndclid123
322
+ sig { returns(T.nilable(String)) }
323
+ attr_accessor :ndclid
324
+
325
+ # Deprecated
326
+ sig { returns(T.nilable(T::Boolean)) }
327
+ attr_accessor :new_s
328
+
329
+ # The name of the operating system. Ex: Windows
330
+ sig { returns(T.nilable(String)) }
331
+ attr_accessor :os_name
332
+
333
+ # The version of the operating system. Ex: 10.0
334
+ sig { returns(T.nilable(String)) }
335
+ attr_accessor :os_version
336
+
337
+ # A random set of numbers for the page load
338
+ sig { returns(T.nilable(Float)) }
339
+ attr_accessor :page_hash
340
+
341
+ # The pathname of the current page. Ex: /home
342
+ sig { returns(T.nilable(String)) }
343
+ attr_accessor :pathname
344
+
345
+ # The Quora Click ID. Ex: qclid123
346
+ sig { returns(T.nilable(String)) }
347
+ attr_accessor :qclid
348
+
349
+ # The Reddit Click ID. Ex: rdt_cid123
350
+ sig { returns(T.nilable(String)) }
351
+ attr_accessor :rdt_cid
352
+
353
+ # The time the event was received by an Ours server in ISO format
354
+ sig { returns(T.nilable(String)) }
355
+ attr_accessor :received_at
356
+
357
+ # The referrer URL of the current page
358
+ sig { returns(T.nilable(String)) }
359
+ attr_accessor :referrer
360
+
361
+ # The StackAdapt Tracking ID. Ex: sacid123
362
+ sig { returns(T.nilable(String)) }
363
+ attr_accessor :sacid
364
+
365
+ # The SnapChat Click ID. Ex: sccid123
366
+ sig { returns(T.nilable(String)) }
367
+ attr_accessor :sccid
368
+
369
+ # The height of the screen. Ex: 1080
370
+ sig { returns(T.nilable(Float)) }
371
+ attr_accessor :screen_height
372
+
373
+ # The width of the screen. Ex: 1920
374
+ sig { returns(T.nilable(Float)) }
375
+ attr_accessor :screen_width
376
+
377
+ # The number of sessions the user has had. Ex: 3
378
+ sig { returns(T.nilable(Float)) }
379
+ attr_accessor :session_count
380
+
381
+ # The session ID as assigned automatically by the web SDK. This is required for
382
+ # session replay
383
+ sig { returns(T.nilable(String)) }
384
+ attr_accessor :sid
385
+
386
+ sig { returns(T.nilable(String)) }
387
+ attr_accessor :sr
388
+
389
+ # The title of the current page
390
+ sig { returns(T.nilable(String)) }
391
+ attr_accessor :title
392
+
393
+ # The TikTok Click ID. Ex: ttclid123
394
+ sig { returns(T.nilable(String)) }
395
+ attr_accessor :ttclid
396
+
397
+ # The Twitter Click ID. Ex: twclid123
398
+ sig { returns(T.nilable(String)) }
399
+ attr_accessor :twclid
400
+
401
+ # User agent as a full list of strings.
402
+ sig { returns(T.nilable(String)) }
403
+ attr_accessor :uafvl
404
+
405
+ # The user agent of the browser
406
+ sig { returns(T.nilable(String)) }
407
+ attr_accessor :user_agent
408
+
409
+ # The UTM Campaign. The web SDK automatically captures this from the query params.
410
+ sig { returns(T.nilable(String)) }
411
+ attr_accessor :utm_campaign
412
+
413
+ # The UTM Content. The web SDK automatically captures this from the query params.
414
+ sig { returns(T.nilable(String)) }
415
+ attr_accessor :utm_content
416
+
417
+ # The UTM Medium. The web SDK automatically captures this from the query params.
418
+ sig { returns(T.nilable(String)) }
419
+ attr_accessor :utm_medium
420
+
421
+ # The UTM Name. The web SDK automatically captures this from the query params.
422
+ sig { returns(T.nilable(String)) }
423
+ attr_accessor :utm_name
424
+
425
+ # The UTM Source. The web SDK automatically captures this from the query params.
426
+ sig { returns(T.nilable(String)) }
427
+ attr_accessor :utm_source
428
+
429
+ # The UTM Term. The web SDK automatically captures this from the query params.
430
+ sig { returns(T.nilable(String)) }
431
+ attr_accessor :utm_term
432
+
433
+ # The version of the web SDK
434
+ sig { returns(T.nilable(String)) }
435
+ attr_accessor :version
436
+
437
+ # The WBRAID Identifier. The web SDK automatically captures this from the query
438
+ # params.
439
+ sig { returns(T.nilable(String)) }
440
+ attr_accessor :wbraid
441
+
442
+ # Whether the user is in a webview. Ex: true
443
+ sig { returns(T.nilable(T::Boolean)) }
444
+ attr_accessor :webview
445
+
446
+ # These properties are used throughout the Ours app to pass known values onto
447
+ # destinations
448
+ sig do
449
+ params(
450
+ active_duration: T.nilable(Float),
451
+ ad_id: T.nilable(String),
452
+ adset_id: T.nilable(String),
453
+ browser_language: T.nilable(String),
454
+ browser_name: T.nilable(String),
455
+ browser_version: T.nilable(String),
456
+ campaign_id: T.nilable(String),
457
+ clickid: T.nilable(String),
458
+ clid: T.nilable(String),
459
+ cpu_architecture: T.nilable(String),
460
+ current_url: T.nilable(String),
461
+ dclid: T.nilable(String),
462
+ device_model: T.nilable(String),
463
+ device_type: T.nilable(String),
464
+ device_vendor: T.nilable(String),
465
+ duration: T.nilable(Float),
466
+ encoding: T.nilable(String),
467
+ engine_name: T.nilable(String),
468
+ engine_version: T.nilable(String),
469
+ epik: T.nilable(String),
470
+ fbc: T.nilable(String),
471
+ fbclid: T.nilable(String),
472
+ fbp: T.nilable(String),
473
+ fv: T.nilable(T::Boolean),
474
+ gad_source: T.nilable(String),
475
+ gbraid: T.nilable(String),
476
+ gclid: T.nilable(String),
477
+ host: T.nilable(String),
478
+ iframe: T.nilable(T::Boolean),
479
+ ip: T.nilable(String),
480
+ is_bot: T.anything,
481
+ li_fat_id: T.nilable(String),
482
+ msclkid: T.nilable(String),
483
+ ndclid: T.nilable(String),
484
+ new_s: T.nilable(T::Boolean),
485
+ os_name: T.nilable(String),
486
+ os_version: T.nilable(String),
487
+ page_hash: T.nilable(Float),
488
+ pathname: T.nilable(String),
489
+ qclid: T.nilable(String),
490
+ rdt_cid: T.nilable(String),
491
+ received_at: T.nilable(String),
492
+ referrer: T.nilable(String),
493
+ sacid: T.nilable(String),
494
+ sccid: T.nilable(String),
495
+ screen_height: T.nilable(Float),
496
+ screen_width: T.nilable(Float),
497
+ session_count: T.nilable(Float),
498
+ sid: T.nilable(String),
499
+ sr: T.nilable(String),
500
+ title: T.nilable(String),
501
+ ttclid: T.nilable(String),
502
+ twclid: T.nilable(String),
503
+ uafvl: T.nilable(String),
504
+ user_agent: T.nilable(String),
505
+ utm_campaign: T.nilable(String),
506
+ utm_content: T.nilable(String),
507
+ utm_medium: T.nilable(String),
508
+ utm_name: T.nilable(String),
509
+ utm_source: T.nilable(String),
510
+ utm_term: T.nilable(String),
511
+ version: T.nilable(String),
512
+ wbraid: T.nilable(String),
513
+ webview: T.nilable(T::Boolean)
514
+ ).returns(T.attached_class)
515
+ end
516
+ def self.new(
517
+ # The active time in milliseconds that the user had this tab active
518
+ active_duration: nil,
519
+ # The ad id for detected in the session. This is set by the web sdk automatically.
520
+ ad_id: nil,
521
+ # The adset id for detected in the session. This is set by the web sdk
522
+ # automatically.
523
+ adset_id: nil,
524
+ # The language of the browser. Ex: en-US
525
+ browser_language: nil,
526
+ # The name of the browser. Ex: Chrome
527
+ browser_name: nil,
528
+ # The version of the browser. Ex: 114.0
529
+ browser_version: nil,
530
+ # The campaign id for detected in the session. This is set by the web sdk
531
+ # automatically.
532
+ campaign_id: nil,
533
+ # The Click ID. Ex: clickid123
534
+ clickid: nil,
535
+ # The Generic Click ID. Ex: clid123
536
+ clid: nil,
537
+ # The architecture of the CPU. Ex: x64
538
+ cpu_architecture: nil,
539
+ # The full url (including query params) of the current page
540
+ current_url: nil,
541
+ # The DoubleClick Click ID. Ex: dclid123
542
+ dclid: nil,
543
+ # The model of the device. Ex: iPhone 13
544
+ device_model: nil,
545
+ # The type of device the user is using. Ex: mobile
546
+ device_type: nil,
547
+ # The vendor of the device. Ex: Apple
548
+ device_vendor: nil,
549
+ # The time in milliseconds since the page was loaded // script was loaded
550
+ duration: nil,
551
+ # The browsers encoding. Ex: UTF-8
552
+ encoding: nil,
553
+ # The name of the browser engine. Ex: Blink
554
+ engine_name: nil,
555
+ # The version of the browser engine. Ex: 114.0
556
+ engine_version: nil,
557
+ # The Pinterest Click ID. Ex: epik456
558
+ epik: nil,
559
+ # Facebook Click ID with prefix format for Conversions API tracking. Ex:
560
+ # fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890
561
+ fbc: nil,
562
+ # Raw Facebook Click ID query parameter without prefix from ad clicks. Ex:
563
+ # AbCdEfGhIjKlMnOpQrStUvWxYz1234567890
564
+ fbclid: nil,
565
+ # Facebook Browser ID parameter for identifying browsers and attributing events.
566
+ # Ex: fb.1.1554763741205.1098115397
567
+ fbp: nil,
568
+ # Deprecated
569
+ fv: nil,
570
+ # The Google Ad Source. Ex: google
571
+ gad_source: nil,
572
+ # The Google Braid ID. Ex: gbraid123
573
+ gbraid: nil,
574
+ # The Google Click ID. Ex: gclid123
575
+ gclid: nil,
576
+ # The host of the current page. Ex: example.com
577
+ host: nil,
578
+ # Whether the user is in an iframe. Ex: true
579
+ iframe: nil,
580
+ # The IP address of the user. Ex: 127.0.0.1
581
+ ip: nil,
582
+ # Whether we have detected that the user is a bot. This is set automatically by
583
+ # the Ours server primarily for events tracked through the web SDK.
584
+ is_bot: nil,
585
+ # The LinkedIn Click ID. Ex: li_fat_id123
586
+ li_fat_id: nil,
587
+ # The Microsoft Click ID. Ex: msclkid123
588
+ msclkid: nil,
589
+ # The NextDoor Click ID. Ex: ndclid123
590
+ ndclid: nil,
591
+ # Deprecated
592
+ new_s: nil,
593
+ # The name of the operating system. Ex: Windows
594
+ os_name: nil,
595
+ # The version of the operating system. Ex: 10.0
596
+ os_version: nil,
597
+ # A random set of numbers for the page load
598
+ page_hash: nil,
599
+ # The pathname of the current page. Ex: /home
600
+ pathname: nil,
601
+ # The Quora Click ID. Ex: qclid123
602
+ qclid: nil,
603
+ # The Reddit Click ID. Ex: rdt_cid123
604
+ rdt_cid: nil,
605
+ # The time the event was received by an Ours server in ISO format
606
+ received_at: nil,
607
+ # The referrer URL of the current page
608
+ referrer: nil,
609
+ # The StackAdapt Tracking ID. Ex: sacid123
610
+ sacid: nil,
611
+ # The SnapChat Click ID. Ex: sccid123
612
+ sccid: nil,
613
+ # The height of the screen. Ex: 1080
614
+ screen_height: nil,
615
+ # The width of the screen. Ex: 1920
616
+ screen_width: nil,
617
+ # The number of sessions the user has had. Ex: 3
618
+ session_count: nil,
619
+ # The session ID as assigned automatically by the web SDK. This is required for
620
+ # session replay
621
+ sid: nil,
622
+ sr: nil,
623
+ # The title of the current page
624
+ title: nil,
625
+ # The TikTok Click ID. Ex: ttclid123
626
+ ttclid: nil,
627
+ # The Twitter Click ID. Ex: twclid123
628
+ twclid: nil,
629
+ # User agent as a full list of strings.
630
+ uafvl: nil,
631
+ # The user agent of the browser
632
+ user_agent: nil,
633
+ # The UTM Campaign. The web SDK automatically captures this from the query params.
634
+ utm_campaign: nil,
635
+ # The UTM Content. The web SDK automatically captures this from the query params.
636
+ utm_content: nil,
637
+ # The UTM Medium. The web SDK automatically captures this from the query params.
638
+ utm_medium: nil,
639
+ # The UTM Name. The web SDK automatically captures this from the query params.
640
+ utm_name: nil,
641
+ # The UTM Source. The web SDK automatically captures this from the query params.
642
+ utm_source: nil,
643
+ # The UTM Term. The web SDK automatically captures this from the query params.
644
+ utm_term: nil,
645
+ # The version of the web SDK
646
+ version: nil,
647
+ # The WBRAID Identifier. The web SDK automatically captures this from the query
648
+ # params.
649
+ wbraid: nil,
650
+ # Whether the user is in a webview. Ex: true
651
+ webview: nil
652
+ )
653
+ end
654
+
655
+ sig do
656
+ override.returns(
657
+ {
658
+ active_duration: T.nilable(Float),
659
+ ad_id: T.nilable(String),
660
+ adset_id: T.nilable(String),
661
+ browser_language: T.nilable(String),
662
+ browser_name: T.nilable(String),
663
+ browser_version: T.nilable(String),
664
+ campaign_id: T.nilable(String),
665
+ clickid: T.nilable(String),
666
+ clid: T.nilable(String),
667
+ cpu_architecture: T.nilable(String),
668
+ current_url: T.nilable(String),
669
+ dclid: T.nilable(String),
670
+ device_model: T.nilable(String),
671
+ device_type: T.nilable(String),
672
+ device_vendor: T.nilable(String),
673
+ duration: T.nilable(Float),
674
+ encoding: T.nilable(String),
675
+ engine_name: T.nilable(String),
676
+ engine_version: T.nilable(String),
677
+ epik: T.nilable(String),
678
+ fbc: T.nilable(String),
679
+ fbclid: T.nilable(String),
680
+ fbp: T.nilable(String),
681
+ fv: T.nilable(T::Boolean),
682
+ gad_source: T.nilable(String),
683
+ gbraid: T.nilable(String),
684
+ gclid: T.nilable(String),
685
+ host: T.nilable(String),
686
+ iframe: T.nilable(T::Boolean),
687
+ ip: T.nilable(String),
688
+ is_bot: T.anything,
689
+ li_fat_id: T.nilable(String),
690
+ msclkid: T.nilable(String),
691
+ ndclid: T.nilable(String),
692
+ new_s: T.nilable(T::Boolean),
693
+ os_name: T.nilable(String),
694
+ os_version: T.nilable(String),
695
+ page_hash: T.nilable(Float),
696
+ pathname: T.nilable(String),
697
+ qclid: T.nilable(String),
698
+ rdt_cid: T.nilable(String),
699
+ received_at: T.nilable(String),
700
+ referrer: T.nilable(String),
701
+ sacid: T.nilable(String),
702
+ sccid: T.nilable(String),
703
+ screen_height: T.nilable(Float),
704
+ screen_width: T.nilable(Float),
705
+ session_count: T.nilable(Float),
706
+ sid: T.nilable(String),
707
+ sr: T.nilable(String),
708
+ title: T.nilable(String),
709
+ ttclid: T.nilable(String),
710
+ twclid: T.nilable(String),
711
+ uafvl: T.nilable(String),
712
+ user_agent: T.nilable(String),
713
+ utm_campaign: T.nilable(String),
714
+ utm_content: T.nilable(String),
715
+ utm_medium: T.nilable(String),
716
+ utm_name: T.nilable(String),
717
+ utm_source: T.nilable(String),
718
+ utm_term: T.nilable(String),
719
+ version: T.nilable(String),
720
+ wbraid: T.nilable(String),
721
+ webview: T.nilable(T::Boolean)
722
+ }
723
+ )
724
+ end
725
+ def to_hash
726
+ end
727
+ end
728
+
729
+ class UserProperties < OursprivacyIngest::Internal::Type::BaseModel
730
+ OrHash =
731
+ T.type_alias do
732
+ T.any(
733
+ OursprivacyIngest::TrackEventParams::UserProperties,
734
+ OursprivacyIngest::Internal::AnyHash
735
+ )
736
+ end
737
+
738
+ sig { returns(T.nilable(String)) }
739
+ attr_accessor :ad_id
740
+
741
+ sig { returns(T.nilable(String)) }
742
+ attr_accessor :adset_id
743
+
744
+ sig { returns(T.nilable(String)) }
745
+ attr_accessor :campaign_id
746
+
747
+ sig { returns(T.nilable(String)) }
748
+ attr_accessor :city
749
+
750
+ sig { returns(T.nilable(String)) }
751
+ attr_accessor :clickid
752
+
753
+ sig { returns(T.nilable(String)) }
754
+ attr_accessor :clid
755
+
756
+ sig { returns(T.nilable(String)) }
757
+ attr_accessor :company_name
758
+
759
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(T.anything)])) }
760
+ attr_accessor :consent
761
+
762
+ sig { returns(T.nilable(String)) }
763
+ attr_accessor :country
764
+
765
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(T.anything)])) }
766
+ attr_accessor :custom_properties
767
+
768
+ sig { returns(T.nilable(String)) }
769
+ attr_accessor :date_of_birth
770
+
771
+ sig { returns(T.nilable(String)) }
772
+ attr_accessor :dclid
773
+
774
+ sig { returns(T.nilable(String)) }
775
+ attr_accessor :email
776
+
777
+ sig { returns(T.nilable(String)) }
778
+ attr_accessor :epik
779
+
780
+ sig { returns(T.nilable(String)) }
781
+ attr_accessor :external_id
782
+
783
+ sig { returns(T.nilable(String)) }
784
+ attr_accessor :fbc
785
+
786
+ sig { returns(T.nilable(String)) }
787
+ attr_accessor :fbclid
788
+
789
+ sig { returns(T.nilable(String)) }
790
+ attr_accessor :fbp
791
+
792
+ sig { returns(T.nilable(String)) }
793
+ attr_accessor :first_name
794
+
795
+ sig { returns(T.nilable(String)) }
796
+ attr_accessor :gad_source
797
+
798
+ sig { returns(T.nilable(String)) }
799
+ attr_accessor :gbraid
800
+
801
+ sig { returns(T.nilable(String)) }
802
+ attr_accessor :gclid
803
+
804
+ sig { returns(T.nilable(String)) }
805
+ attr_accessor :gender
806
+
807
+ # The IP address of the user
808
+ sig { returns(T.nilable(String)) }
809
+ attr_accessor :ip
810
+
811
+ sig { returns(T.nilable(T.anything)) }
812
+ attr_reader :is_bot
813
+
814
+ sig { params(is_bot: T.anything).void }
815
+ attr_writer :is_bot
816
+
817
+ sig { returns(T.nilable(String)) }
818
+ attr_accessor :job_title
819
+
820
+ sig { returns(T.nilable(String)) }
821
+ attr_accessor :last_name
822
+
823
+ sig { returns(T.nilable(String)) }
824
+ attr_accessor :li_fat_id
825
+
826
+ sig { returns(T.nilable(String)) }
827
+ attr_accessor :msclkid
828
+
829
+ sig { returns(T.nilable(String)) }
830
+ attr_accessor :ndclid
831
+
832
+ sig { returns(T.nilable(T.anything)) }
833
+ attr_reader :phone_number
834
+
835
+ sig { params(phone_number: T.anything).void }
836
+ attr_writer :phone_number
837
+
838
+ sig { returns(T.nilable(String)) }
839
+ attr_accessor :qclid
840
+
841
+ sig { returns(T.nilable(String)) }
842
+ attr_accessor :rdt_cid
843
+
844
+ sig { returns(T.nilable(String)) }
845
+ attr_accessor :referrer
846
+
847
+ sig { returns(T.nilable(String)) }
848
+ attr_accessor :sacid
849
+
850
+ sig { returns(T.nilable(String)) }
851
+ attr_accessor :sccid
852
+
853
+ sig { returns(T.nilable(String)) }
854
+ attr_accessor :sid
855
+
856
+ sig { returns(T.nilable(String)) }
857
+ attr_accessor :state
858
+
859
+ sig { returns(T.nilable(String)) }
860
+ attr_accessor :ttclid
861
+
862
+ sig { returns(T.nilable(String)) }
863
+ attr_accessor :twclid
864
+
865
+ sig { returns(T.nilable(String)) }
866
+ attr_accessor :user_agent
867
+
868
+ sig { returns(T.nilable(String)) }
869
+ attr_accessor :user_agent_full_list
870
+
871
+ sig { returns(T.nilable(String)) }
872
+ attr_accessor :utm_campaign
873
+
874
+ sig { returns(T.nilable(String)) }
875
+ attr_accessor :utm_content
876
+
877
+ sig { returns(T.nilable(String)) }
878
+ attr_accessor :utm_medium
879
+
880
+ sig { returns(T.nilable(String)) }
881
+ attr_accessor :utm_name
882
+
883
+ sig { returns(T.nilable(String)) }
884
+ attr_accessor :utm_source
885
+
886
+ sig { returns(T.nilable(String)) }
887
+ attr_accessor :utm_term
888
+
889
+ sig { returns(T.nilable(String)) }
890
+ attr_accessor :wbraid
891
+
892
+ sig { returns(T.nilable(T.anything)) }
893
+ attr_reader :zip
894
+
895
+ sig { params(zip: T.anything).void }
896
+ attr_writer :zip
897
+
898
+ # Properties to set on the visitor. (optional) You can also update these
899
+ # properties via the identify endpoint.
900
+ sig do
901
+ params(
902
+ ad_id: T.nilable(String),
903
+ adset_id: T.nilable(String),
904
+ campaign_id: T.nilable(String),
905
+ city: T.nilable(String),
906
+ clickid: T.nilable(String),
907
+ clid: T.nilable(String),
908
+ company_name: T.nilable(String),
909
+ consent: T.nilable(T::Hash[Symbol, T.nilable(T.anything)]),
910
+ country: T.nilable(String),
911
+ custom_properties:
912
+ T.nilable(T::Hash[Symbol, T.nilable(T.anything)]),
913
+ date_of_birth: T.nilable(String),
914
+ dclid: T.nilable(String),
915
+ email: T.nilable(String),
916
+ epik: T.nilable(String),
917
+ external_id: T.nilable(String),
918
+ fbc: T.nilable(String),
919
+ fbclid: T.nilable(String),
920
+ fbp: T.nilable(String),
921
+ first_name: T.nilable(String),
922
+ gad_source: T.nilable(String),
923
+ gbraid: T.nilable(String),
924
+ gclid: T.nilable(String),
925
+ gender: T.nilable(String),
926
+ ip: T.nilable(String),
927
+ is_bot: T.anything,
928
+ job_title: T.nilable(String),
929
+ last_name: T.nilable(String),
930
+ li_fat_id: T.nilable(String),
931
+ msclkid: T.nilable(String),
932
+ ndclid: T.nilable(String),
933
+ phone_number: T.anything,
934
+ qclid: T.nilable(String),
935
+ rdt_cid: T.nilable(String),
936
+ referrer: T.nilable(String),
937
+ sacid: T.nilable(String),
938
+ sccid: T.nilable(String),
939
+ sid: T.nilable(String),
940
+ state: T.nilable(String),
941
+ ttclid: T.nilable(String),
942
+ twclid: T.nilable(String),
943
+ user_agent: T.nilable(String),
944
+ user_agent_full_list: T.nilable(String),
945
+ utm_campaign: T.nilable(String),
946
+ utm_content: T.nilable(String),
947
+ utm_medium: T.nilable(String),
948
+ utm_name: T.nilable(String),
949
+ utm_source: T.nilable(String),
950
+ utm_term: T.nilable(String),
951
+ wbraid: T.nilable(String),
952
+ zip: T.anything
953
+ ).returns(T.attached_class)
954
+ end
955
+ def self.new(
956
+ ad_id: nil,
957
+ adset_id: nil,
958
+ campaign_id: nil,
959
+ city: nil,
960
+ clickid: nil,
961
+ clid: nil,
962
+ company_name: nil,
963
+ consent: nil,
964
+ country: nil,
965
+ custom_properties: nil,
966
+ date_of_birth: nil,
967
+ dclid: nil,
968
+ email: nil,
969
+ epik: nil,
970
+ external_id: nil,
971
+ fbc: nil,
972
+ fbclid: nil,
973
+ fbp: nil,
974
+ first_name: nil,
975
+ gad_source: nil,
976
+ gbraid: nil,
977
+ gclid: nil,
978
+ gender: nil,
979
+ # The IP address of the user
980
+ ip: nil,
981
+ is_bot: nil,
982
+ job_title: nil,
983
+ last_name: nil,
984
+ li_fat_id: nil,
985
+ msclkid: nil,
986
+ ndclid: nil,
987
+ phone_number: nil,
988
+ qclid: nil,
989
+ rdt_cid: nil,
990
+ referrer: nil,
991
+ sacid: nil,
992
+ sccid: nil,
993
+ sid: nil,
994
+ state: nil,
995
+ ttclid: nil,
996
+ twclid: nil,
997
+ user_agent: nil,
998
+ user_agent_full_list: nil,
999
+ utm_campaign: nil,
1000
+ utm_content: nil,
1001
+ utm_medium: nil,
1002
+ utm_name: nil,
1003
+ utm_source: nil,
1004
+ utm_term: nil,
1005
+ wbraid: nil,
1006
+ zip: nil
1007
+ )
1008
+ end
1009
+
1010
+ sig do
1011
+ override.returns(
1012
+ {
1013
+ ad_id: T.nilable(String),
1014
+ adset_id: T.nilable(String),
1015
+ campaign_id: T.nilable(String),
1016
+ city: T.nilable(String),
1017
+ clickid: T.nilable(String),
1018
+ clid: T.nilable(String),
1019
+ company_name: T.nilable(String),
1020
+ consent: T.nilable(T::Hash[Symbol, T.nilable(T.anything)]),
1021
+ country: T.nilable(String),
1022
+ custom_properties:
1023
+ T.nilable(T::Hash[Symbol, T.nilable(T.anything)]),
1024
+ date_of_birth: T.nilable(String),
1025
+ dclid: T.nilable(String),
1026
+ email: T.nilable(String),
1027
+ epik: T.nilable(String),
1028
+ external_id: T.nilable(String),
1029
+ fbc: T.nilable(String),
1030
+ fbclid: T.nilable(String),
1031
+ fbp: T.nilable(String),
1032
+ first_name: T.nilable(String),
1033
+ gad_source: T.nilable(String),
1034
+ gbraid: T.nilable(String),
1035
+ gclid: T.nilable(String),
1036
+ gender: T.nilable(String),
1037
+ ip: T.nilable(String),
1038
+ is_bot: T.anything,
1039
+ job_title: T.nilable(String),
1040
+ last_name: T.nilable(String),
1041
+ li_fat_id: T.nilable(String),
1042
+ msclkid: T.nilable(String),
1043
+ ndclid: T.nilable(String),
1044
+ phone_number: T.anything,
1045
+ qclid: T.nilable(String),
1046
+ rdt_cid: T.nilable(String),
1047
+ referrer: T.nilable(String),
1048
+ sacid: T.nilable(String),
1049
+ sccid: T.nilable(String),
1050
+ sid: T.nilable(String),
1051
+ state: T.nilable(String),
1052
+ ttclid: T.nilable(String),
1053
+ twclid: T.nilable(String),
1054
+ user_agent: T.nilable(String),
1055
+ user_agent_full_list: T.nilable(String),
1056
+ utm_campaign: T.nilable(String),
1057
+ utm_content: T.nilable(String),
1058
+ utm_medium: T.nilable(String),
1059
+ utm_name: T.nilable(String),
1060
+ utm_source: T.nilable(String),
1061
+ utm_term: T.nilable(String),
1062
+ wbraid: T.nilable(String),
1063
+ zip: T.anything
1064
+ }
1065
+ )
1066
+ end
1067
+ def to_hash
1068
+ end
1069
+ end
1070
+ end
1071
+ end
1072
+ end