late-sdk 0.0.713 → 0.0.715

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: 703c1ee72b50525532fe3bb4cf4fd913c54fe744716dee6049caf65df8399197
4
- data.tar.gz: '0974a8f4104db93718fb7cc07d22e0f5c1f597a92fae31afad7d2aad686eb94b'
3
+ metadata.gz: 5b1da97d182877ef9205f03e013ea863718df3480442903d47395fcbe11f6029
4
+ data.tar.gz: 99263fe1df8286f58d6df8aa77ebb2100e64160f26860eae98ba5d572c3716c4
5
5
  SHA512:
6
- metadata.gz: 1b7916c0259740e78ab6b594b6b9aa60934fdc8ff0c569581b66609c22461324b414edee01340893fd35486998fb6487725f0909ac7faf346149e1d8e56a5d26
7
- data.tar.gz: 4a98a2cf187b820711d948905e30bd799eddbffc2d60af331bb17c142a50e4612beefccd7160b3ec8daf45cbe1002526bc035da1658295589640adf8e9abfaf8
6
+ metadata.gz: f854642f6281091dea0a7fd7c6fa37484da523808ef7f70a851e01064b73263c9c217a39087d67a783ff33bff0a6447a352cac94d1a5893994c8cda4b6825a2c
7
+ data.tar.gz: c356b8f1104b841de0041a423892ef5a8ca45e1f154ee1ad22ac5a8a06de11673e1f152cd3b542821fe2027d8894540e3b9c32e2ba37b1481333a8789b6bfa11
@@ -18,6 +18,13 @@
18
18
  | **action_values** | **Hash<String, Float>** | Monetary mirror of `actions`, from Meta's Insights `action_values[]` array. Same keying — values are the revenue attributed to each action_type, in ad-account native currency (same unit as `spend`; see the campaign node's `currency` field). Use this to compute revenue-per-event (e.g. avg purchase value). Meta-only; other platforms return {}. | [optional] |
19
19
  | **purchase_value** | **Float** | Convenience sum of purchase-type action values — picked from `actionValues` via the same priority list as `conversions` so both fields describe the same events. In ad-account native currency. 0 when the campaign has no purchase event configured. Meta-only. | [optional] |
20
20
  | **roas** | **Float** | Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level. | [optional] |
21
+ | **cost_per_action** | **Hash<String, Float>** | Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported. | [optional] |
22
+ | **outbound_clicks** | **Integer** | Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0. | [optional] |
23
+ | **outbound_clicks_ctr** | **Float** | Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level. | [optional] |
24
+ | **inline_link_clicks** | **Integer** | In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only. | [optional] |
25
+ | **inline_link_click_ctr** | **Float** | Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level. | [optional] |
26
+ | **unique_clicks** | **Integer** | People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only. | [optional] |
27
+ | **unique_ctr** | **Float** | Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`. | [optional] |
21
28
  | **video_play_actions** | **Integer** | Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`. | [optional] |
22
29
  | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only). | [optional] |
23
30
  | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only). | [optional] |
@@ -53,6 +60,13 @@ instance = Zernio::AdDailyMetrics.new(
53
60
  action_values: {offsite_conversion.fb_pixel_purchase=2456.78, offsite_conversion.fb_pixel_add_to_cart=980.5},
54
61
  purchase_value: null,
55
62
  roas: null,
63
+ cost_per_action: {link_click=0.1052, offsite_conversion.fb_pixel_purchase=4.0114},
64
+ outbound_clicks: null,
65
+ outbound_clicks_ctr: null,
66
+ inline_link_clicks: null,
67
+ inline_link_click_ctr: null,
68
+ unique_clicks: null,
69
+ unique_ctr: null,
56
70
  video_play_actions: null,
57
71
  video30_sec_watched_actions: null,
58
72
  video_thruplay_watched_actions: null,
@@ -12,7 +12,7 @@
12
12
  | **saves** | **Integer** | Saves of the ad's post (`onsite_conversion.post_save`). | [optional] |
13
13
  | **page_likes** | **Integer** | New Page likes attributed to the ad (`like`). | [optional] |
14
14
  | **video_views** | **Integer** | 3-second video views (`video_view`). For completion-based counts use `videoThruplayWatchedActions`. | [optional] |
15
- | **link_clicks** | **Integer** | Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session `inline_link_clicks` reported by `GET /v1/ads/{adId}/analytics`. | [optional] |
15
+ | **link_clicks** | **Integer** | Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session count in the sibling `inlineLinkClicks` field. | [optional] |
16
16
 
17
17
  ## Example
18
18
 
data/docs/AdMetrics.md CHANGED
@@ -18,6 +18,13 @@
18
18
  | **action_values** | **Hash<String, Float>** | Monetary mirror of `actions`, from Meta's Insights `action_values[]` array. Same keying — values are the revenue attributed to each action_type, in ad-account native currency (same unit as `spend`; see the campaign node's `currency` field). Use this to compute revenue-per-event (e.g. avg purchase value). Meta-only; other platforms return {}. | [optional] |
