zernio-sdk 0.0.528 → 0.0.529

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: c2512b46748f0d6cfcc7050fb70e9e94abe230e6bb68d9949d75808ac1fe393e
4
- data.tar.gz: 24ae76e6fb6124854c7d0f98b0577d1c79439a58a3f920a554e7d2144b431a4e
3
+ metadata.gz: 2e0db6a79e9e00f953f3027692b48bb968aca3afcf369eb2b39a1d3e7fe8c9c4
4
+ data.tar.gz: fadcc6fc532b75244e7488b02a5f115345f7aedd432c284d3ba2e5dd565dd0ef
5
5
  SHA512:
6
- metadata.gz: 20214a9e6724ec1127a30da6268d7b2fbb0bf25e4f6e453cec50462fbba8c80ffd2d0373e6a3834737f36dddd909e721f1f33de66c829c9bab9f11aebcd5ef79
7
- data.tar.gz: ac5951dbf679d2c3ebe3aa184ad460830a6c534e50905b0f9a7141e1ff48a577b465127def86097c6359cd249d555bd832f8e3db1a24a3b0d5cf168057cc3e4b
6
+ metadata.gz: b01573d5ee8adf9f841cf202c718f6b7c9080038e83bce3f3aee59fc7d3495428e208cb3f58891bccd1e2a94b58797cdce10982eeeb44b3e411529b821bb4966
7
+ data.tar.gz: c46db1bad44769174f88ce13a5ecc7f81fe4d353485c4ab69fb582f9825296417f38d58928c8a26891c0ebcd2abf10620d56a05bb6a8c6e9c79279ada1b6a22d
data/README.md CHANGED
@@ -780,6 +780,7 @@ Class | Method | HTTP request | Description
780
780
  - [Zernio::CreateStandaloneAdRequestAttributionSpecInner](docs/CreateStandaloneAdRequestAttributionSpecInner.md)
781
781
  - [Zernio::CreateStandaloneAdRequestBehaviorsInner](docs/CreateStandaloneAdRequestBehaviorsInner.md)
782
782
  - [Zernio::CreateStandaloneAdRequestBrandIdentity](docs/CreateStandaloneAdRequestBrandIdentity.md)
783
+ - [Zernio::CreateStandaloneAdRequestCarouselCardsInner](docs/CreateStandaloneAdRequestCarouselCardsInner.md)
783
784
  - [Zernio::CreateStandaloneAdRequestCitiesInner](docs/CreateStandaloneAdRequestCitiesInner.md)
784
785
  - [Zernio::CreateStandaloneAdRequestCreativesInner](docs/CreateStandaloneAdRequestCreativesInner.md)
785
786
  - [Zernio::CreateStandaloneAdRequestCreativesInnerVideo](docs/CreateStandaloneAdRequestCreativesInnerVideo.md)
