zernio-sdk 0.0.550 → 0.0.552

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +73 -75
  3. data/docs/AdAccountsApi.md +915 -0
  4. data/docs/AdCampaignsApi.md +615 -15
  5. data/docs/AdCreativesApi.md +815 -0
  6. data/docs/AdInsightsApi.md +415 -0
  7. data/docs/AdTargetingApi.md +371 -0
  8. data/docs/AnalyticsApi.md +7 -7
  9. data/docs/BoostPostRequestTracking.md +1 -1
  10. data/docs/{CreateLeadFormRequestQuestionsInnerOptionsInner.md → BoostPostRequestTrackingUrlTagsInner.md} +2 -2
  11. data/docs/ConversionsApi.md +890 -0
  12. data/docs/CreateLeadFormRequestQuestionsInner.md +1 -1
  13. data/docs/LeadGenApi.md +527 -0
  14. data/docs/MessagingAdsApi.md +215 -0
  15. data/docs/ReachAndFrequencyApi.md +294 -0
  16. data/docs/TrackingTagsApi.md +141 -0
  17. data/docs/YouTubeDailyViewsResponse.md +2 -0
  18. data/docs/YouTubeDemographicsResponse.md +2 -0
  19. data/docs/YouTubeVideoRetentionResponse.md +2 -0
  20. data/lib/zernio-sdk/api/ad_accounts_api.rb +958 -0
  21. data/lib/zernio-sdk/api/ad_campaigns_api.rb +618 -12
  22. data/lib/zernio-sdk/api/ad_creatives_api.rb +826 -0
  23. data/lib/zernio-sdk/api/ad_insights_api.rb +446 -0
  24. data/lib/zernio-sdk/api/ad_targeting_api.rb +404 -0
  25. data/lib/zernio-sdk/api/analytics_api.rb +8 -8
  26. data/lib/zernio-sdk/api/conversions_api.rb +936 -0
  27. data/lib/zernio-sdk/api/lead_gen_api.rb +547 -0
  28. data/lib/zernio-sdk/api/messaging_ads_api.rb +226 -0
  29. data/lib/zernio-sdk/api/reach_and_frequency_api.rb +316 -0
  30. data/lib/zernio-sdk/api/tracking_tags_api.rb +137 -0
  31. data/lib/zernio-sdk/models/boost_post_request_tracking.rb +5 -2
  32. data/lib/zernio-sdk/models/{create_lead_form_request_questions_inner_options_inner.rb → boost_post_request_tracking_url_tags_inner.rb} +3 -3
  33. data/lib/zernio-sdk/models/create_lead_form_request_questions_inner.rb +1 -1
  34. data/lib/zernio-sdk/models/you_tube_daily_views_response.rb +11 -1
  35. data/lib/zernio-sdk/models/you_tube_demographics_response.rb +11 -1
  36. data/lib/zernio-sdk/models/you_tube_video_retention_response.rb +11 -1
  37. data/lib/zernio-sdk/version.rb +1 -1
  38. data/lib/zernio-sdk.rb +9 -2
  39. data/openapi.yaml +329 -163
  40. data/spec/api/ad_accounts_api_spec.rb +206 -0
  41. data/spec/api/ad_campaigns_api_spec.rb +119 -6
  42. data/spec/api/ad_creatives_api_spec.rb +182 -0
  43. data/spec/api/ad_insights_api_spec.rb +120 -0
  44. data/spec/api/ad_targeting_api_spec.rb +101 -0
  45. data/spec/api/analytics_api_spec.rb +4 -4
  46. data/spec/api/conversions_api_spec.rb +199 -0
  47. data/spec/api/lead_gen_api_spec.rb +131 -0
  48. data/spec/api/messaging_ads_api_spec.rb +71 -0
  49. data/spec/api/reach_and_frequency_api_spec.rb +87 -0
  50. data/spec/api/tracking_tags_api_spec.rb +25 -0
  51. data/spec/models/{create_lead_form_request_questions_inner_options_inner_spec.rb → boost_post_request_tracking_url_tags_inner_spec.rb} +6 -6
  52. data/spec/models/you_tube_daily_views_response_spec.rb +6 -0
  53. data/spec/models/you_tube_demographics_response_spec.rb +6 -0
  54. data/spec/models/you_tube_video_retention_response_spec.rb +6 -0
  55. metadata +38 -10
  56. data/docs/AdsApi.md +0 -5278
  57. data/lib/zernio-sdk/api/ads_api.rb +0 -5391
  58. data/spec/api/ads_api_spec.rb +0 -1015