19
19
  | **purchase_value** | **Float** | Convenience sum of purchase-type action values — picked from `actionValues` via the same priority list as `conversions` so both fields describe the same events. In ad-account native currency. 0 when the campaign has no purchase event configured. Meta-only. | [optional] |
20
20
  | **roas** | **Float** | Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level. | [optional] |
21
+ | **cost_per_action** | **Hash<String, Float>** | Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported. | [optional] |
22
+ | **outbound_clicks** | **Integer** | Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0. | [optional] |
23
+ | **outbound_clicks_ctr** | **Float** | Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level. | [optional] |
24
+ | **inline_link_clicks** | **Integer** | In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only. | [optional] |
25
+ | **inline_link_click_ctr** | **Float** | Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level. | [optional] |
26
+ | **unique_clicks** | **Integer** | People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only. | [optional] |
27
+ | **unique_ctr** | **Float** | Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`. | [optional] |
21
28
  | **video_play_actions** | **Integer** | Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`. | [optional] |
22
29
  | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only). | [optional] |
23
30
  | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only). | [optional] |
@@ -52,6 +59,13 @@ instance = Zernio::AdMetrics.new(
52
59
  action_values: {offsite_conversion.fb_pixel_purchase=2456.78, offsite_conversion.fb_pixel_add_to_cart=980.5},
53
60
  purchase_value: null,
54
61
  roas: null,
62
+ cost_per_action: {link_click=0.1052, offsite_conversion.fb_pixel_purchase=4.0114},
63
+ outbound_clicks: null,
64
+ outbound_clicks_ctr: null,
65
+ inline_link_clicks: null,
66
+ inline_link_click_ctr: null,
67
+ unique_clicks: null,
68
+ unique_ctr: null,
55
69
  video_play_actions: null,
56
70
  video30_sec_watched_actions: null,
57
71
  video_thruplay_watched_actions: null,
data/docs/ContactsApi.md CHANGED
@@ -363,7 +363,7 @@ end
363
363
 
364
364
  List contacts
365
365
 
366
- List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and full-text search.
366
+ List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and text search on name, email and company.
367
367
 
368
368
  ### Examples
369
369
 
@@ -380,7 +380,7 @@ api_instance = Zernio::ContactsApi.new
380
380
  opts = {
381
381
  profile_id: 'profile_id_example', # String | Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead.
382
382
  account_id: 'account_id_example', # String | Filter by the SocialAccount that owns the contact channel. Contacts are resolved through their channels, so the profileId contact filter is not applied while accountId is set. A profileId sent alongside is still access-checked and still scopes the returned filters.tags list.
383
- search: 'search_example', # String |
383
+ search: 'search_example', # String | Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries.
384
384
  tag: 'tag_example', # String |
385
385
  tags: 'tags_example', # String | Comma-separated tags, matches contacts carrying any of them
386
386
  platform: 'instagram', # String |
@@ -422,7 +422,7 @@ end
422
422
  | ---- | ---- | ----------- | ----- |
423
423
  | **profile_id** | **String** | Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead. | [optional] |
424
424
  | **account_id** | **String** | Filter by the SocialAccount that owns the contact channel. Contacts are resolved through their channels, so the profileId contact filter is not applied while accountId is set. A profileId sent alongside is still access-checked and still scopes the returned filters.tags list. | [optional] |
425
- | **search** | **String** | | [optional] |
425
+ | **search** | **String** | Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries. | [optional] |
426
426
  | **tag** | **String** | | [optional] |
427
427
  | **tags** | **String** | Comma-separated tags, matches contacts carrying any of them | [optional] |
428
428
  | **platform** | **String** | | [optional] |
@@ -18,6 +18,13 @@
18
18
  | **action_values** | **Hash<String, Float>** | Monetary mirror of `actions`, from Meta's Insights `action_values[]` array. Same keying — values are the revenue attributed to each action_type, in ad-account native currency (same unit as `spend`; see the campaign node's `currency` field). Use this to compute revenue-per-event (e.g. avg purchase value). Meta-only; other platforms return {}. | [optional] |
19
19
  | **purchase_value** | **Float** | Convenience sum of purchase-type action values — picked from `actionValues` via the same priority list as `conversions` so both fields describe the same events. In ad-account native currency. 0 when the campaign has no purchase event configured. Meta-only. | [optional] |
20
20
  | **roas** | **Float** | Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level. | [optional] |
21
+ | **cost_per_action** | **Hash<String, Float>** | Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported. | [optional] |
22
+ | **outbound_clicks** | **Integer** | Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0. | [optional] |
23
+ | **outbound_clicks_ctr** | **Float** | Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level. | [optional] |
24
+ | **inline_link_clicks** | **Integer** | In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only. | [optional] |
25
+ | **inline_link_click_ctr** | **Float** | Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level. | [optional] |
26
+ | **unique_clicks** | **Integer** | People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only. | [optional] |
27
+ | **unique_ctr** | **Float** | Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`. | [optional] |
21
28
  | **video_play_actions** | **Integer** | Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`. | [optional] |
22
29
  | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only). | [optional] |