data/docs/AdsApi.md CHANGED
@@ -2850,6 +2850,10 @@ opts = {
2850
2850
  level: 'ad', # String | Row granularity
2851
2851
  fields: 'fields_example', # String | Comma-separated Graph insights fields (e.g. spend,impressions,frequency,website_purchase_roas). Omitted = Meta's default set.
2852
2852
  breakdowns: 'breakdowns_example', # String | Comma-separated Graph breakdowns (e.g. age,gender or publisher_platform).
2853
+ action_breakdowns: 'action_breakdowns_example', # String | Comma-separated Graph action breakdowns. Segments the actions[] arrays in each row.
2854
+ action_attribution_windows: 'action_attribution_windows_example', # String | Comma-separated Meta attribution windows. Action values are returned keyed per window.
2855
+ action_report_time: 'action_report_time_example', # String | When actions are counted: impression, conversion or mixed.
2856
+ use_unified_attribution_setting: true, # Boolean | Use the ad sets' own attribution settings for action counting.
2853
2857
  filtering: 'filtering_example', # String | JSON array of Meta filter objects: [{\"field\", \"operator\", \"value\"}]. Applied server-side by Meta.
2854
2858
  date_preset: 'date_preset_example', # String | Meta date_preset (e.g. last_7d, last_30d, this_month). Mutually exclusive with fromDate/toDate.
2855
2859
  from_date: Date.parse('2013-10-20'), # Date | Start of range (YYYY-MM-DD); requires toDate.
@@ -2895,6 +2899,10 @@ end
2895
2899
  | **level** | **String** | Row granularity | [optional] |
2896
2900
  | **fields** | **String** | Comma-separated Graph insights fields (e.g. spend,impressions,frequency,website_purchase_roas). Omitted = Meta's default set. | [optional] |
2897
2901
  | **breakdowns** | **String** | Comma-separated Graph breakdowns (e.g. age,gender or publisher_platform). | [optional] |
2902
+ | **action_breakdowns** | **String** | Comma-separated Graph action breakdowns. Segments the actions[] arrays in each row. | [optional] |
2903
+ | **action_attribution_windows** | **String** | Comma-separated Meta attribution windows. Action values are returned keyed per window. | [optional] |
2904
+ | **action_report_time** | **String** | When actions are counted: impression, conversion or mixed. | [optional] |
2905
+ | **use_unified_attribution_setting** | **Boolean** | Use the ad sets' own attribution settings for action counting. | [optional] |
2898
2906
  | **filtering** | **String** | JSON array of Meta filter objects: [{\"field\", \"operator\", \"value\"}]. Applied server-side by Meta. | [optional] |
2899
2907
  | **date_preset** | **String** | Meta date_preset (e.g. last_7d, last_30d, this_month). Mutually exclusive with fromDate/toDate. | [optional] |
2900
2908
  | **from_date** | **Date** | Start of range (YYYY-MM-DD); requires toDate. | [optional] |
@@ -9,6 +9,10 @@
9
9
  | **level** | **String** | | [optional] |
10
10
  | **fields** | **String** | Comma-separated Graph insights fields. | [optional] |
11
11
  | **breakdowns** | **String** | Comma-separated Graph breakdowns. | [optional] |
12
+ | **action_breakdowns** | **String** | Comma-separated Graph action breakdowns (e.g. action_type,action_destination). | [optional] |
13
+ | **action_attribution_windows** | **Array<String>** | Meta attribution windows (e.g. [\"7d_click\", \"1d_view\"]). Action values are returned keyed per window. | [optional] |
14
+ | **action_report_time** | **String** | When actions are counted: impression, conversion or mixed. | [optional] |
15
+ | **use_unified_attribution_setting** | **Boolean** | Use the ad sets' own attribution settings for action counting. | [optional] |
12
16
  | **filtering** | [**Array<CreateAdInsightsReportRequestFilteringInner>**](CreateAdInsightsReportRequestFilteringInner.md) | Meta filter objects, applied server-side. | [optional] |
13
17
  | **date_preset** | **String** | Mutually exclusive with fromDate/toDate. | [optional] |
14
18
  | **from_date** | **Date** | | [optional] |
@@ -26,6 +30,10 @@ instance = Zernio::CreateAdInsightsReportRequest.new(
26
30
  level: null,
27
31
  fields: null,
28
32
  breakdowns: null,
33
+ action_breakdowns: null,
34
+ action_attribution_windows: null,
35
+ action_report_time: null,
36
+ use_unified_attribution_setting: null,
29
37
  filtering: null,
30
38
  date_preset: null,
31
39
  from_date: null,
@@ -57,6 +57,7 @@
57
57
  | **start_date** | **Time** | Meta only. Ad-set start time (ISO 8601, e.g. \"2026-06-10T09:00:00Z\"), mapped to the ad set's `start_time`. When omitted the ad starts delivering immediately. For lifetime budgets Meta also requires `endDate`. (Same `schedule.startDate` semantics already available on `POST /v1/ads/boost`.) | [optional] |
58
58
  | **instagram_account_id** | **String** | Meta only. Override the Instagram account the ad is delivered as — pass an Instagram Business Account ID (e.g. 17841...), mapped to the creative's `instagram_user_id`. When omitted we auto-resolve the IG account linked to the connected Facebook Page (the existing default). Useful when a Page has more than one eligible IG account. | [optional] |
59
59
  | **dynamic_creative** | [**CreateStandaloneAdRequestDynamicCreative**](CreateStandaloneAdRequestDynamicCreative.md) | | [optional] |
60
+ | **carousel_cards** | [**Array<CreateStandaloneAdRequestCarouselCardsInner>**](CreateStandaloneAdRequestCarouselCardsInner.md) | Meta only. Hand-built carousel: 2-10 authored cards in DETERMINISTIC order, mapped to the creative's `link_data.child_attachments`. Unlike `dynamicCreative`, you control the card order and per-card copy/link. Requires top-level `body`, `linkUrl` and `callToAction`. Mutually exclusive with `imageUrl`/`video`, `creatives[]`, `dynamicCreative`, `placementAssets`, `existingCreativeId`, `adSetId`, `leadGenFormId` and goal `catalog_sales`. | [optional] |
60
61
  | **placement_assets** | [**CreateStandaloneAdRequestPlacementAssets**](CreateStandaloneAdRequestPlacementAssets.md) | | [optional] |
61
62
  | **audience_id** | **String** | Custom audience ID for targeting | [optional] |
62
63
  | **campaign_type** | **String** | Google only | [optional][default to 'display'] |
@@ -135,6 +136,7 @@ instance = Zernio::CreateStandaloneAdRequest.new(
135
136
  start_date: null,
136
137
  instagram_account_id: null,
137
138
  dynamic_creative: null,
139
+ carousel_cards: null,
138
140
  placement_assets: null,
139
141
  audience_id: null,
140
142
  campaign_type: null,
@@ -0,0 +1,26 @@
1
+ # Zernio::CreateStandaloneAdRequestCarouselCardsInner
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **image_url** | **String** | Card image; uploaded to the ad account and referenced by hash. | |
8
+ | **link_url** | **String** | Card destination URL. Defaults to the top-level linkUrl. | [optional] |
9
+ | **headline** | **String** | Card headline, shown below the card image. | [optional] |
10
+ | **description** | **String** | Card description, shown under the headline. | [optional] |
11
+ | **call_to_action** | **String** | Card CTA override. Defaults to the top-level callToAction; same enum. | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'zernio-sdk'
17
+
18
+ instance = Zernio::CreateStandaloneAdRequestCarouselCardsInner.new(
19
+ image_url: null,
20
+ link_url: null,
21
+ headline: null,
22
+ description: null,
23
+ call_to_action: null
24
+ )
25
+ ```
26
+
@@ -2841,6 +2841,10 @@ module Zernio
2841
2841
  # @option opts [String] :level Row granularity
2842
2842
  # @option opts [String] :fields Comma-separated Graph insights fields (e.g. spend,impressions,frequency,website_purchase_roas). Omitted = Meta's default set.
2843
2843
  # @option opts [String] :breakdowns Comma-separated Graph breakdowns (e.g. age,gender or publisher_platform).
2844
+ # @option opts [String] :action_breakdowns Comma-separated Graph action breakdowns. Segments the actions[] arrays in each row.
2845
+ # @option opts [String] :action_attribution_windows Comma-separated Meta attribution windows. Action values are returned keyed per window.
2846
+ # @option opts [String] :action_report_time When actions are counted: impression, conversion or mixed.
2847
+ # @option opts [Boolean] :use_unified_attribution_setting Use the ad sets' own attribution settings for action counting.
2844
2848
  # @option opts [String] :filtering JSON array of Meta filter objects: [{\"field\", \"operator\", \"value\"}]. Applied server-side by Meta.
2845
2849
  # @option opts [String] :date_preset Meta date_preset (e.g. last_7d, last_30d, this_month). Mutually exclusive with fromDate/toDate.
2846
2850
  # @option opts [Date] :from_date Start of range (YYYY-MM-DD); requires toDate.
@@ -2862,6 +2866,10 @@ module Zernio
2862
2866
  # @option opts [String] :level Row granularity
2863
2867
  # @option opts [String] :fields Comma-separated Graph insights fields (e.g. spend,impressions,frequency,website_purchase_roas). Omitted = Meta's default set.
2864
2868
  # @option opts [String] :breakdowns Comma-separated Graph breakdowns (e.g. age,gender or publisher_platform).
2869
+ # @option opts [String] :action_breakdowns Comma-separated Graph action breakdowns. Segments the actions[] arrays in each row.
2870
+ # @option opts [String] :action_attribution_windows Comma-separated Meta attribution windows. Action values are returned keyed per window.
2871
+ # @option opts [String] :action_report_time When actions are counted: impression, conversion or mixed.
2872
+ # @option opts [Boolean] :use_unified_attribution_setting Use the ad sets' own attribution settings for action counting.
2865
2873
  # @option opts [String] :filtering JSON array of Meta filter objects: [{\"field\", \"operator\", \"value\"}]. Applied server-side by Meta.
2866
2874
  # @option opts [String] :date_preset Meta date_preset (e.g. last_7d, last_30d, this_month). Mutually exclusive with fromDate/toDate.
2867
2875
  # @option opts [Date] :from_date Start of range (YYYY-MM-DD); requires toDate.
@@ -2904,6 +2912,10 @@ module Zernio
2904
2912
  query_params[:'level'] = opts[:'level'] if !opts[:'level'].nil?
2905
2913
  query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
2906
2914
  query_params[:'breakdowns'] = opts[:'breakdowns'] if !opts[:'breakdowns'].nil?
2915
+ query_params[:'actionBreakdowns'] = opts[:'action_breakdowns'] if !opts[:'action_breakdowns'].nil?
2916
+ query_params[:'actionAttributionWindows'] = opts[:'action_attribution_windows'] if !opts[:'action_attribution_windows'].nil?
2917
+ query_params[:'actionReportTime'] = opts[:'action_report_time'] if !opts[:'action_report_time'].nil?
2918
+ query_params[:'useUnifiedAttributionSetting'] = opts[:'use_unified_attribution_setting'] if !opts[:'use_unified_attribution_setting'].nil?
2907
2919
  query_params[:'filtering'] = opts[:'filtering'] if !opts[:'filtering'].nil?
2908
2920
  query_params[:'datePreset'] = opts[:'date_preset'] if !opts[:'date_preset'].nil?
2909
2921
  query_params[:'fromDate'] = opts[:'from_date'] if !opts[:'from_date'].nil?
@@ -29,6 +29,18 @@ module Zernio
29
29
  # Comma-separated Graph breakdowns.
30
30
  attr_accessor :breakdowns
31
31
 
32
+ # Comma-separated Graph action breakdowns (e.g. action_type,action_destination).
33
+ attr_accessor :action_breakdowns
34
+
35
+ # Meta attribution windows (e.g. [\"7d_click\", \"1d_view\"]). Action values are returned keyed per window.
36
+ attr_accessor :action_attribution_windows
37
+
38
+ # When actions are counted: impression, conversion or mixed.
39
+ attr_accessor :action_report_time
40
+
41
+ # Use the ad sets' own attribution settings for action counting.
42
+ attr_accessor :use_unified_attribution_setting
43
+
32
44
  # Meta filter objects, applied server-side.
33
45
  attr_accessor :filtering
34
46
 
@@ -71,6 +83,10 @@ module Zernio
71
83
  :'level' => :'level',
72
84
  :'fields' => :'fields',
73
85
  :'breakdowns' => :'breakdowns',
86
+ :'action_breakdowns' => :'actionBreakdowns',
87
+ :'action_attribution_windows' => :'actionAttributionWindows',
88
+ :'action_report_time' => :'actionReportTime',
89
+ :'use_unified_attribution_setting' => :'useUnifiedAttributionSetting',
74
90
  :'filtering' => :'filtering',
75
91
  :'date_preset' => :'datePreset',
76
92
  :'from_date' => :'fromDate',
@@ -97,6 +113,10 @@ module Zernio
97
113
  :'level' => :'String',
98
114
  :'fields' => :'String',
99
115
  :'breakdowns' => :'String',
116
+ :'action_breakdowns' => :'String',
117
+ :'action_attribution_windows' => :'Array<String>',
118
+ :'action_report_time' => :'String',
119
+ :'use_unified_attribution_setting' => :'Boolean',
100
120
  :'filtering' => :'Array<CreateAdInsightsReportRequestFilteringInner>',
101
121
  :'date_preset' => :'String',
102
122
  :'from_date' => :'Date',
@@ -151,6 +171,24 @@ module Zernio
151
171
  self.breakdowns = attributes[:'breakdowns']
152
172
  end
153
173
 
174
+ if attributes.key?(:'action_breakdowns')
175
+ self.action_breakdowns = attributes[:'action_breakdowns']
176
+ end
177
+
178
+ if attributes.key?(:'action_attribution_windows')
179
+ if (value = attributes[:'action_attribution_windows']).is_a?(Array)
180
+ self.action_attribution_windows = value
181
+ end
182
+ end
183
+
184
+ if attributes.key?(:'action_report_time')
185
+ self.action_report_time = attributes[:'action_report_time']
186
+ end
187
+
188
+ if attributes.key?(:'use_unified_attribution_setting')
189
+ self.use_unified_attribution_setting = attributes[:'use_unified_attribution_setting']
190
+ end
191
+
154
192
  if attributes.key?(:'filtering')
155
193
  if (value = attributes[:'filtering']).is_a?(Array)
156
194
  self.filtering = value
@@ -241,6 +279,10 @@ module Zernio
241
279
  level == o.level &&
242
280
  fields == o.fields &&
243
281
  breakdowns == o.breakdowns &&
282
+ action_breakdowns == o.action_breakdowns &&
283
+ action_attribution_windows == o.action_attribution_windows &&
284
+ action_report_time == o.action_report_time &&
285
+ use_unified_attribution_setting == o.use_unified_attribution_setting &&
244
286
  filtering == o.filtering &&
245
287
  date_preset == o.date_preset &&
246
288
  from_date == o.from_date &&
@@ -257,7 +299,7 @@ module Zernio
257
299
  # Calculates hash code according to all attributes.
258
300
  # @return [Integer] Hash code
259
301
  def hash
260
- [account_id, object_id, level, fields, breakdowns, filtering, date_preset, from_date, to_date, time_increment].hash
302
+ [account_id, object_id, level, fields, breakdowns, action_breakdowns, action_attribution_windows, action_report_time, use_unified_attribution_setting, filtering, date_preset, from_date, to_date, time_increment].hash
261
303
  end
262
304
 
263
305
  # Builds the object from hash
@@ -163,6 +163,9 @@ module Zernio
163
163
 
164
164
  attr_accessor :dynamic_creative
165
165
 
166
+ # Meta only. Hand-built carousel: 2-10 authored cards in DETERMINISTIC order, mapped to the creative's `link_data.child_attachments`. Unlike `dynamicCreative`, you control the card order and per-card copy/link. Requires top-level `body`, `linkUrl` and `callToAction`. Mutually exclusive with `imageUrl`/`video`, `creatives[]`, `dynamicCreative`, `placementAssets`, `existingCreativeId`, `adSetId`, `leadGenFormId` and goal `catalog_sales`.
167
+ attr_accessor :carousel_cards
168
+
166
169
  attr_accessor :placement_assets
167
170
 
168
171
  # Custom audience ID for targeting
@@ -291,6 +294,7 @@ module Zernio
291
294
  :'start_date' => :'startDate',
292
295
  :'instagram_account_id' => :'instagramAccountId',
293
296
  :'dynamic_creative' => :'dynamicCreative',
297
+ :'carousel_cards' => :'carouselCards',
294
298
  :'placement_assets' => :'placementAssets',
295
299
  :'audience_id' => :'audienceId',
296
300
  :'campaign_type' => :'campaignType',
@@ -378,6 +382,7 @@ module Zernio
378
382
  :'start_date' => :'Time',
379
383
  :'instagram_account_id' => :'String',
380
384
  :'dynamic_creative' => :'CreateStandaloneAdRequestDynamicCreative',
385
+ :'carousel_cards' => :'Array<CreateStandaloneAdRequestCarouselCardsInner>',
381
386
  :'placement_assets' => :'CreateStandaloneAdRequestPlacementAssets',
382
387
  :'audience_id' => :'String',
383
388
  :'campaign_type' => :'String',
@@ -665,6 +670,12 @@ module Zernio
665
670
  self.dynamic_creative = attributes[:'dynamic_creative']
666
671
  end
667
672
 
673
+ if attributes.key?(:'carousel_cards')
674
+ if (value = attributes[:'carousel_cards']).is_a?(Array)
675
+ self.carousel_cards = value
676
+ end
677
+ end
678
+
668
679
  if attributes.key?(:'placement_assets')
669
680
  self.placement_assets = attributes[:'placement_assets']
670
681
  end
@@ -815,6 +826,14 @@ module Zernio
815
826
  invalid_properties.push('invalid value for "age_max", must be greater than or equal to 13.')
816
827
  end
817
828
 
829
+ if !@carousel_cards.nil? && @carousel_cards.length > 10
830
+ invalid_properties.push('invalid value for "carousel_cards", number of items must be less than or equal to 10.')
831
+ end
832
+
833
+ if !@carousel_cards.nil? && @carousel_cards.length < 2
834
+ invalid_properties.push('invalid value for "carousel_cards", number of items must be greater than or equal to 2.')
835
+ end
836
+
818
837
  if !@attribution_spec.nil? && @attribution_spec.length > 3
819
838
  invalid_properties.push('invalid value for "attribution_spec", number of items must be less than or equal to 3.')
820
839
  end
@@ -865,6 +884,8 @@ module Zernio
865
884
  return false if !@age_max.nil? && @age_max < 13
866
885
  income_tier_validator = EnumAttributeValidator.new('String', ["top_5", "top_10", "top_10_25", "top_25_50"])
867
886
  return false unless income_tier_validator.valid?(@income_tier)
887
+ return false if !@carousel_cards.nil? && @carousel_cards.length > 10
888
+ return false if !@carousel_cards.nil? && @carousel_cards.length < 2
868
889
  campaign_type_validator = EnumAttributeValidator.new('String', ["display", "search"])
869
890
  return false unless campaign_type_validator.valid?(@campaign_type)
870
891
  advantage_audience_validator = EnumAttributeValidator.new('Integer', [0, 1])
@@ -1108,6 +1129,24 @@ module Zernio
1108
1129
  @income_tier = income_tier
1109
1130
  end
1110
1131
 
1132
+ # Custom attribute writer method with validation
1133
+ # @param [Object] carousel_cards Value to be assigned
1134
+ def carousel_cards=(carousel_cards)
1135
+ if carousel_cards.nil?
1136
+ fail ArgumentError, 'carousel_cards cannot be nil'
1137
+ end
1138
+
1139
+ if carousel_cards.length > 10
1140
+ fail ArgumentError, 'invalid value for "carousel_cards", number of items must be less than or equal to 10.'
1141
+ end
1142
+
1143
+ if carousel_cards.length < 2
1144
+ fail ArgumentError, 'invalid value for "carousel_cards", number of items must be greater than or equal to 2.'
1145
+ end
1146
+
1147
+ @carousel_cards = carousel_cards
1148
+ end
1149
+
1111
1150
  # Custom attribute writer method checking allowed values (enum).
1112
1151
  # @param [Object] campaign_type Object to be assigned
1113
1152
  def campaign_type=(campaign_type)
@@ -1252,6 +1291,7 @@ module Zernio
1252
1291
  start_date == o.start_date &&
1253
1292
  instagram_account_id == o.instagram_account_id &&
1254
1293
  dynamic_creative == o.dynamic_creative &&
1294
+ carousel_cards == o.carousel_cards &&
1255
1295
  placement_assets == o.placement_assets &&
1256
1296
  audience_id == o.audience_id &&
1257
1297
  campaign_type == o.campaign_type &&
@@ -1281,7 +1321,7 @@ module Zernio
1281
1321
  # Calculates hash code according to all attributes.
1282
1322
  # @return [Integer] Hash code
1283
1323
  def hash
1284
- [account_id, ad_account_id, name, campaign_name, ad_set_name, ad_name, tracking, goal, optimization_goal, billing_event, budget_amount, budget_type, status, budget_level, currency, headline, long_headline, body, description, call_to_action, link_url, lead_gen_form_id, image_url, images, video, creatives, ad_set_id, existing_campaign_id, existing_creative_id, business_name, board_id, organization_id, targeting, countries, cities, regions, age_min, age_max, interests, zips, metros, custom_locations, behaviors, income_tier, languages, placements, saved_targeting_id, raw_targeting, special_ad_categories, end_date, start_date, instagram_account_id, dynamic_creative, placement_assets, audience_id, campaign_type, keywords, additional_headlines, additional_descriptions, advantage_audience, attribution_spec, gender, bid_strategy, bid_amount, roas_average_floor, platform_specific_data, dsa_beneficiary, dsa_payor, brand_identity, identity_type, promoted_object].hash
1324
+ [account_id, ad_account_id, name, campaign_name, ad_set_name, ad_name, tracking, goal, optimization_goal, billing_event, budget_amount, budget_type, status, budget_level, currency, headline, long_headline, body, description, call_to_action, link_url, lead_gen_form_id, image_url, images, video, creatives, ad_set_id, existing_campaign_id, existing_creative_id, business_name, board_id, organization_id, targeting, countries, cities, regions, age_min, age_max, interests, zips, metros, custom_locations, behaviors, income_tier, languages, placements, saved_targeting_id, raw_targeting, special_ad_categories, end_date, start_date, instagram_account_id, dynamic_creative, carousel_cards, placement_assets, audience_id, campaign_type, keywords, additional_headlines, additional_descriptions, advantage_audience, attribution_spec, gender, bid_strategy, bid_amount, roas_average_floor, platform_specific_data, dsa_beneficiary, dsa_payor, brand_identity, identity_type, promoted_object].hash
1285
1325
  end
1286
1326
 
1287
1327
  # Builds the object from hash
@@ -0,0 +1,243 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ class CreateStandaloneAdRequestCarouselCardsInner < ApiModelBase
18
+ # Card image; uploaded to the ad account and referenced by hash.
19
+ attr_accessor :image_url
20
+
21
+ # Card destination URL. Defaults to the top-level linkUrl.
22
+ attr_accessor :link_url
23
+
24
+ # Card headline, shown below the card image.
25
+ attr_accessor :headline
26
+
27
+ # Card description, shown under the headline.
28
+ attr_accessor :description
29
+
30
+ # Card CTA override. Defaults to the top-level callToAction; same enum.
31
+ attr_accessor :call_to_action
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ def self.attribute_map
35
+ {
36
+ :'image_url' => :'imageUrl',
37
+ :'link_url' => :'linkUrl',
38
+ :'headline' => :'headline',
39
+ :'description' => :'description',
40
+ :'call_to_action' => :'callToAction'
41
+ }
42
+ end
43
+
44
+ # Returns attribute mapping this model knows about
45
+ def self.acceptable_attribute_map
46
+ attribute_map
47
+ end
48
+
49
+ # Returns all the JSON keys this model knows about
50
+ def self.acceptable_attributes
51
+ acceptable_attribute_map.values
52
+ end
53
+
54
+ # Attribute type mapping.
55
+ def self.openapi_types
56
+ {
57
+ :'image_url' => :'String',
58
+ :'link_url' => :'String',
59
+ :'headline' => :'String',
60
+ :'description' => :'String',
61
+ :'call_to_action' => :'String'
62
+ }
63
+ end
64
+
65
+ # List of attributes with nullable: true
66
+ def self.openapi_nullable
67
+ Set.new([
68
+ ])
69
+ end
70
+
71
+ # Initializes the object
72
+ # @param [Hash] attributes Model attributes in the form of hash
73
+ def initialize(attributes = {})
74
+ if (!attributes.is_a?(Hash))
75
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::CreateStandaloneAdRequestCarouselCardsInner` initialize method"
76
+ end
77
+
78
+ # check to see if the attribute exists and convert string to symbol for hash key
79
+ acceptable_attribute_map = self.class.acceptable_attribute_map
80
+ attributes = attributes.each_with_object({}) { |(k, v), h|
81
+ if (!acceptable_attribute_map.key?(k.to_sym))
82
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::CreateStandaloneAdRequestCarouselCardsInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
83
+ end
84
+ h[k.to_sym] = v
85
+ }
86
+
87
+ if attributes.key?(:'image_url')
88
+ self.image_url = attributes[:'image_url']
89
+ else
90
+ self.image_url = nil
91
+ end
92
+
93
+ if attributes.key?(:'link_url')
94
+ self.link_url = attributes[:'link_url']
95
+ end
96
+
97
+ if attributes.key?(:'headline')
98
+ self.headline = attributes[:'headline']
99
+ end
100
+
101
+ if attributes.key?(:'description')
102
+ self.description = attributes[:'description']
103
+ end
104
+
105
+ if attributes.key?(:'call_to_action')
106
+ self.call_to_action = attributes[:'call_to_action']
107
+ end
108
+ end
109
+
110
+ # Show invalid properties with the reasons. Usually used together with valid?
111
+ # @return Array for valid properties with the reasons
112
+ def list_invalid_properties
113
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
114
+ invalid_properties = Array.new
115
+ if @image_url.nil?
116
+ invalid_properties.push('invalid value for "image_url", image_url cannot be nil.')
117
+ end
118
+
119
+ if !@headline.nil? && @headline.to_s.length > 255
120
+ invalid_properties.push('invalid value for "headline", the character length must be smaller than or equal to 255.')
121
+ end
122
+
123
+ if !@description.nil? && @description.to_s.length > 255
124
+ invalid_properties.push('invalid value for "description", the character length must be smaller than or equal to 255.')
125
+ end
126
+
127
+ invalid_properties
128
+ end
129
+
130
+ # Check to see if the all the properties in the model are valid
131
+ # @return true if the model is valid
132
+ def valid?
133
+ warn '[DEPRECATED] the `valid?` method is obsolete'
134
+ return false if @image_url.nil?
135
+ return false if !@headline.nil? && @headline.to_s.length > 255
136
+ return false if !@description.nil? && @description.to_s.length > 255
137
+ true
138
+ end
139
+
140
+ # Custom attribute writer method with validation
141
+ # @param [Object] image_url Value to be assigned
142
+ def image_url=(image_url)
143
+ if image_url.nil?
144
+ fail ArgumentError, 'image_url cannot be nil'
145
+ end
146
+
147
+ @image_url = image_url
148
+ end
149
+
150
+ # Custom attribute writer method with validation
151
+ # @param [Object] headline Value to be assigned
152
+ def headline=(headline)
153
+ if headline.nil?
154
+ fail ArgumentError, 'headline cannot be nil'
155
+ end
156
+
157
+ if headline.to_s.length > 255
158
+ fail ArgumentError, 'invalid value for "headline", the character length must be smaller than or equal to 255.'
159
+ end
160
+
161
+ @headline = headline
162
+ end
163
+
164
+ # Custom attribute writer method with validation
165
+ # @param [Object] description Value to be assigned
166
+ def description=(description)
167
+ if description.nil?
168
+ fail ArgumentError, 'description cannot be nil'
169
+ end
170
+
171
+ if description.to_s.length > 255
172
+ fail ArgumentError, 'invalid value for "description", the character length must be smaller than or equal to 255.'
173
+ end
174
+
175
+ @description = description
176
+ end
177
+
178
+ # Checks equality by comparing each attribute.
179
+ # @param [Object] Object to be compared
180
+ def ==(o)
181
+ return true if self.equal?(o)
182
+ self.class == o.class &&
183
+ image_url == o.image_url &&
184
+ link_url == o.link_url &&
185
+ headline == o.headline &&
186
+ description == o.description &&
187
+ call_to_action == o.call_to_action
188
+ end
189
+
190
+ # @see the `==` method
191
+ # @param [Object] Object to be compared
192
+ def eql?(o)
193
+ self == o
194
+ end
195
+
196
+ # Calculates hash code according to all attributes.
197
+ # @return [Integer] Hash code
198
+ def hash
199
+ [image_url, link_url, headline, description, call_to_action].hash
200
+ end
201
+
202
+ # Builds the object from hash
203
+ # @param [Hash] attributes Model attributes in the form of hash
204
+ # @return [Object] Returns the model itself
205
+ def self.build_from_hash(attributes)
206
+ return nil unless attributes.is_a?(Hash)
207
+ attributes = attributes.transform_keys(&:to_sym)
208
+ transformed_hash = {}
209
+ openapi_types.each_pair do |key, type|
210
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
211
+ transformed_hash["#{key}"] = nil
212
+ elsif type =~ /\AArray<(.*)>/i
213
+ # check to ensure the input is an array given that the attribute
214
+ # is documented as an array but the input is not
215
+ if attributes[attribute_map[key]].is_a?(Array)
216
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
217
+ end
218
+ elsif !attributes[attribute_map[key]].nil?
219
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
220
+ end
221
+ end
222
+ new(transformed_hash)
223
+ end
224
+
225
+ # Returns the object in the form of hash
226
+ # @return [Hash] Returns the object in the form of hash
227
+ def to_hash
228
+ hash = {}
229
+ self.class.attribute_map.each_pair do |attr, param|
230
+ value = self.send(attr)
231
+ if value.nil?
232
+ is_nullable = self.class.openapi_nullable.include?(attr)
233
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
234
+ end
235
+
236
+ hash[param] = _to_hash(value)
237
+ end
238
+ hash
239
+ end
240
+
241
+ end
242
+
243
+ end
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.528'
14
+ VERSION = '0.0.529'
15
15
  end
data/lib/zernio-sdk.rb CHANGED
@@ -248,6 +248,7 @@ require 'zernio-sdk/models/create_standalone_ad_request'
248
248
  require 'zernio-sdk/models/create_standalone_ad_request_attribution_spec_inner'
249
249
  require 'zernio-sdk/models/create_standalone_ad_request_behaviors_inner'
250
250
  require 'zernio-sdk/models/create_standalone_ad_request_brand_identity'
251
+ require 'zernio-sdk/models/create_standalone_ad_request_carousel_cards_inner'
251
252
  require 'zernio-sdk/models/create_standalone_ad_request_cities_inner'
252
253
  require 'zernio-sdk/models/create_standalone_ad_request_creatives_inner'
253
254
  require 'zernio-sdk/models/create_standalone_ad_request_creatives_inner_video'
data/openapi.yaml CHANGED
@@ -33272,6 +33272,10 @@ paths:
33272
33272
  - { name: level, in: query, schema: { type: string, enum: [ad, adset, campaign, account] }, description: Row granularity }
33273
33273
  - { name: fields, in: query, schema: { type: string }, description: "Comma-separated Graph insights fields (e.g. spend,impressions,frequency,website_purchase_roas). Omitted = Meta's default set." }
33274
33274
  - { name: breakdowns, in: query, schema: { type: string }, description: "Comma-separated Graph breakdowns (e.g. age,gender or publisher_platform)." }
33275
+ - { name: actionBreakdowns, in: query, schema: { type: string }, description: "Comma-separated Graph action breakdowns. Segments the actions[] arrays in each row." }
33276
+ - { name: actionAttributionWindows, in: query, schema: { type: string }, description: "Comma-separated Meta attribution windows. Action values are returned keyed per window." }
33277
+ - { name: actionReportTime, in: query, schema: { type: string }, description: "When actions are counted: impression, conversion or mixed." }
33278
+ - { name: useUnifiedAttributionSetting, in: query, schema: { type: boolean }, description: "Use the ad sets' own attribution settings for action counting." }
33275
33279
  - { name: filtering, in: query, schema: { type: string }, description: "JSON array of Meta filter objects: [{\"field\", \"operator\", \"value\"}]. Applied server-side by Meta." }
33276
33280
  - { name: datePreset, in: query, schema: { type: string }, description: "Meta date_preset (e.g. last_7d, last_30d, this_month). Mutually exclusive with fromDate/toDate." }
33277
33281
  - { name: fromDate, in: query, schema: { type: string, format: date }, description: "Start of range (YYYY-MM-DD); requires toDate." }
@@ -33325,6 +33329,13 @@ paths:
33325
33329
  level: { type: string, enum: [ad, adset, campaign, account] }
33326
33330
  fields: { type: string, description: "Comma-separated Graph insights fields." }
33327
33331
  breakdowns: { type: string, description: "Comma-separated Graph breakdowns." }
33332
+ actionBreakdowns: { type: string, description: "Comma-separated Graph action breakdowns (e.g. action_type,action_destination)." }
33333
+ actionAttributionWindows:
33334
+ type: array
33335
+ items: { type: string }
33336
+ description: "Meta attribution windows (e.g. [\"7d_click\", \"1d_view\"]). Action values are returned keyed per window."
33337
+ actionReportTime: { type: string, description: "When actions are counted: impression, conversion or mixed." }
33338
+ useUnifiedAttributionSetting: { type: boolean, description: "Use the ad sets' own attribution settings for action counting." }
33328
33339
  filtering:
33329
33340
  type: array
33330
33341
  description: "Meta filter objects, applied server-side."
@@ -34517,6 +34528,27 @@ paths:
34517
34528
  enum: [SINGLE_IMAGE, CAROUSEL_IMAGE]
34518
34529
  default: SINGLE_IMAGE
34519
34530
  description: "Asset-feed ad format. Defaults to SINGLE_IMAGE."
34531
+ carouselCards:
34532
+ type: array
34533
+ minItems: 2
34534
+ maxItems: 10
34535
+ description: |
34536
+ Meta only. Hand-built carousel: 2-10 authored cards in DETERMINISTIC order, mapped to
34537
+ the creative's `link_data.child_attachments`. Unlike `dynamicCreative`,
34538
+ you control the card order and per-card copy/link. Requires top-level `body`,
34539
+ `linkUrl` and `callToAction`.
34540
+ Mutually exclusive with `imageUrl`/`video`, `creatives[]`, `dynamicCreative`,
34541
+ `placementAssets`, `existingCreativeId`, `adSetId`, `leadGenFormId` and goal
34542
+ `catalog_sales`.
34543
+ items:
34544
+ type: object
34545
+ required: [imageUrl]
34546
+ properties:
34547
+ imageUrl: { type: string, format: uri, description: "Card image; uploaded to the ad account and referenced by hash." }
34548
+ linkUrl: { type: string, format: uri, description: "Card destination URL. Defaults to the top-level linkUrl." }
34549
+ headline: { type: string, maxLength: 255, description: "Card headline, shown below the card image." }
34550
+ description: { type: string, maxLength: 255, description: "Card description, shown under the headline." }
34551
+ callToAction: { type: string, description: "Card CTA override. Defaults to the top-level callToAction; same enum." }
34520
34552
  placementAssets:
34521
34553
  type: object
34522
34554
  description: |
@@ -558,6 +558,10 @@ describe 'AdsApi' do
558
558
  # @option opts [String] :level Row granularity
559
559
  # @option opts [String] :fields Comma-separated Graph insights fields (e.g. spend,impressions,frequency,website_purchase_roas). Omitted &#x3D; Meta&#39;s default set.
560
560
  # @option opts [String] :breakdowns Comma-separated Graph breakdowns (e.g. age,gender or publisher_platform).
561
+ # @option opts [String] :action_breakdowns Comma-separated Graph action breakdowns. Segments the actions[] arrays in each row.
562
+ # @option opts [String] :action_attribution_windows Comma-separated Meta attribution windows. Action values are returned keyed per window.
563
+ # @option opts [String] :action_report_time When actions are counted: impression, conversion or mixed.
564
+ # @option opts [Boolean] :use_unified_attribution_setting Use the ad sets&#39; own attribution settings for action counting.
561
565
  # @option opts [String] :filtering JSON array of Meta filter objects: [{\&quot;field\&quot;, \&quot;operator\&quot;, \&quot;value\&quot;}]. Applied server-side by Meta.
562
566
  # @option opts [String] :date_preset Meta date_preset (e.g. last_7d, last_30d, this_month). Mutually exclusive with fromDate/toDate.
563
567
  # @option opts [Date] :from_date Start of range (YYYY-MM-DD); requires toDate.
@@ -61,6 +61,30 @@ describe Zernio::CreateAdInsightsReportRequest do
61
61
  end
62
62
  end
63
63
 
64
+ describe 'test attribute "action_breakdowns"' do
65
+ it 'should work' do
66
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
67
+ end
68
+ end
69
+
70
+ describe 'test attribute "action_attribution_windows"' do
71
+ it 'should work' do
72
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
73
+ end
74
+ end
75
+
76
+ describe 'test attribute "action_report_time"' do
77
+ it 'should work' do
78
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
79
+ end
80
+ end
81
+
82
+ describe 'test attribute "use_unified_attribution_setting"' do
83
+ it 'should work' do
84
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
85
+ end
86
+ end
87
+
64
88
  describe 'test attribute "filtering"' do
65
89
  it 'should work' do
66
90
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -0,0 +1,60 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::CreateStandaloneAdRequestCarouselCardsInner
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::CreateStandaloneAdRequestCarouselCardsInner do
21
+ #let(:instance) { Zernio::CreateStandaloneAdRequestCarouselCardsInner.new }
22
+
23
+ describe 'test an instance of CreateStandaloneAdRequestCarouselCardsInner' do
24
+ it 'should create an instance of CreateStandaloneAdRequestCarouselCardsInner' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::CreateStandaloneAdRequestCarouselCardsInner)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "image_url"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "link_url"' do
37
+ it 'should work' do
38
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
39
+ end
40
+ end
41
+
42
+ describe 'test attribute "headline"' do
43
+ it 'should work' do
44
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
+ end
46
+ end
47
+
48
+ describe 'test attribute "description"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
54
+ describe 'test attribute "call_to_action"' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
+ end
58
+ end
59
+
60
+ end
@@ -373,6 +373,12 @@ describe Zernio::CreateStandaloneAdRequest do
373
373
  end
374
374
  end
375
375
 
376
+ describe 'test attribute "carousel_cards"' do
377
+ it 'should work' do
378
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
379
+ end
380
+ end
381
+
376
382
  describe 'test attribute "placement_assets"' do
377
383
  it 'should work' do
378
384
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zernio-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.528
4
+ version: 0.0.529
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
@@ -307,6 +307,7 @@ files:
307
307
  - docs/CreateStandaloneAdRequestAttributionSpecInner.md
308
308
  - docs/CreateStandaloneAdRequestBehaviorsInner.md
309
309
  - docs/CreateStandaloneAdRequestBrandIdentity.md
310
+ - docs/CreateStandaloneAdRequestCarouselCardsInner.md
310
311
  - docs/CreateStandaloneAdRequestCitiesInner.md
311
312
  - docs/CreateStandaloneAdRequestCreativesInner.md
312
313
  - docs/CreateStandaloneAdRequestCreativesInnerVideo.md
@@ -1825,6 +1826,7 @@ files:
1825
1826
  - lib/zernio-sdk/models/create_standalone_ad_request_attribution_spec_inner.rb
1826
1827
  - lib/zernio-sdk/models/create_standalone_ad_request_behaviors_inner.rb
1827
1828
  - lib/zernio-sdk/models/create_standalone_ad_request_brand_identity.rb
1829
+ - lib/zernio-sdk/models/create_standalone_ad_request_carousel_cards_inner.rb
1828
1830
  - lib/zernio-sdk/models/create_standalone_ad_request_cities_inner.rb
1829
1831
  - lib/zernio-sdk/models/create_standalone_ad_request_creatives_inner.rb
1830
1832
  - lib/zernio-sdk/models/create_standalone_ad_request_creatives_inner_video.rb
@@ -3296,6 +3298,7 @@ files:
3296
3298
  - spec/models/create_standalone_ad_request_attribution_spec_inner_spec.rb
3297
3299
  - spec/models/create_standalone_ad_request_behaviors_inner_spec.rb
3298
3300
  - spec/models/create_standalone_ad_request_brand_identity_spec.rb
3301
+ - spec/models/create_standalone_ad_request_carousel_cards_inner_spec.rb
3299
3302
  - spec/models/create_standalone_ad_request_cities_inner_spec.rb
3300
3303
  - spec/models/create_standalone_ad_request_creatives_inner_spec.rb
3301
3304
  - spec/models/create_standalone_ad_request_creatives_inner_video_spec.rb
@@ -5671,6 +5674,7 @@ test_files:
5671
5674
  - spec/models/get_you_tube_demographics412_response_scope_status_spec.rb
5672
5675
  - spec/models/update_google_business_location_details_request_categories_additional_categories_inner_spec.rb
5673
5676
  - spec/models/update_workflow_request_spec.rb
5677
+ - spec/models/create_standalone_ad_request_carousel_cards_inner_spec.rb
5674
5678
  - spec/models/validate_phone_number_kyc_address_request_spec.rb
5675
5679
  - spec/models/sync_external_posts200_response_synced_spec.rb
5676
5680
  - spec/models/create_account_group201_response_group_spec.rb