@@ -0,0 +1,826 @@
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 'cgi'
14
+
15
+ module Zernio
16
+ class AdCreativesApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create a standalone creative
23
+ # Creates a creative in the library WITHOUT an ad, reusable on the create endpoints via `existingCreativeId`. Provide exactly one of `imageUrl` (uploaded server-side), `imageHash` (from POST /v1/ads/images or the library list), or `carouselCards` (2-10 hand-built cards). The Page (and linked Instagram account, when present) is resolved from `accountId` as the story actor.
24
+ # @param create_ad_creative_request [CreateAdCreativeRequest]
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [CreateAdCreative201Response]
27
+ def create_ad_creative(create_ad_creative_request, opts = {})
28
+ data, _status_code, _headers = create_ad_creative_with_http_info(create_ad_creative_request, opts)
29
+ data
30
+ end
31
+
32
+ # Create a standalone creative
33
+ # Creates a creative in the library WITHOUT an ad, reusable on the create endpoints via `existingCreativeId`. Provide exactly one of `imageUrl` (uploaded server-side), `imageHash` (from POST /v1/ads/images or the library list), or `carouselCards` (2-10 hand-built cards). The Page (and linked Instagram account, when present) is resolved from `accountId` as the story actor.
34
+ # @param create_ad_creative_request [CreateAdCreativeRequest]
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(CreateAdCreative201Response, Integer, Hash)>] CreateAdCreative201Response data, response status code and response headers
37
+ def create_ad_creative_with_http_info(create_ad_creative_request, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.create_ad_creative ...'
40
+ end
41
+ # verify the required parameter 'create_ad_creative_request' is set
42
+ if @api_client.config.client_side_validation && create_ad_creative_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'create_ad_creative_request' when calling AdCreativesApi.create_ad_creative"
44
+ end
45
+ # resource path
46
+ local_var_path = '/v1/ads/creatives'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
+ # HTTP header 'Content-Type'
56
+ content_type = @api_client.select_header_content_type(['application/json'])
57
+ if !content_type.nil?
58
+ header_params['Content-Type'] = content_type
59
+ end
60
+
61
+ # form parameters
62
+ form_params = opts[:form_params] || {}
63
+
64
+ # http body (model)
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_ad_creative_request)
66
+
67
+ # return_type
68
+ return_type = opts[:debug_return_type] || 'CreateAdCreative201Response'
69
+
70
+ # auth_names
71
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
72
+
73
+ new_options = opts.merge(
74
+ :operation => :"AdCreativesApi.create_ad_creative",
75
+ :header_params => header_params,
76
+ :query_params => query_params,
77
+ :form_params => form_params,
78
+ :body => post_body,
79
+ :auth_names => auth_names,
80
+ :return_type => return_type
81
+ )
82
+
83
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
84
+ if @api_client.config.debugging
85
+ @api_client.config.logger.debug "API called: AdCreativesApi#create_ad_creative\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
86
+ end
87
+ return data, status_code, headers
88
+ end
89
+
90
+ # Delete a creative
91
+ # Deletes a creative from the library. Meta only allows deleting creatives not referenced by any ad — otherwise its 400 surfaces verbatim.
92
+ # @param creative_id [String] Platform creative id
93
+ # @param account_id [String] Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
94
+ # @param [Hash] opts the optional parameters
95
+ # @return [DeleteAdCreative200Response]
96
+ def delete_ad_creative(creative_id, account_id, opts = {})
97
+ data, _status_code, _headers = delete_ad_creative_with_http_info(creative_id, account_id, opts)
98
+ data
99
+ end
100
+
101
+ # Delete a creative
102
+ # Deletes a creative from the library. Meta only allows deleting creatives not referenced by any ad — otherwise its 400 surfaces verbatim.
103
+ # @param creative_id [String] Platform creative id
104
+ # @param account_id [String] Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
105
+ # @param [Hash] opts the optional parameters
106
+ # @return [Array<(DeleteAdCreative200Response, Integer, Hash)>] DeleteAdCreative200Response data, response status code and response headers
107
+ def delete_ad_creative_with_http_info(creative_id, account_id, opts = {})
108
+ if @api_client.config.debugging
109
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.delete_ad_creative ...'
110
+ end
111
+ # verify the required parameter 'creative_id' is set
112
+ if @api_client.config.client_side_validation && creative_id.nil?
113
+ fail ArgumentError, "Missing the required parameter 'creative_id' when calling AdCreativesApi.delete_ad_creative"
114
+ end
115
+ # verify the required parameter 'account_id' is set
116
+ if @api_client.config.client_side_validation && account_id.nil?
117
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AdCreativesApi.delete_ad_creative"
118
+ end
119
+ # resource path
120
+ local_var_path = '/v1/ads/creatives/{creativeId}'.sub('{' + 'creativeId' + '}', CGI.escape(creative_id.to_s))
121
+
122
+ # query parameters
123
+ query_params = opts[:query_params] || {}
124
+ query_params[:'accountId'] = account_id
125
+
126
+ # header parameters
127
+ header_params = opts[:header_params] || {}
128
+ # HTTP header 'Accept' (if needed)
129
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
130
+
131
+ # form parameters
132
+ form_params = opts[:form_params] || {}
133
+
134
+ # http body (model)
135
+ post_body = opts[:debug_body]
136
+
137
+ # return_type
138
+ return_type = opts[:debug_return_type] || 'DeleteAdCreative200Response'
139
+
140
+ # auth_names
141
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
142
+
143
+ new_options = opts.merge(
144
+ :operation => :"AdCreativesApi.delete_ad_creative",
145
+ :header_params => header_params,
146
+ :query_params => query_params,
147
+ :form_params => form_params,
148
+ :body => post_body,
149
+ :auth_names => auth_names,
150
+ :return_type => return_type
151
+ )
152
+
153
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
154
+ if @api_client.config.debugging
155
+ @api_client.config.logger.debug "API called: AdCreativesApi#delete_ad_creative\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
156
+ end
157
+ return data, status_code, headers
158
+ end
159
+
160
+ # Render pre-create ad previews
161
+ # Renders how a creative would look per placement BEFORE any ad exists, via Meta's `/generatepreviews`. Provide exactly one creative source: `existingCreativeId` or `creativeSpec`. Each preview is an HTML `<iframe>` snippet embeddable directly. Unknown `formats` values return Meta's 400 verbatim.
162
+ # @param generate_ad_previews_request [GenerateAdPreviewsRequest]
163
+ # @param [Hash] opts the optional parameters
164
+ # @return [GenerateAdPreviews200Response]
165
+ def generate_ad_previews(generate_ad_previews_request, opts = {})
166
+ data, _status_code, _headers = generate_ad_previews_with_http_info(generate_ad_previews_request, opts)
167
+ data
168
+ end
169
+
170
+ # Render pre-create ad previews
171
+ # Renders how a creative would look per placement BEFORE any ad exists, via Meta&#39;s &#x60;/generatepreviews&#x60;. Provide exactly one creative source: &#x60;existingCreativeId&#x60; or &#x60;creativeSpec&#x60;. Each preview is an HTML &#x60;&lt;iframe&gt;&#x60; snippet embeddable directly. Unknown &#x60;formats&#x60; values return Meta&#39;s 400 verbatim.
172
+ # @param generate_ad_previews_request [GenerateAdPreviewsRequest]
173
+ # @param [Hash] opts the optional parameters
174
+ # @return [Array<(GenerateAdPreviews200Response, Integer, Hash)>] GenerateAdPreviews200Response data, response status code and response headers
175
+ def generate_ad_previews_with_http_info(generate_ad_previews_request, opts = {})
176
+ if @api_client.config.debugging
177
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.generate_ad_previews ...'
178
+ end
179
+ # verify the required parameter 'generate_ad_previews_request' is set
180
+ if @api_client.config.client_side_validation && generate_ad_previews_request.nil?
181
+ fail ArgumentError, "Missing the required parameter 'generate_ad_previews_request' when calling AdCreativesApi.generate_ad_previews"
182
+ end
183
+ # resource path
184
+ local_var_path = '/v1/ads/preview'
185
+
186
+ # query parameters
187
+ query_params = opts[:query_params] || {}
188
+
189
+ # header parameters
190
+ header_params = opts[:header_params] || {}
191
+ # HTTP header 'Accept' (if needed)
192
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
193
+ # HTTP header 'Content-Type'
194
+ content_type = @api_client.select_header_content_type(['application/json'])
195
+ if !content_type.nil?
196
+ header_params['Content-Type'] = content_type
197
+ end
198
+
199
+ # form parameters
200
+ form_params = opts[:form_params] || {}
201
+
202
+ # http body (model)
203
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(generate_ad_previews_request)
204
+
205
+ # return_type
206
+ return_type = opts[:debug_return_type] || 'GenerateAdPreviews200Response'
207
+
208
+ # auth_names
209
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
210
+
211
+ new_options = opts.merge(
212
+ :operation => :"AdCreativesApi.generate_ad_previews",
213
+ :header_params => header_params,
214
+ :query_params => query_params,
215
+ :form_params => form_params,
216
+ :body => post_body,
217
+ :auth_names => auth_names,
218
+ :return_type => return_type
219
+ )
220
+
221
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
222
+ if @api_client.config.debugging
223
+ @api_client.config.logger.debug "API called: AdCreativesApi#generate_ad_previews\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
224
+ end
225
+ return data, status_code, headers
226
+ end
227
+
228
+ # Creative details
229
+ # One creative's details, verbatim from Meta. `fields` is a raw-passthrough override of the default projection.
230
+ # @param creative_id [String] Platform creative id
231
+ # @param account_id [String] Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
232
+ # @param [Hash] opts the optional parameters
233
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
234
+ # @return [GetAdCreative200Response]
235
+ def get_ad_creative(creative_id, account_id, opts = {})
236
+ data, _status_code, _headers = get_ad_creative_with_http_info(creative_id, account_id, opts)
237
+ data
238
+ end
239
+
240
+ # Creative details
241
+ # One creative&#39;s details, verbatim from Meta. &#x60;fields&#x60; is a raw-passthrough override of the default projection.
242
+ # @param creative_id [String] Platform creative id
243
+ # @param account_id [String] Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
244
+ # @param [Hash] opts the optional parameters
245
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
246
+ # @return [Array<(GetAdCreative200Response, Integer, Hash)>] GetAdCreative200Response data, response status code and response headers
247
+ def get_ad_creative_with_http_info(creative_id, account_id, opts = {})
248
+ if @api_client.config.debugging
249
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.get_ad_creative ...'
250
+ end
251
+ # verify the required parameter 'creative_id' is set
252
+ if @api_client.config.client_side_validation && creative_id.nil?
253
+ fail ArgumentError, "Missing the required parameter 'creative_id' when calling AdCreativesApi.get_ad_creative"
254
+ end
255
+ # verify the required parameter 'account_id' is set
256
+ if @api_client.config.client_side_validation && account_id.nil?
257
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AdCreativesApi.get_ad_creative"
258
+ end
259
+ # resource path
260
+ local_var_path = '/v1/ads/creatives/{creativeId}'.sub('{' + 'creativeId' + '}', CGI.escape(creative_id.to_s))
261
+
262
+ # query parameters
263
+ query_params = opts[:query_params] || {}
264
+ query_params[:'accountId'] = account_id
265
+ query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
266
+
267
+ # header parameters
268
+ header_params = opts[:header_params] || {}
269
+ # HTTP header 'Accept' (if needed)
270
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
271
+
272
+ # form parameters
273
+ form_params = opts[:form_params] || {}
274
+
275
+ # http body (model)
276
+ post_body = opts[:debug_body]
277
+
278
+ # return_type
279
+ return_type = opts[:debug_return_type] || 'GetAdCreative200Response'
280
+
281
+ # auth_names
282
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
283
+
284
+ new_options = opts.merge(
285
+ :operation => :"AdCreativesApi.get_ad_creative",
286
+ :header_params => header_params,
287
+ :query_params => query_params,
288
+ :form_params => form_params,
289
+ :body => post_body,
290
+ :auth_names => auth_names,
291
+ :return_type => return_type
292
+ )
293
+
294
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
295
+ if @api_client.config.debugging
296
+ @api_client.config.logger.debug "API called: AdCreativesApi#get_ad_creative\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
297
+ end
298
+ return data, status_code, headers
299
+ end
300
+
301
+ # Render previews of an existing ad
302
+ # Renders an EXISTING ad per placement via Meta's `/{ad_id}/previews`. Each preview is an HTML `<iframe>` snippet embeddable directly. Unknown `formats` values return Meta's 400 verbatim.
303
+ # @param ad_id [String] Zernio ad id (24-char hex).
304
+ # @param [Hash] opts the optional parameters
305
+ # @option opts [String] :formats Comma-separated Meta ad_format values (max 10), one preview per format. Defaults to DESKTOP_FEED_STANDARD.
306
+ # @return [GetAdPreviews200Response]
307
+ def get_ad_previews(ad_id, opts = {})
308
+ data, _status_code, _headers = get_ad_previews_with_http_info(ad_id, opts)
309
+ data
310
+ end
311
+
312
+ # Render previews of an existing ad
313
+ # Renders an EXISTING ad per placement via Meta&#39;s &#x60;/{ad_id}/previews&#x60;. Each preview is an HTML &#x60;&lt;iframe&gt;&#x60; snippet embeddable directly. Unknown &#x60;formats&#x60; values return Meta&#39;s 400 verbatim.
314
+ # @param ad_id [String] Zernio ad id (24-char hex).
315
+ # @param [Hash] opts the optional parameters
316
+ # @option opts [String] :formats Comma-separated Meta ad_format values (max 10), one preview per format. Defaults to DESKTOP_FEED_STANDARD.
317
+ # @return [Array<(GetAdPreviews200Response, Integer, Hash)>] GetAdPreviews200Response data, response status code and response headers
318
+ def get_ad_previews_with_http_info(ad_id, opts = {})
319
+ if @api_client.config.debugging
320
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.get_ad_previews ...'
321
+ end
322
+ # verify the required parameter 'ad_id' is set
323
+ if @api_client.config.client_side_validation && ad_id.nil?
324
+ fail ArgumentError, "Missing the required parameter 'ad_id' when calling AdCreativesApi.get_ad_previews"
325
+ end
326
+ # resource path
327
+ local_var_path = '/v1/ads/{adId}/preview'.sub('{' + 'adId' + '}', CGI.escape(ad_id.to_s))
328
+
329
+ # query parameters
330
+ query_params = opts[:query_params] || {}
331
+ query_params[:'formats'] = opts[:'formats'] if !opts[:'formats'].nil?
332
+
333
+ # header parameters
334
+ header_params = opts[:header_params] || {}
335
+ # HTTP header 'Accept' (if needed)
336
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
337
+
338
+ # form parameters
339
+ form_params = opts[:form_params] || {}
340
+
341
+ # http body (model)
342
+ post_body = opts[:debug_body]
343
+
344
+ # return_type
345
+ return_type = opts[:debug_return_type] || 'GetAdPreviews200Response'
346
+
347
+ # auth_names
348
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
349
+
350
+ new_options = opts.merge(
351
+ :operation => :"AdCreativesApi.get_ad_previews",
352
+ :header_params => header_params,
353
+ :query_params => query_params,
354
+ :form_params => form_params,
355
+ :body => post_body,
356
+ :auth_names => auth_names,
357
+ :return_type => return_type
358
+ )
359
+
360
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
361
+ if @api_client.config.debugging
362
+ @api_client.config.logger.debug "API called: AdCreativesApi#get_ad_previews\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
363
+ end
364
+ return data, status_code, headers
365
+ end
366
+
367
+ # List a catalog's product sets
368
+ # Lists a Meta product catalog's product sets — the unit a catalog ad promotes. Pass the chosen set as `promotedObject.productSetId` on POST /v1/ads/create with `goal: catalog_sales`.
369
+ # @param catalog_id [String] Meta product catalog ID (from GET /v1/ads/catalogs)
370
+ # @param account_id [String] A facebook, instagram, or metaads social account ID
371
+ # @param [Hash] opts the optional parameters
372
+ # @return [ListAdCatalogProductSets200Response]
373
+ def list_ad_catalog_product_sets(catalog_id, account_id, opts = {})
374
+ data, _status_code, _headers = list_ad_catalog_product_sets_with_http_info(catalog_id, account_id, opts)
375
+ data
376
+ end
377
+
378
+ # List a catalog&#39;s product sets
379
+ # Lists a Meta product catalog&#39;s product sets — the unit a catalog ad promotes. Pass the chosen set as &#x60;promotedObject.productSetId&#x60; on POST /v1/ads/create with &#x60;goal: catalog_sales&#x60;.
380
+ # @param catalog_id [String] Meta product catalog ID (from GET /v1/ads/catalogs)
381
+ # @param account_id [String] A facebook, instagram, or metaads social account ID
382
+ # @param [Hash] opts the optional parameters
383
+ # @return [Array<(ListAdCatalogProductSets200Response, Integer, Hash)>] ListAdCatalogProductSets200Response data, response status code and response headers
384
+ def list_ad_catalog_product_sets_with_http_info(catalog_id, account_id, opts = {})
385
+ if @api_client.config.debugging
386
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.list_ad_catalog_product_sets ...'
387
+ end
388
+ # verify the required parameter 'catalog_id' is set
389
+ if @api_client.config.client_side_validation && catalog_id.nil?
390
+ fail ArgumentError, "Missing the required parameter 'catalog_id' when calling AdCreativesApi.list_ad_catalog_product_sets"
391
+ end
392
+ # verify the required parameter 'account_id' is set
393
+ if @api_client.config.client_side_validation && account_id.nil?
394
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AdCreativesApi.list_ad_catalog_product_sets"
395
+ end
396
+ # resource path
397
+ local_var_path = '/v1/ads/catalogs/{catalogId}/product-sets'.sub('{' + 'catalogId' + '}', CGI.escape(catalog_id.to_s))
398
+
399
+ # query parameters
400
+ query_params = opts[:query_params] || {}
401
+ query_params[:'accountId'] = account_id
402
+
403
+ # header parameters
404
+ header_params = opts[:header_params] || {}
405
+ # HTTP header 'Accept' (if needed)
406
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
407
+
408
+ # form parameters
409
+ form_params = opts[:form_params] || {}
410
+
411
+ # http body (model)
412
+ post_body = opts[:debug_body]
413
+
414
+ # return_type
415
+ return_type = opts[:debug_return_type] || 'ListAdCatalogProductSets200Response'
416
+
417
+ # auth_names
418
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
419
+
420
+ new_options = opts.merge(
421
+ :operation => :"AdCreativesApi.list_ad_catalog_product_sets",
422
+ :header_params => header_params,
423
+ :query_params => query_params,
424
+ :form_params => form_params,
425
+ :body => post_body,
426
+ :auth_names => auth_names,
427
+ :return_type => return_type
428
+ )
429
+
430
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
431
+ if @api_client.config.debugging
432
+ @api_client.config.logger.debug "API called: AdCreativesApi#list_ad_catalog_product_sets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
433
+ end
434
+ return data, status_code, headers
435
+ end
436
+
437
+ # List Meta product catalogs
438
+ # Lists the Meta product catalogs reachable from an ad account (owned + agency-shared catalogs of the ad account's business), for Advantage+ catalog ads (`goal: catalog_sales` on POST /v1/ads/create — e.g. vehicle inventory catalogs). Read-only; uses scopes customers already granted (no reconnect needed). Catalog contents (items, feeds) are managed in Meta Commerce Manager, not through this API.
439
+ # @param account_id [String] A facebook, instagram, or metaads social account ID
440
+ # @param ad_account_id [String] Meta ad account ID (act_...)
441
+ # @param [Hash] opts the optional parameters
442
+ # @return [ListAdCatalogs200Response]
443
+ def list_ad_catalogs(account_id, ad_account_id, opts = {})
444
+ data, _status_code, _headers = list_ad_catalogs_with_http_info(account_id, ad_account_id, opts)
445
+ data
446
+ end
447
+
448
+ # List Meta product catalogs
449
+ # Lists the Meta product catalogs reachable from an ad account (owned + agency-shared catalogs of the ad account&#39;s business), for Advantage+ catalog ads (&#x60;goal: catalog_sales&#x60; on POST /v1/ads/create — e.g. vehicle inventory catalogs). Read-only; uses scopes customers already granted (no reconnect needed). Catalog contents (items, feeds) are managed in Meta Commerce Manager, not through this API.
450
+ # @param account_id [String] A facebook, instagram, or metaads social account ID
451
+ # @param ad_account_id [String] Meta ad account ID (act_...)
452
+ # @param [Hash] opts the optional parameters
453
+ # @return [Array<(ListAdCatalogs200Response, Integer, Hash)>] ListAdCatalogs200Response data, response status code and response headers
454
+ def list_ad_catalogs_with_http_info(account_id, ad_account_id, opts = {})
455
+ if @api_client.config.debugging
456
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.list_ad_catalogs ...'
457
+ end
458
+ # verify the required parameter 'account_id' is set
459
+ if @api_client.config.client_side_validation && account_id.nil?
460
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AdCreativesApi.list_ad_catalogs"
461
+ end
462
+ # verify the required parameter 'ad_account_id' is set
463
+ if @api_client.config.client_side_validation && ad_account_id.nil?
464
+ fail ArgumentError, "Missing the required parameter 'ad_account_id' when calling AdCreativesApi.list_ad_catalogs"
465
+ end
466
+ # resource path
467
+ local_var_path = '/v1/ads/catalogs'
468
+
469
+ # query parameters
470
+ query_params = opts[:query_params] || {}
471
+ query_params[:'accountId'] = account_id
472
+ query_params[:'adAccountId'] = ad_account_id
473
+
474
+ # header parameters
475
+ header_params = opts[:header_params] || {}
476
+ # HTTP header 'Accept' (if needed)
477
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
478
+
479
+ # form parameters
480
+ form_params = opts[:form_params] || {}
481
+
482
+ # http body (model)
483
+ post_body = opts[:debug_body]
484
+
485
+ # return_type
486
+ return_type = opts[:debug_return_type] || 'ListAdCatalogs200Response'
487
+
488
+ # auth_names
489
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
490
+
491
+ new_options = opts.merge(
492
+ :operation => :"AdCreativesApi.list_ad_catalogs",
493
+ :header_params => header_params,
494
+ :query_params => query_params,
495
+ :form_params => form_params,
496
+ :body => post_body,
497
+ :auth_names => auth_names,
498
+ :return_type => return_type
499
+ )
500
+
501
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
502
+ if @api_client.config.debugging
503
+ @api_client.config.logger.debug "API called: AdCreativesApi#list_ad_catalogs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
504
+ end
505
+ return data, status_code, headers
506
+ end
507
+
508
+ # Creative library
509
+ # Lists the ad account's creative library (Meta's `/act_X/adcreatives`), rows returned verbatim. The default projection covers id, name, status, object type, thumbnail, object_story_spec / asset_feed_spec and url_tags; `fields` is a raw-passthrough override. Any creative id here is reusable on the create endpoints via `existingCreativeId`.
510
+ # @param account_id [String] Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
511
+ # @param ad_account_id [String] Meta ad account id (act_&lt;n&gt;).
512
+ # @param [Hash] opts the optional parameters
513
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
514
+ # @option opts [Integer] :limit Rows per page (default to 25)
515
+ # @option opts [String] :after Cursor from paging.after of the previous page.
516
+ # @return [ListAdCreatives200Response]
517
+ def list_ad_creatives(account_id, ad_account_id, opts = {})
518
+ data, _status_code, _headers = list_ad_creatives_with_http_info(account_id, ad_account_id, opts)
519
+ data
520
+ end
521
+
522
+ # Creative library
523
+ # Lists the ad account&#39;s creative library (Meta&#39;s &#x60;/act_X/adcreatives&#x60;), rows returned verbatim. The default projection covers id, name, status, object type, thumbnail, object_story_spec / asset_feed_spec and url_tags; &#x60;fields&#x60; is a raw-passthrough override. Any creative id here is reusable on the create endpoints via &#x60;existingCreativeId&#x60;.
524
+ # @param account_id [String] Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
525
+ # @param ad_account_id [String] Meta ad account id (act_&lt;n&gt;).
526
+ # @param [Hash] opts the optional parameters
527
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
528
+ # @option opts [Integer] :limit Rows per page (default to 25)
529
+ # @option opts [String] :after Cursor from paging.after of the previous page.
530
+ # @return [Array<(ListAdCreatives200Response, Integer, Hash)>] ListAdCreatives200Response data, response status code and response headers
531
+ def list_ad_creatives_with_http_info(account_id, ad_account_id, opts = {})
532
+ if @api_client.config.debugging
533
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.list_ad_creatives ...'
534
+ end
535
+ # verify the required parameter 'account_id' is set
536
+ if @api_client.config.client_side_validation && account_id.nil?
537
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AdCreativesApi.list_ad_creatives"
538
+ end
539
+ # verify the required parameter 'ad_account_id' is set
540
+ if @api_client.config.client_side_validation && ad_account_id.nil?
541
+ fail ArgumentError, "Missing the required parameter 'ad_account_id' when calling AdCreativesApi.list_ad_creatives"
542
+ end
543
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
544
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling AdCreativesApi.list_ad_creatives, must be smaller than or equal to 100.'
545
+ end
546
+
547
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
548
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling AdCreativesApi.list_ad_creatives, must be greater than or equal to 1.'
549
+ end
550
+
551
+ # resource path
552
+ local_var_path = '/v1/ads/creatives'
553
+
554
+ # query parameters
555
+ query_params = opts[:query_params] || {}
556
+ query_params[:'accountId'] = account_id
557
+ query_params[:'adAccountId'] = ad_account_id
558
+ query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
559
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
560
+ query_params[:'after'] = opts[:'after'] if !opts[:'after'].nil?
561
+
562
+ # header parameters
563
+ header_params = opts[:header_params] || {}
564
+ # HTTP header 'Accept' (if needed)
565
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
566
+
567
+ # form parameters
568
+ form_params = opts[:form_params] || {}
569
+
570
+ # http body (model)
571
+ post_body = opts[:debug_body]
572
+
573
+ # return_type
574
+ return_type = opts[:debug_return_type] || 'ListAdCreatives200Response'
575
+
576
+ # auth_names
577
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
578
+
579
+ new_options = opts.merge(
580
+ :operation => :"AdCreativesApi.list_ad_creatives",
581
+ :header_params => header_params,
582
+ :query_params => query_params,
583
+ :form_params => form_params,
584
+ :body => post_body,
585
+ :auth_names => auth_names,
586
+ :return_type => return_type
587
+ )
588
+
589
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
590
+ if @api_client.config.debugging
591
+ @api_client.config.logger.debug "API called: AdCreativesApi#list_ad_creatives\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
592
+ end
593
+ return data, status_code, headers
594
+ end
595
+
596
+ # Ad image library
597
+ # Lists the ad account's image library (Meta's `/act_X/adimages`), rows returned verbatim. The default projection covers hash, url, name, dimensions and status; `fields` is a raw-passthrough override. Any `hash` here is reusable wherever Meta accepts `image_hash` (e.g. `imageHash` on POST /v1/ads/creatives).
598
+ # @param account_id [String] Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
599
+ # @param ad_account_id [String] Meta ad account id (act_&lt;n&gt;).
600
+ # @param [Hash] opts the optional parameters
601
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
602
+ # @option opts [Integer] :limit Rows per page (default to 25)
603
+ # @option opts [String] :after Cursor from paging.after of the previous page.
604
+ # @return [ListAdImages200Response]
605
+ def list_ad_images(account_id, ad_account_id, opts = {})
606
+ data, _status_code, _headers = list_ad_images_with_http_info(account_id, ad_account_id, opts)
607
+ data
608
+ end
609
+
610
+ # Ad image library
611
+ # Lists the ad account&#39;s image library (Meta&#39;s &#x60;/act_X/adimages&#x60;), rows returned verbatim. The default projection covers hash, url, name, dimensions and status; &#x60;fields&#x60; is a raw-passthrough override. Any &#x60;hash&#x60; here is reusable wherever Meta accepts &#x60;image_hash&#x60; (e.g. &#x60;imageHash&#x60; on POST /v1/ads/creatives).
612
+ # @param account_id [String] Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
613
+ # @param ad_account_id [String] Meta ad account id (act_&lt;n&gt;).
614
+ # @param [Hash] opts the optional parameters
615
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
616
+ # @option opts [Integer] :limit Rows per page (default to 25)
617
+ # @option opts [String] :after Cursor from paging.after of the previous page.
618
+ # @return [Array<(ListAdImages200Response, Integer, Hash)>] ListAdImages200Response data, response status code and response headers
619
+ def list_ad_images_with_http_info(account_id, ad_account_id, opts = {})
620
+ if @api_client.config.debugging
621
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.list_ad_images ...'
622
+ end
623
+ # verify the required parameter 'account_id' is set
624
+ if @api_client.config.client_side_validation && account_id.nil?
625
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AdCreativesApi.list_ad_images"
626
+ end
627
+ # verify the required parameter 'ad_account_id' is set
628
+ if @api_client.config.client_side_validation && ad_account_id.nil?
629
+ fail ArgumentError, "Missing the required parameter 'ad_account_id' when calling AdCreativesApi.list_ad_images"
630
+ end
631
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
632
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling AdCreativesApi.list_ad_images, must be smaller than or equal to 100.'
633
+ end
634
+
635
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
636
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling AdCreativesApi.list_ad_images, must be greater than or equal to 1.'
637
+ end
638
+
639
+ # resource path
640
+ local_var_path = '/v1/ads/images'
641
+
642
+ # query parameters
643
+ query_params = opts[:query_params] || {}
644
+ query_params[:'accountId'] = account_id
645
+ query_params[:'adAccountId'] = ad_account_id
646
+ query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
647
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
648
+ query_params[:'after'] = opts[:'after'] if !opts[:'after'].nil?
649
+
650
+ # header parameters
651
+ header_params = opts[:header_params] || {}
652
+ # HTTP header 'Accept' (if needed)
653
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
654
+
655
+ # form parameters
656
+ form_params = opts[:form_params] || {}
657
+
658
+ # http body (model)
659
+ post_body = opts[:debug_body]
660
+
661
+ # return_type
662
+ return_type = opts[:debug_return_type] || 'ListAdImages200Response'
663
+
664
+ # auth_names
665
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
666
+
667
+ new_options = opts.merge(
668
+ :operation => :"AdCreativesApi.list_ad_images",
669
+ :header_params => header_params,
670
+ :query_params => query_params,
671
+ :form_params => form_params,
672
+ :body => post_body,
673
+ :auth_names => auth_names,
674
+ :return_type => return_type
675
+ )
676
+
677
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
678
+ if @api_client.config.debugging
679
+ @api_client.config.logger.debug "API called: AdCreativesApi#list_ad_images\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
680
+ end
681
+ return data, status_code, headers
682
+ end
683
+
684
+ # Rename a creative
685
+ # Renames a creative. Creatives are immutable on Meta beyond `name` — for content changes create a new creative (POST /v1/ads/creatives) and swap it onto the ad (PUT /v1/ads/{adId} with `creative`).
686
+ # @param creative_id [String] Platform creative id
687
+ # @param update_ad_creative_request [UpdateAdCreativeRequest]
688
+ # @param [Hash] opts the optional parameters
689
+ # @return [UpdateAdCreative200Response]
690
+ def update_ad_creative(creative_id, update_ad_creative_request, opts = {})
691
+ data, _status_code, _headers = update_ad_creative_with_http_info(creative_id, update_ad_creative_request, opts)
692
+ data
693
+ end
694
+
695
+ # Rename a creative
696
+ # Renames a creative. Creatives are immutable on Meta beyond &#x60;name&#x60; — for content changes create a new creative (POST /v1/ads/creatives) and swap it onto the ad (PUT /v1/ads/{adId} with &#x60;creative&#x60;).
697
+ # @param creative_id [String] Platform creative id
698
+ # @param update_ad_creative_request [UpdateAdCreativeRequest]
699
+ # @param [Hash] opts the optional parameters
700
+ # @return [Array<(UpdateAdCreative200Response, Integer, Hash)>] UpdateAdCreative200Response data, response status code and response headers
701
+ def update_ad_creative_with_http_info(creative_id, update_ad_creative_request, opts = {})
702
+ if @api_client.config.debugging
703
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.update_ad_creative ...'
704
+ end
705
+ # verify the required parameter 'creative_id' is set
706
+ if @api_client.config.client_side_validation && creative_id.nil?
707
+ fail ArgumentError, "Missing the required parameter 'creative_id' when calling AdCreativesApi.update_ad_creative"
708
+ end
709
+ # verify the required parameter 'update_ad_creative_request' is set
710
+ if @api_client.config.client_side_validation && update_ad_creative_request.nil?
711
+ fail ArgumentError, "Missing the required parameter 'update_ad_creative_request' when calling AdCreativesApi.update_ad_creative"
712
+ end
713
+ # resource path
714
+ local_var_path = '/v1/ads/creatives/{creativeId}'.sub('{' + 'creativeId' + '}', CGI.escape(creative_id.to_s))
715
+
716
+ # query parameters
717
+ query_params = opts[:query_params] || {}
718
+
719
+ # header parameters
720
+ header_params = opts[:header_params] || {}
721
+ # HTTP header 'Accept' (if needed)
722
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
723
+ # HTTP header 'Content-Type'
724
+ content_type = @api_client.select_header_content_type(['application/json'])
725
+ if !content_type.nil?
726
+ header_params['Content-Type'] = content_type
727
+ end
728
+
729
+ # form parameters
730
+ form_params = opts[:form_params] || {}
731
+
732
+ # http body (model)
733
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_ad_creative_request)
734
+
735
+ # return_type
736
+ return_type = opts[:debug_return_type] || 'UpdateAdCreative200Response'
737
+
738
+ # auth_names
739
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
740
+
741
+ new_options = opts.merge(
742
+ :operation => :"AdCreativesApi.update_ad_creative",
743
+ :header_params => header_params,
744
+ :query_params => query_params,
745
+ :form_params => form_params,
746
+ :body => post_body,
747
+ :auth_names => auth_names,
748
+ :return_type => return_type
749
+ )
750
+
751
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
752
+ if @api_client.config.debugging
753
+ @api_client.config.logger.debug "API called: AdCreativesApi#update_ad_creative\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
754
+ end
755
+ return data, status_code, headers
756
+ end
757
+
758
+ # Upload an ad image from base64
759
+ # Uploads raw image bytes to the Meta ad account's image library — for callers whose creatives aren't hosted at a public URL. Returns the image `hash` (Meta's identifier for the asset) and the Meta-hosted `url`, which can be used directly as `imageUrl` on the create endpoints. Max 30 MB decoded.
760
+ # @param upload_ad_image_request [UploadAdImageRequest]
761
+ # @param [Hash] opts the optional parameters
762
+ # @return [UploadAdImage201Response]
763
+ def upload_ad_image(upload_ad_image_request, opts = {})
764
+ data, _status_code, _headers = upload_ad_image_with_http_info(upload_ad_image_request, opts)
765
+ data
766
+ end
767
+
768
+ # Upload an ad image from base64
769
+ # Uploads raw image bytes to the Meta ad account&#39;s image library — for callers whose creatives aren&#39;t hosted at a public URL. Returns the image &#x60;hash&#x60; (Meta&#39;s identifier for the asset) and the Meta-hosted &#x60;url&#x60;, which can be used directly as &#x60;imageUrl&#x60; on the create endpoints. Max 30 MB decoded.
770
+ # @param upload_ad_image_request [UploadAdImageRequest]
771
+ # @param [Hash] opts the optional parameters
772
+ # @return [Array<(UploadAdImage201Response, Integer, Hash)>] UploadAdImage201Response data, response status code and response headers
773
+ def upload_ad_image_with_http_info(upload_ad_image_request, opts = {})
774
+ if @api_client.config.debugging
775
+ @api_client.config.logger.debug 'Calling API: AdCreativesApi.upload_ad_image ...'
776
+ end
777
+ # verify the required parameter 'upload_ad_image_request' is set
778
+ if @api_client.config.client_side_validation && upload_ad_image_request.nil?
779
+ fail ArgumentError, "Missing the required parameter 'upload_ad_image_request' when calling AdCreativesApi.upload_ad_image"
780
+ end
781
+ # resource path
782
+ local_var_path = '/v1/ads/images'
783
+
784
+ # query parameters
785
+ query_params = opts[:query_params] || {}
786
+
787
+ # header parameters
788
+ header_params = opts[:header_params] || {}
789
+ # HTTP header 'Accept' (if needed)
790
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
791
+ # HTTP header 'Content-Type'
792
+ content_type = @api_client.select_header_content_type(['application/json'])
793
+ if !content_type.nil?
794
+ header_params['Content-Type'] = content_type
795
+ end
796
+
797
+ # form parameters
798
+ form_params = opts[:form_params] || {}
799
+
800
+ # http body (model)
801
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(upload_ad_image_request)
802
+
803
+ # return_type
804
+ return_type = opts[:debug_return_type] || 'UploadAdImage201Response'
805
+
806
+ # auth_names
807
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
808
+
809
+ new_options = opts.merge(
810
+ :operation => :"AdCreativesApi.upload_ad_image",
811
+ :header_params => header_params,
812
+ :query_params => query_params,
813
+ :form_params => form_params,
814
+ :body => post_body,
815
+ :auth_names => auth_names,
816
+ :return_type => return_type
817
+ )
818
+
819
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
820
+ if @api_client.config.debugging
821
+ @api_client.config.logger.debug "API called: AdCreativesApi#upload_ad_image\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
822
+ end
823
+ return data, status_code, headers
824
+ end
825
+ end
826
+ end