23
30
  | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only). | [optional] |
@@ -53,6 +60,13 @@ instance = Zernio::GetCampaignAnalytics200ResponseAnalyticsDailyInner.new(
53
60
  action_values: {offsite_conversion.fb_pixel_purchase=2456.78, offsite_conversion.fb_pixel_add_to_cart=980.5},
54
61
  purchase_value: null,
55
62
  roas: null,
63
+ cost_per_action: {link_click=0.1052, offsite_conversion.fb_pixel_purchase=4.0114},
64
+ outbound_clicks: null,
65
+ outbound_clicks_ctr: null,
66
+ inline_link_clicks: null,
67
+ inline_link_click_ctr: null,
68
+ unique_clicks: null,
69
+ unique_ctr: null,
56
70
  video_play_actions: null,
57
71
  video30_sec_watched_actions: null,
58
72
  video_thruplay_watched_actions: null,
@@ -5,7 +5,7 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **id** | **String** | | |
8
- | **contact_id** | **String** | Zernio CRM Contact id for this sender, when one exists. | [optional] |
8
+ | **contact_id** | **String** | Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact. | [optional] |
9
9
  | **name** | **String** | | [optional] |
10
10
  | **username** | **String** | | [optional] |
11
11
  | **picture** | **String** | | [optional] |
@@ -345,11 +345,11 @@ module Zernio
345
345
  end
346
346
 
347
347
  # List contacts
348
- # List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and full-text search.
348
+ # List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and text search on name, email and company.
349
349
  # @param [Hash] opts the optional parameters
350
350
  # @option opts [String] :profile_id Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead.
351
351
  # @option opts [String] :account_id Filter by the SocialAccount that owns the contact channel. Contacts are resolved through their channels, so the profileId contact filter is not applied while accountId is set. A profileId sent alongside is still access-checked and still scopes the returned filters.tags list.
352
- # @option opts [String] :search
352
+ # @option opts [String] :search Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries.
353
353
  # @option opts [String] :tag
354
354
  # @option opts [String] :tags Comma-separated tags, matches contacts carrying any of them
355
355
  # @option opts [String] :platform
@@ -363,11 +363,11 @@ module Zernio
363
363
  end
364
364
 
365
365
  # List contacts
366
- # List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and full-text search.
366
+ # List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and text search on name, email and company.
367
367
  # @param [Hash] opts the optional parameters
368
368
  # @option opts [String] :profile_id Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead.
369
369
  # @option opts [String] :account_id Filter by the SocialAccount that owns the contact channel. Contacts are resolved through their channels, so the profileId contact filter is not applied while accountId is set. A profileId sent alongside is still access-checked and still scopes the returned filters.tags list.
370
- # @option opts [String] :search
370
+ # @option opts [String] :search Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries.
371
371
  # @option opts [String] :tag
372
372
  # @option opts [String] :tags Comma-separated tags, matches contacts carrying any of them
373
373
  # @option opts [String] :platform
@@ -54,6 +54,27 @@ module Zernio
54
54
  # Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
55
55
  attr_accessor :roas
56
56
 
57
+ # Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported.
58
+ attr_accessor :cost_per_action
59
+
60
+ # Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0.
61
+ attr_accessor :outbound_clicks
62
+
63
+ # Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level.
64
+ attr_accessor :outbound_clicks_ctr
65
+
66
+ # In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only.
67
+ attr_accessor :inline_link_clicks
68
+
69
+ # Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level.
70
+ attr_accessor :inline_link_click_ctr
71
+
72
+ # People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only.
73
+ attr_accessor :unique_clicks
74
+
75
+ # Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`.
76
+ attr_accessor :unique_ctr
77
+
57
78
  # Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
58
79
  attr_accessor :video_play_actions
59
80
 
@@ -111,6 +132,13 @@ module Zernio
111
132
  :'action_values' => :'actionValues',
112
133
  :'purchase_value' => :'purchaseValue',
113
134
  :'roas' => :'roas',
135
+ :'cost_per_action' => :'costPerAction',
136
+ :'outbound_clicks' => :'outboundClicks',
137
+ :'outbound_clicks_ctr' => :'outboundClicksCtr',
138
+ :'inline_link_clicks' => :'inlineLinkClicks',
139
+ :'inline_link_click_ctr' => :'inlineLinkClickCtr',
140
+ :'unique_clicks' => :'uniqueClicks',
141
+ :'unique_ctr' => :'uniqueCtr',
114
142
  :'video_play_actions' => :'videoPlayActions',
115
143
  :'video30_sec_watched_actions' => :'video30SecWatchedActions',
116
144
  :'video_thruplay_watched_actions' => :'videoThruplayWatchedActions',
@@ -155,6 +183,13 @@ module Zernio
155
183
  :'action_values' => :'Hash<String, Float>',
156
184
  :'purchase_value' => :'Float',
157
185
  :'roas' => :'Float',
186
+ :'cost_per_action' => :'Hash<String, Float>',
187
+ :'outbound_clicks' => :'Integer',
188
+ :'outbound_clicks_ctr' => :'Float',
189
+ :'inline_link_clicks' => :'Integer',
190
+ :'inline_link_click_ctr' => :'Float',
191
+ :'unique_clicks' => :'Integer',
192
+ :'unique_ctr' => :'Float',
158
193
  :'video_play_actions' => :'Integer',
159
194
  :'video30_sec_watched_actions' => :'Integer',
160
195
  :'video_thruplay_watched_actions' => :'Integer',
@@ -261,6 +296,36 @@ module Zernio
261
296
  self.roas = attributes[:'roas']
262
297
  end
263
298
 
299
+ if attributes.key?(:'cost_per_action')
300
+ if (value = attributes[:'cost_per_action']).is_a?(Hash)
301
+ self.cost_per_action = value
302
+ end
303
+ end
304
+
305
+ if attributes.key?(:'outbound_clicks')
306
+ self.outbound_clicks = attributes[:'outbound_clicks']
307
+ end
308
+
309
+ if attributes.key?(:'outbound_clicks_ctr')
310
+ self.outbound_clicks_ctr = attributes[:'outbound_clicks_ctr']
311
+ end
312
+
313
+ if attributes.key?(:'inline_link_clicks')
314
+ self.inline_link_clicks = attributes[:'inline_link_clicks']
315
+ end
316
+
317
+ if attributes.key?(:'inline_link_click_ctr')
318
+ self.inline_link_click_ctr = attributes[:'inline_link_click_ctr']
319
+ end
320
+
321
+ if attributes.key?(:'unique_clicks')
322
+ self.unique_clicks = attributes[:'unique_clicks']
323
+ end
324
+
325
+ if attributes.key?(:'unique_ctr')
326
+ self.unique_ctr = attributes[:'unique_ctr']
327
+ end
328
+
264
329
  if attributes.key?(:'video_play_actions')
265
330
  self.video_play_actions = attributes[:'video_play_actions']
266
331
  end
@@ -352,6 +417,13 @@ module Zernio
352
417
  action_values == o.action_values &&
353
418
  purchase_value == o.purchase_value &&
354
419
  roas == o.roas &&
420
+ cost_per_action == o.cost_per_action &&
421
+ outbound_clicks == o.outbound_clicks &&
422
+ outbound_clicks_ctr == o.outbound_clicks_ctr &&
423
+ inline_link_clicks == o.inline_link_clicks &&
424
+ inline_link_click_ctr == o.inline_link_click_ctr &&
425
+ unique_clicks == o.unique_clicks &&
426
+ unique_ctr == o.unique_ctr &&
355
427
  video_play_actions == o.video_play_actions &&
356
428
  video30_sec_watched_actions == o.video30_sec_watched_actions &&
357
429
  video_thruplay_watched_actions == o.video_thruplay_watched_actions &&
@@ -377,7 +449,7 @@ module Zernio
377
449
  # Calculates hash code according to all attributes.
378
450
  # @return [Integer] Hash code
379
451
  def hash
380
- [spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at, date].hash
452
+ [spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, cost_per_action, outbound_clicks, outbound_clicks_ctr, inline_link_clicks, inline_link_click_ctr, unique_clicks, unique_ctr, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at, date].hash
381
453
  end
382
454
 
383
455
  # Builds the object from hash
@@ -40,7 +40,7 @@ module Zernio
40
40
  # 3-second video views (`video_view`). For completion-based counts use `videoThruplayWatchedActions`.
41
41
  attr_accessor :video_views
42
42
 
43
- # Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session `inline_link_clicks` reported by `GET /v1/ads/{adId}/analytics`.
43
+ # Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session count in the sibling `inlineLinkClicks` field.
44
44
  attr_accessor :link_clicks
45
45
 
46
46
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -53,6 +53,27 @@ module Zernio
53
53
  # Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
54
54
  attr_accessor :roas
55
55
 
56
+ # Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported.
57
+ attr_accessor :cost_per_action
58
+
59
+ # Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0.
60
+ attr_accessor :outbound_clicks
61
+
62
+ # Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level.
63
+ attr_accessor :outbound_clicks_ctr
64
+
65
+ # In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only.
66
+ attr_accessor :inline_link_clicks
67
+
68
+ # Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level.
69
+ attr_accessor :inline_link_click_ctr
70
+
71
+ # People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only.
72
+ attr_accessor :unique_clicks
73
+
74
+ # Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`.
75
+ attr_accessor :unique_ctr
76
+
56
77
  # Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
57
78
  attr_accessor :video_play_actions
58
79
 
@@ -107,6 +128,13 @@ module Zernio
107
128
  :'action_values' => :'actionValues',
108
129
  :'purchase_value' => :'purchaseValue',
109
130
  :'roas' => :'roas',
131
+ :'cost_per_action' => :'costPerAction',
132
+ :'outbound_clicks' => :'outboundClicks',
133
+ :'outbound_clicks_ctr' => :'outboundClicksCtr',
134
+ :'inline_link_clicks' => :'inlineLinkClicks',
135
+ :'inline_link_click_ctr' => :'inlineLinkClickCtr',
136
+ :'unique_clicks' => :'uniqueClicks',
137
+ :'unique_ctr' => :'uniqueCtr',
110
138
  :'video_play_actions' => :'videoPlayActions',
111
139
  :'video30_sec_watched_actions' => :'video30SecWatchedActions',
112
140
  :'video_thruplay_watched_actions' => :'videoThruplayWatchedActions',
@@ -150,6 +178,13 @@ module Zernio
150
178
  :'action_values' => :'Hash<String, Float>',
151
179
  :'purchase_value' => :'Float',
152
180
  :'roas' => :'Float',
181
+ :'cost_per_action' => :'Hash<String, Float>',
182
+ :'outbound_clicks' => :'Integer',
183
+ :'outbound_clicks_ctr' => :'Float',
184
+ :'inline_link_clicks' => :'Integer',
185
+ :'inline_link_click_ctr' => :'Float',
186
+ :'unique_clicks' => :'Integer',
187
+ :'unique_ctr' => :'Float',
153
188
  :'video_play_actions' => :'Integer',
154
189
  :'video30_sec_watched_actions' => :'Integer',
155
190
  :'video_thruplay_watched_actions' => :'Integer',
@@ -248,6 +283,36 @@ module Zernio
248
283
  self.roas = attributes[:'roas']
249
284
  end
250
285
 
286
+ if attributes.key?(:'cost_per_action')
287
+ if (value = attributes[:'cost_per_action']).is_a?(Hash)
288
+ self.cost_per_action = value
289
+ end
290
+ end
291
+
292
+ if attributes.key?(:'outbound_clicks')
293
+ self.outbound_clicks = attributes[:'outbound_clicks']
294
+ end
295
+
296
+ if attributes.key?(:'outbound_clicks_ctr')
297
+ self.outbound_clicks_ctr = attributes[:'outbound_clicks_ctr']
298
+ end
299
+
300
+ if attributes.key?(:'inline_link_clicks')
301
+ self.inline_link_clicks = attributes[:'inline_link_clicks']
302
+ end
303
+
304
+ if attributes.key?(:'inline_link_click_ctr')
305
+ self.inline_link_click_ctr = attributes[:'inline_link_click_ctr']
306
+ end
307
+
308
+ if attributes.key?(:'unique_clicks')
309
+ self.unique_clicks = attributes[:'unique_clicks']
310
+ end
311
+
312
+ if attributes.key?(:'unique_ctr')
313
+ self.unique_ctr = attributes[:'unique_ctr']
314
+ end
315
+
251
316
  if attributes.key?(:'video_play_actions')
252
317
  self.video_play_actions = attributes[:'video_play_actions']
253
318
  end
@@ -335,6 +400,13 @@ module Zernio
335
400
  action_values == o.action_values &&
336
401
  purchase_value == o.purchase_value &&
337
402
  roas == o.roas &&
403
+ cost_per_action == o.cost_per_action &&
404
+ outbound_clicks == o.outbound_clicks &&
405
+ outbound_clicks_ctr == o.outbound_clicks_ctr &&
406
+ inline_link_clicks == o.inline_link_clicks &&
407
+ inline_link_click_ctr == o.inline_link_click_ctr &&
408
+ unique_clicks == o.unique_clicks &&
409
+ unique_ctr == o.unique_ctr &&
338
410
  video_play_actions == o.video_play_actions &&
339
411
  video30_sec_watched_actions == o.video30_sec_watched_actions &&
340
412
  video_thruplay_watched_actions == o.video_thruplay_watched_actions &&
@@ -359,7 +431,7 @@ module Zernio
359
431
  # Calculates hash code according to all attributes.
360
432
  # @return [Integer] Hash code
361
433
  def hash
362
- [spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at].hash
434
+ [spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, cost_per_action, outbound_clicks, outbound_clicks_ctr, inline_link_clicks, inline_link_click_ctr, unique_clicks, unique_ctr, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at].hash
363
435
  end
364
436
 
365
437
  # Builds the object from hash
@@ -53,6 +53,27 @@ module Zernio
53
53
  # Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
54
54
  attr_accessor :roas
55
55
 
56
+ # Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported.
57
+ attr_accessor :cost_per_action
58
+
59
+ # Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0.
60
+ attr_accessor :outbound_clicks
61
+
62
+ # Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level.
63
+ attr_accessor :outbound_clicks_ctr
64
+
65
+ # In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only.
66
+ attr_accessor :inline_link_clicks
67
+
68
+ # Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level.
69
+ attr_accessor :inline_link_click_ctr
70
+
71
+ # People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only.
72
+ attr_accessor :unique_clicks
73
+
74
+ # Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`.
75
+ attr_accessor :unique_ctr
76
+
56
77
  # Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
57
78
  attr_accessor :video_play_actions
58
79
 
@@ -109,6 +130,13 @@ module Zernio
109
130
  :'action_values' => :'actionValues',
110
131
  :'purchase_value' => :'purchaseValue',
111
132
  :'roas' => :'roas',
133
+ :'cost_per_action' => :'costPerAction',
134
+ :'outbound_clicks' => :'outboundClicks',
135
+ :'outbound_clicks_ctr' => :'outboundClicksCtr',
136
+ :'inline_link_clicks' => :'inlineLinkClicks',
137
+ :'inline_link_click_ctr' => :'inlineLinkClickCtr',
138
+ :'unique_clicks' => :'uniqueClicks',
139
+ :'unique_ctr' => :'uniqueCtr',
112
140
  :'video_play_actions' => :'videoPlayActions',
113
141
  :'video30_sec_watched_actions' => :'video30SecWatchedActions',
114
142
  :'video_thruplay_watched_actions' => :'videoThruplayWatchedActions',
@@ -153,6 +181,13 @@ module Zernio
153
181
  :'action_values' => :'Hash<String, Float>',
154
182
  :'purchase_value' => :'Float',
155
183
  :'roas' => :'Float',
184
+ :'cost_per_action' => :'Hash<String, Float>',
185
+ :'outbound_clicks' => :'Integer',
186
+ :'outbound_clicks_ctr' => :'Float',
187
+ :'inline_link_clicks' => :'Integer',
188
+ :'inline_link_click_ctr' => :'Float',
189
+ :'unique_clicks' => :'Integer',
190
+ :'unique_ctr' => :'Float',
156
191
  :'video_play_actions' => :'Integer',
157
192
  :'video30_sec_watched_actions' => :'Integer',
158
193
  :'video_thruplay_watched_actions' => :'Integer',
@@ -259,6 +294,36 @@ module Zernio
259
294
  self.roas = attributes[:'roas']
260
295
  end
261
296
 
297
+ if attributes.key?(:'cost_per_action')
298
+ if (value = attributes[:'cost_per_action']).is_a?(Hash)
299
+ self.cost_per_action = value
300
+ end
301
+ end
302
+
303
+ if attributes.key?(:'outbound_clicks')
304
+ self.outbound_clicks = attributes[:'outbound_clicks']
305
+ end
306
+
307
+ if attributes.key?(:'outbound_clicks_ctr')
308
+ self.outbound_clicks_ctr = attributes[:'outbound_clicks_ctr']
309
+ end
310
+
311
+ if attributes.key?(:'inline_link_clicks')
312
+ self.inline_link_clicks = attributes[:'inline_link_clicks']
313
+ end
314
+
315
+ if attributes.key?(:'inline_link_click_ctr')
316
+ self.inline_link_click_ctr = attributes[:'inline_link_click_ctr']
317
+ end
318
+
319
+ if attributes.key?(:'unique_clicks')
320
+ self.unique_clicks = attributes[:'unique_clicks']
321
+ end
322
+
323
+ if attributes.key?(:'unique_ctr')
324
+ self.unique_ctr = attributes[:'unique_ctr']
325
+ end
326
+
262
327
  if attributes.key?(:'video_play_actions')
263
328
  self.video_play_actions = attributes[:'video_play_actions']
264
329
  end
@@ -350,6 +415,13 @@ module Zernio
350
415
  action_values == o.action_values &&
351
416
  purchase_value == o.purchase_value &&
352
417
  roas == o.roas &&
418
+ cost_per_action == o.cost_per_action &&
419
+ outbound_clicks == o.outbound_clicks &&
420
+ outbound_clicks_ctr == o.outbound_clicks_ctr &&
421
+ inline_link_clicks == o.inline_link_clicks &&
422
+ inline_link_click_ctr == o.inline_link_click_ctr &&
423
+ unique_clicks == o.unique_clicks &&
424
+ unique_ctr == o.unique_ctr &&
353
425
  video_play_actions == o.video_play_actions &&
354
426
  video30_sec_watched_actions == o.video30_sec_watched_actions &&
355
427
  video_thruplay_watched_actions == o.video_thruplay_watched_actions &&
@@ -375,7 +447,7 @@ module Zernio
375
447
  # Calculates hash code according to all attributes.
376
448
  # @return [Integer] Hash code
377
449
  def hash
378
- [spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at, date].hash
450
+ [spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, cost_per_action, outbound_clicks, outbound_clicks_ctr, inline_link_clicks, inline_link_click_ctr, unique_clicks, unique_ctr, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at, date].hash
379
451
  end
380
452
 
381
453
  # Builds the object from hash
@@ -17,7 +17,7 @@ module Zernio
17
17
  class WebhookPayloadMessageSentMessageSender < ApiModelBase
18
18
  attr_accessor :id
19
19
 
20
- # Zernio CRM Contact id for this sender, when one exists.
20
+ # Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact.
21
21
  attr_accessor :contact_id
22
22
 
23
23
  attr_accessor :name
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.713'
14
+ VERSION = '0.0.715'
15
15
  end
data/openapi.yaml CHANGED
@@ -3738,7 +3738,7 @@ components:
3738
3738
  type: string
3739
3739
  contactId:
3740
3740
  type: string
3741
- description: Zernio CRM Contact id for this sender, when one exists.
3741
+ description: 'Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact.'
3742
3742
  name:
3743
3743
  type: string
3744
3744
  username:
@@ -6908,6 +6908,20 @@ components:
6908
6908
  roas:
6909
6909
  type: number
6910
6910
  description: "Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level."
6911
+ costPerAction:
6912
+ type: object
6913
+ additionalProperties:
6914
+ type: number
6915
+ description: "Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported."
6916
+ example:
6917
+ link_click: 0.1052
6918
+ offsite_conversion.fb_pixel_purchase: 4.0114
6919
+ outboundClicks: { type: integer, description: "Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0." }
6920
+ outboundClicksCtr: { type: number, description: "Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level." }
6921
+ inlineLinkClicks: { type: integer, description: "In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only." }
6922
+ inlineLinkClickCtr: { type: number, description: "Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level." }
6923
+ uniqueClicks: { type: integer, description: "People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only." }
6924
+ uniqueCtr: { type: number, description: "Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`." }
6911
6925
  videoPlayActions:
6912
6926
  type: integer
6913
6927
  description: "Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`."
@@ -6982,7 +6996,7 @@ components:
6982
6996
  saves: { type: integer, description: "Saves of the ad's post (`onsite_conversion.post_save`)." }
6983
6997
  pageLikes: { type: integer, description: "New Page likes attributed to the ad (`like`)." }
6984
6998
  videoViews: { type: integer, description: "3-second video views (`video_view`). For completion-based counts use `videoThruplayWatchedActions`." }
6985
- linkClicks: { type: integer, description: "Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session `inline_link_clicks` reported by `GET /v1/ads/{adId}/analytics`." }
6999
+ linkClicks: { type: integer, description: "Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session count in the sibling `inlineLinkClicks` field." }
6986
7000
  AdDailyMetrics:
6987
7001
  description: |
6988
7002
  One day of metrics. Same fields as `AdMetrics` plus the `date` they
@@ -34620,12 +34634,12 @@ paths:
34620
34634
  x-resource-group: "contacts"
34621
34635
  operationId: listContacts
34622
34636
  summary: List contacts
34623
- description: List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and full-text search.
34637
+ description: List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and text search on name, email and company.
34624
34638
  tags: [Contacts]
34625
34639
  parameters:
34626
34640
  - { name: profileId, in: query, schema: { type: string }, description: 'Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead.' }
34627
34641
  - { name: accountId, in: query, schema: { type: string }, description: 'Filter by the SocialAccount that owns the contact channel. Contacts are resolved through their channels, so the profileId contact filter is not applied while accountId is set. A profileId sent alongside is still access-checked and still scopes the returned filters.tags list.' }
34628
- - { name: search, in: query, schema: { type: string } }
34642
+ - { name: search, in: query, schema: { type: string }, description: 'Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries.' }
34629
34643
  - { name: tag, in: query, schema: { type: string } }
34630
34644
  - { name: tags, in: query, schema: { type: string }, description: 'Comma-separated tags, matches contacts carrying any of them' }
34631
34645
  - { name: platform, in: query, schema: { type: string, enum: [instagram, facebook, telegram, twitter, bluesky, reddit, whatsapp] } }
@@ -94,11 +94,11 @@ describe 'ContactsApi' do
94
94
 
95
95
  # unit tests for list_contacts
96
96
  # List contacts
97
- # List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and full-text search.
97
+ # List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and text search on name, email and company.
98
98
  # @param [Hash] opts the optional parameters
99
99
  # @option opts [String] :profile_id Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead.
100
100
  # @option opts [String] :account_id Filter by the SocialAccount that owns the contact channel. Contacts are resolved through their channels, so the profileId contact filter is not applied while accountId is set. A profileId sent alongside is still access-checked and still scopes the returned filters.tags list.
101
- # @option opts [String] :search
101
+ # @option opts [String] :search Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries.
102
102
  # @option opts [String] :tag
103
103
  # @option opts [String] :tags Comma-separated tags, matches contacts carrying any of them
104
104
  # @option opts [String] :platform
@@ -111,6 +111,48 @@ describe Zernio::AdDailyMetrics do
111
111
  end
112
112
  end
113
113
 
114
+ describe 'test attribute "cost_per_action"' do
115
+ it 'should work' do
116
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
117
+ end
118
+ end
119
+
120
+ describe 'test attribute "outbound_clicks"' do
121
+ it 'should work' do
122
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
123
+ end
124
+ end
125
+
126
+ describe 'test attribute "outbound_clicks_ctr"' do
127
+ it 'should work' do
128
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
129
+ end
130
+ end
131
+
132
+ describe 'test attribute "inline_link_clicks"' do
133
+ it 'should work' do
134
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
135
+ end
136
+ end
137
+
138
+ describe 'test attribute "inline_link_click_ctr"' do
139
+ it 'should work' do
140
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
141
+ end
142
+ end
143
+
144
+ describe 'test attribute "unique_clicks"' do
145
+ it 'should work' do
146
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
147
+ end
148
+ end
149
+
150
+ describe 'test attribute "unique_ctr"' do
151
+ it 'should work' do
152
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
153
+ end
154
+ end
155
+
114
156
  describe 'test attribute "video_play_actions"' do
115
157
  it 'should work' do
116
158
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -111,6 +111,48 @@ describe Zernio::AdMetrics do
111
111
  end
112
112
  end
113
113
 
114
+ describe 'test attribute "cost_per_action"' do
115
+ it 'should work' do
116
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
117
+ end
118
+ end
119
+
120
+ describe 'test attribute "outbound_clicks"' do
121
+ it 'should work' do
122
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
123
+ end
124
+ end
125
+
126
+ describe 'test attribute "outbound_clicks_ctr"' do
127
+ it 'should work' do
128
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
129
+ end
130
+ end
131
+
132
+ describe 'test attribute "inline_link_clicks"' do
133
+ it 'should work' do
134
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
135
+ end
136
+ end
137
+
138
+ describe 'test attribute "inline_link_click_ctr"' do
139
+ it 'should work' do
140
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
141
+ end
142
+ end
143
+
144
+ describe 'test attribute "unique_clicks"' do
145
+ it 'should work' do
146
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
147
+ end
148
+ end
149
+
150
+ describe 'test attribute "unique_ctr"' do
151
+ it 'should work' do
152
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
153
+ end
154
+ end
155
+
114
156
  describe 'test attribute "video_play_actions"' do
115
157
  it 'should work' do
116
158
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -111,6 +111,48 @@ describe Zernio::GetCampaignAnalytics200ResponseAnalyticsDailyInner do
111
111
  end
112
112
  end
113
113
 
114
+ describe 'test attribute "cost_per_action"' do
115
+ it 'should work' do
116
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
117
+ end
118
+ end
119
+
120
+ describe 'test attribute "outbound_clicks"' do
121
+ it 'should work' do
122
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
123
+ end
124
+ end
125
+
126
+ describe 'test attribute "outbound_clicks_ctr"' do
127
+ it 'should work' do
128
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
129
+ end
130
+ end
131
+
132
+ describe 'test attribute "inline_link_clicks"' do
133
+ it 'should work' do
134
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
135
+ end
136
+ end
137
+
138
+ describe 'test attribute "inline_link_click_ctr"' do
139
+ it 'should work' do
140
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
141
+ end
142
+ end
143
+
144
+ describe 'test attribute "unique_clicks"' do
145
+ it 'should work' do
146
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
147
+ end
148
+ end
149
+
150
+ describe 'test attribute "unique_ctr"' do
151
+ it 'should work' do
152
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
153
+ end
154
+ end
155
+
114
156
  describe 'test attribute "video_play_actions"' do
115
157
  it 'should work' do
116
158
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: late-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.713
4
+ version: 0.0.715
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-11 00:00:00.000000000 Z
11
+ date: 2026-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -5108,7 +5108,7 @@ files:
5108
5108
  - spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
5109
5109
  - spec/models/you_tube_video_retention_response_spec.rb
5110
5110
  - spec/spec_helper.rb
5111
- - zernio-sdk-0.0.713.gem
5111
+ - zernio-sdk-0.0.715.gem
5112
5112
  - zernio-sdk.gemspec
5113
5113
  homepage: https://openapi-generator.tech
5114
5114
  licenses:
Binary file