zernio-sdk 0.0.819 → 0.0.821

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: ee3094bc4b02af213c16e76e60e3b6e788846b4f990355ef5a0084289080b160
4
- data.tar.gz: f5127a0495f89855382a1095b4fe9f57284c2ff5b71f5ae58b7588e47fc2ec65
3
+ metadata.gz: 776e004f3f72ba261836fc868c3335367cacf14c24f7e39403469fb754232c6e
4
+ data.tar.gz: 1d00051d7f01c4b0278e6bc2759c5d5a3a6ec6eae79f836276d783be9289ce23
5
5
  SHA512:
6
- metadata.gz: e0507bcd04521e62daf930870f7f0119664f1341e45c07b9038c43486e3b43f9891f71cad4cd06508ef35ee89b79b4dff5fa9dec99e372fb3ec9e718818a5572
7
- data.tar.gz: 98de63d37751892ea2df563d33624267fde17437f9d582d9717aca0bf90f90c5d0d79d7ada31f0c393d2ee0b62486a1b6e1d51aa6a40f6139f5f5e88aada4af0
6
+ metadata.gz: b713153c454a24604306b90069815c2e3a400d67d1b0aed9da84dd6e48b9a5a6368c05ac8dce15bc5feab762a346aedf9c8baa7d630dd5eb1416e0e578d8437d
7
+ data.tar.gz: 8e463103802b64be724c31f3c86ba69a571c0ca0cbbbfcd2efe4a81a1dfb5b6f6237b891f174d6843a267ece227e997ad3db3739004b644449f092d315da9dbc
@@ -25,6 +25,7 @@
25
25
  | **tracking** | [**BoostPostRequestTracking**](BoostPostRequestTracking.md) | | [optional] |
26
26
  | **special_ad_categories** | **Array<String>** | Meta only. Required for housing, employment, credit, or political ads. | [optional] |
27
27
  | **special_ad_category_country** | **Array<String>** | Meta (metaads) only. 2-letter ISO country codes the special ad category applies to. Requires specialAdCategories to be set (400 otherwise). | [optional] |
28
+ | **regional_regulated_categories** | **Array<String>** | Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set. | [optional] |
28
29
  | **link_url** | **String** | Destination URL for the CTA button. Send it together with `callToAction`. **Meta**: adds a top-level `call_to_action` to the post-reference creative. This is what gives a `traffic` boost a clickable destination without replacing the creative and losing the post's social proof. Ignored when `leadGenFormId` is set, which supplies its own destination. Live-verified against a Page-post creative. **TikTok**: maps to `landing_page_url` on the Spark Ad creative (`AdcreateCreatives.landing_page_url`); Spark Ads have no clickable destination without it. Ignored on LinkedIn / Pinterest / X / Google, which infer the destination from the boosted post. | [optional] |
29
30
  | **call_to_action** | **String** | CTA button label. Send it together with `linkUrl` — a CTA without a destination produces a button that goes nowhere, so sending one alone is a 400. **Meta**: the CTA enum of POST /v1/ads/create plus `VIEW_INSTAGRAM_PROFILE`, which is accepted on boost only. For that value `linkUrl` is typically the Instagram profile URL. **TikTok**: pass-through to `call_to_action` on the Spark Ad creative; the platform validates the value. See TikTok's \"Enumeration - Call-to-Action\". | [optional] |
30
31
  | **spark_auth_code** | **String** | TikTok-only. Spark Code (creator's `auth_code`) authorizing cross-creator Spark Ads — the advertiser can boost a video owned by a DIFFERENT TikTok account. Without this, boosts are limited to videos owned by the same account running the ads (same-BC creators only). The creator generates the code in their TikTok app's Promote settings and shares it with the advertiser. Maps to `auth_code` on the creative entry of /v2/ad/create/. | [optional] |
@@ -61,6 +62,7 @@ instance = Zernio::BoostPostRequest.new(
61
62
  tracking: null,
62
63
  special_ad_categories: null,
63
64
  special_ad_category_country: null,
65
+ regional_regulated_categories: null,
64
66
  link_url: null,
65
67
  call_to_action: null,
66
68
  spark_auth_code: null,
data/docs/CommentsApi.md CHANGED
@@ -631,7 +631,7 @@ end
631
631
 
632
632
  Send private reply
633
633
 
634
- Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Buttons are recommended for cold reach since chips do not render in the Instagram Message Requests folder. `quickReplies` and `buttons` are mutually exclusive.
634
+ Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
635
635
 
636
636
  ### Examples
637
637
 
@@ -38,6 +38,7 @@
38
38
  | **roas_average_floor** | **Float** | Decimal ROAS multiplier (e.g. `2.0` = 2.0× ROAS floor). Required when `bidStrategy` is `LOWEST_COST_WITH_MIN_ROAS`; rejected otherwise. Meta enforces its own upper bound server-side. | [optional] |
39
39
  | **dsa_beneficiary** | **String** | Legal entity that benefits from the ad. Required when targeting EU users (EU DSA, Article 26). Optional if the ad account has a default beneficiary: set it once via `PATCH /v1/ads/accounts` or in Meta Ads Manager, and Meta fills it in whenever the field is omitted. | [optional] |
40
40
  | **dsa_payor** | **String** | Legal entity that pays for the ad. Can differ from `dsaBeneficiary` (for example, an agency paying for a client's ads). Same rules as `dsaBeneficiary`: required for EU targeting unless the ad account has a default payor. | [optional] |
41
+ | **regional_regulated_categories** | **Array<String>** | Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set. | [optional] |
41
42
  | **phone_number** | **String** | E.164 number the CALL_NOW CTA dials (e.g. +34600111222). | |
42
43
  | **link_url** | **String** | Website shown as the creative's link. Required: Meta rejects tel: as link_data.link; the phone number rides only the CTA. | |
43
44
 
@@ -81,6 +82,7 @@ instance = Zernio::CreateCallAdRequest.new(
81
82
  roas_average_floor: null,
82
83
  dsa_beneficiary: null,
83
84
  dsa_payor: null,
85
+ regional_regulated_categories: null,
84
86
  phone_number: null,
85
87
  link_url: null
86
88
  )
@@ -38,6 +38,7 @@
38
38
  | **roas_average_floor** | **Float** | Decimal ROAS multiplier (e.g. `2.0` = 2.0× ROAS floor). Required when `bidStrategy` is `LOWEST_COST_WITH_MIN_ROAS`; rejected otherwise. Meta enforces its own upper bound server-side. | [optional] |
39
39
  | **dsa_beneficiary** | **String** | Legal entity that benefits from the ad. Required when targeting EU users (EU DSA, Article 26). Optional if the ad account has a default beneficiary: set it once via `PATCH /v1/ads/accounts` or in Meta Ads Manager, and Meta fills it in whenever the field is omitted. | [optional] |
40
40
  | **dsa_payor** | **String** | Legal entity that pays for the ad. Can differ from `dsaBeneficiary` (for example, an agency paying for a client's ads). Same rules as `dsaBeneficiary`: required for EU targeting unless the ad account has a default payor. | [optional] |
41
+ | **regional_regulated_categories** | **Array<String>** | Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set. | [optional] |
41
42
  | **destination** | **String** | Where the conversation opens when the ad is tapped. | |
42
43
 
43
44
  ## Example
@@ -80,6 +81,7 @@ instance = Zernio::CreateMessagingAdRequest.new(
80
81
  roas_average_floor: null,
81
82
  dsa_beneficiary: null,
82
83
  dsa_payor: null,
84
+ regional_regulated_categories: null,
83
85
  destination: null
84
86
  )
85
87
  ```
@@ -63,6 +63,7 @@
63
63
  | **raw_targeting** | **Hash<String, Object>** | Meta only. A raw Meta-native targeting spec (snake_case: `geo_locations`, `age_min`, `excluded_custom_audiences`, `flexible_spec`, `targeting_automation`, `user_os`, `wireless_carrier`, business places, etc.) — exactly the shape `GET /v1/ads/{adId}` returns for external ads. Sent alone it reaches the ad set VERBATIM (the clone-a-campaign's-targeting-exactly path). Meta validates and surfaces any errors. Can be combined with the camelCase targeting fields (countries/regions/cities/interests/ageMin/..., `targeting`, `savedTargetingId`, `audienceId`): rawTargeting is the BASE layer and the built camelCase spec is merged on top, key by key, with the camelCase side winning on collision (the camelCase precedence chain stays `savedTargetingId` < `targeting` < flat fields). The merge goes one level deep inside `geo_locations` and `excluded_geo_locations`: built sub-keys win, raw-only sub-keys such as `location_types` survive alongside built `countries`. Array values (`flexible_spec`, ...) are replaced as a WHOLE key when the camelCase spec builds them, never element-merged. When rawTargeting is present the defaults the camelCase builder normally injects (US geo, `targeting_automation.advantage_audience: 0`) are suppressed, so raw's values are not clobbered — include `targeting_automation` in the raw spec (or send `advantageAudience`) as Meta requires it on create. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those are separate fields, not part of targeting). | [optional] |
64
64
  | **special_ad_categories** | **Array<String>** | Meta only. Declares the ad's special category, required for housing, employment, credit, or political/social-issue ads (Meta enforces restricted targeting for these). Note: setting a special category disables income/zip targeting on Meta. | [optional] |
65
65
  | **special_ad_category_country** | **Array<String>** | Meta (metaads) only. 2-letter ISO country codes the special ad category applies to. Requires specialAdCategories to be set (400 otherwise). Ignored when joining an existing campaign via existingCampaignId (the existing campaign's category/country already governs it). | [optional] |
66
+ | **regional_regulated_categories** | **Array<String>** | Meta only. Regional regulation categories required when the ad set targets certain countries. Known values: SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV, TAIWAN_FINSERV. Meta rejects the ad set without this when the targeting geo includes the corresponding country. | [optional] |
66
67
  | **end_date** | **Time** | Required for lifetime budgets | [optional] |
67
68
  | **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] |
68
69
  | **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 use the Instagram actor Meta already runs the Page's other ads as, falling back to the Page's page-backed Instagram account. Useful when a Page has more than one eligible IG account. | [optional] |
@@ -161,6 +162,7 @@ instance = Zernio::CreateStandaloneAdRequest.new(
161
162
  raw_targeting: null,
162
163
  special_ad_categories: null,
163
164
  special_ad_category_country: null,
165
+ regional_regulated_categories: null,
164
166
  end_date: null,
165
167
  start_date: null,
166
168
  instagram_account_id: null,
@@ -38,6 +38,7 @@
38
38
  | **roas_average_floor** | **Float** | Decimal ROAS multiplier (e.g. `2.0` = 2.0× ROAS floor). Required when `bidStrategy` is `LOWEST_COST_WITH_MIN_ROAS`; rejected otherwise. Meta enforces its own upper bound server-side. | [optional] |
39
39
  | **dsa_beneficiary** | **String** | Legal entity that benefits from the ad. Required when targeting EU users (EU DSA, Article 26). Optional if the ad account has a default beneficiary: set it once via `PATCH /v1/ads/accounts` or in Meta Ads Manager, and Meta fills it in whenever the field is omitted. | [optional] |
40
40
  | **dsa_payor** | **String** | Legal entity that pays for the ad. Can differ from `dsaBeneficiary` (for example, an agency paying for a client's ads). Same rules as `dsaBeneficiary`: required for EU targeting unless the ad account has a default payor. | [optional] |
41
+ | **regional_regulated_categories** | **Array<String>** | Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set. | [optional] |
41
42
 
42
43
  ## Example
43
44
 
@@ -78,7 +79,8 @@ instance = Zernio::CtwaAdRequestBody.new(
78
79
  bid_amount: null,
79
80
  roas_average_floor: null,
80
81
  dsa_beneficiary: null,
81
- dsa_payor: null
82
+ dsa_payor: null,
83
+ regional_regulated_categories: null
82
84
  )
83
85
  ```
84
86
 
@@ -690,7 +690,7 @@ module Zernio
690
690
  end
691
691
 
692
692
  # Send private reply
693
- # Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Buttons are recommended for cold reach since chips do not render in the Instagram Message Requests folder. `quickReplies` and `buttons` are mutually exclusive.
693
+ # Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
694
694
  # @param post_id [String] The media/post ID (Instagram media ID or Facebook post ID)
695
695
  # @param comment_id [String] The comment ID to send a private reply to
696
696
  # @param send_private_reply_to_comment_request [SendPrivateReplyToCommentRequest]
@@ -702,7 +702,7 @@ module Zernio
702
702
  end
703
703
 
704
704
  # Send private reply
705
- # Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Buttons are recommended for cold reach since chips do not render in the Instagram Message Requests folder. `quickReplies` and `buttons` are mutually exclusive.
705
+ # Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
706
706
  # @param post_id [String] The media/post ID (Instagram media ID or Facebook post ID)
707
707
  # @param comment_id [String] The comment ID to send a private reply to
708
708
  # @param send_private_reply_to_comment_request [SendPrivateReplyToCommentRequest]
@@ -72,6 +72,9 @@ module Zernio
72
72
  # Meta (metaads) only. 2-letter ISO country codes the special ad category applies to. Requires specialAdCategories to be set (400 otherwise).
73
73
  attr_accessor :special_ad_category_country
74
74
 
75
+ # Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set.
76
+ attr_accessor :regional_regulated_categories
77
+
75
78
  # Destination URL for the CTA button. Send it together with `callToAction`. **Meta**: adds a top-level `call_to_action` to the post-reference creative. This is what gives a `traffic` boost a clickable destination without replacing the creative and losing the post's social proof. Ignored when `leadGenFormId` is set, which supplies its own destination. Live-verified against a Page-post creative. **TikTok**: maps to `landing_page_url` on the Spark Ad creative (`AdcreateCreatives.landing_page_url`); Spark Ads have no clickable destination without it. Ignored on LinkedIn / Pinterest / X / Google, which infer the destination from the boosted post.
76
79
  attr_accessor :link_url
77
80
 
@@ -142,6 +145,7 @@ module Zernio
142
145
  :'tracking' => :'tracking',
143
146
  :'special_ad_categories' => :'specialAdCategories',
144
147
  :'special_ad_category_country' => :'specialAdCategoryCountry',
148
+ :'regional_regulated_categories' => :'regionalRegulatedCategories',
145
149
  :'link_url' => :'linkUrl',
146
150
  :'call_to_action' => :'callToAction',
147
151
  :'spark_auth_code' => :'sparkAuthCode',
@@ -187,6 +191,7 @@ module Zernio
187
191
  :'tracking' => :'BoostPostRequestTracking',
188
192
  :'special_ad_categories' => :'Array<String>',
189
193
  :'special_ad_category_country' => :'Array<String>',
194
+ :'regional_regulated_categories' => :'Array<String>',
190
195
  :'link_url' => :'String',
191
196
  :'call_to_action' => :'String',
192
197
  :'spark_auth_code' => :'String',
@@ -318,6 +323,12 @@ module Zernio
318
323
  end
319
324
  end
320
325
 
326
+ if attributes.key?(:'regional_regulated_categories')
327
+ if (value = attributes[:'regional_regulated_categories']).is_a?(Array)
328
+ self.regional_regulated_categories = value
329
+ end
330
+ end
331
+
321
332
  if attributes.key?(:'link_url')
322
333
  self.link_url = attributes[:'link_url']
323
334
  end
@@ -553,6 +564,7 @@ module Zernio
553
564
  tracking == o.tracking &&
554
565
  special_ad_categories == o.special_ad_categories &&
555
566
  special_ad_category_country == o.special_ad_category_country &&
567
+ regional_regulated_categories == o.regional_regulated_categories &&
556
568
  link_url == o.link_url &&
557
569
  call_to_action == o.call_to_action &&
558
570
  spark_auth_code == o.spark_auth_code &&
@@ -572,7 +584,7 @@ module Zernio
572
584
  # Calculates hash code according to all attributes.
573
585
  # @return [Integer] Hash code
574
586
  def hash
575
- [post_id, platform_post_id, account_id, ad_account_id, name, goal, ad_set_id, budget, instagram_account_id, destination_type, currency, schedule, targeting, raw_targeting, bid_strategy, bid_amount, roas_average_floor, platform_specific_data, tracking, special_ad_categories, special_ad_category_country, link_url, call_to_action, spark_auth_code, dsa_beneficiary, dsa_payor, lead_gen_form_id, status, optimization_goal].hash
587
+ [post_id, platform_post_id, account_id, ad_account_id, name, goal, ad_set_id, budget, instagram_account_id, destination_type, currency, schedule, targeting, raw_targeting, bid_strategy, bid_amount, roas_average_floor, platform_specific_data, tracking, special_ad_categories, special_ad_category_country, regional_regulated_categories, link_url, call_to_action, spark_auth_code, dsa_beneficiary, dsa_payor, lead_gen_form_id, status, optimization_goal].hash
576
588
  end
577
589
 
578
590
  # Builds the object from hash
@@ -111,6 +111,9 @@ module Zernio
111
111
  # Legal entity that pays for the ad. Can differ from `dsaBeneficiary` (for example, an agency paying for a client's ads). Same rules as `dsaBeneficiary`: required for EU targeting unless the ad account has a default payor.
112
112
  attr_accessor :dsa_payor
113
113
 
114
+ # Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set.
115
+ attr_accessor :regional_regulated_categories
116
+
114
117
  # E.164 number the CALL_NOW CTA dials (e.g. +34600111222).
115
118
  attr_accessor :phone_number
116
119
 
@@ -176,6 +179,7 @@ module Zernio
176
179
  :'roas_average_floor' => :'roasAverageFloor',
177
180
  :'dsa_beneficiary' => :'dsaBeneficiary',
178
181
  :'dsa_payor' => :'dsaPayor',
182
+ :'regional_regulated_categories' => :'regionalRegulatedCategories',
179
183
  :'phone_number' => :'phoneNumber',
180
184
  :'link_url' => :'linkUrl'
181
185
  }
@@ -228,6 +232,7 @@ module Zernio
228
232
  :'roas_average_floor' => :'Float',
229
233
  :'dsa_beneficiary' => :'String',
230
234
  :'dsa_payor' => :'String',
235
+ :'regional_regulated_categories' => :'Array<String>',
231
236
  :'phone_number' => :'String',
232
237
  :'link_url' => :'String'
233
238
  }
@@ -420,6 +425,12 @@ module Zernio
420
425
  self.dsa_payor = attributes[:'dsa_payor']
421
426
  end
422
427
 
428
+ if attributes.key?(:'regional_regulated_categories')
429
+ if (value = attributes[:'regional_regulated_categories']).is_a?(Array)
430
+ self.regional_regulated_categories = value
431
+ end
432
+ end
433
+
423
434
  if attributes.key?(:'phone_number')
424
435
  self.phone_number = attributes[:'phone_number']
425
436
  else
@@ -849,6 +860,7 @@ module Zernio
849
860
  roas_average_floor == o.roas_average_floor &&
850
861
  dsa_beneficiary == o.dsa_beneficiary &&
851
862
  dsa_payor == o.dsa_payor &&
863
+ regional_regulated_categories == o.regional_regulated_categories &&
852
864
  phone_number == o.phone_number &&
853
865
  link_url == o.link_url
854
866
  end
@@ -862,7 +874,7 @@ module Zernio
862
874
  # Calculates hash code according to all attributes.
863
875
  # @return [Integer] Hash code
864
876
  def hash
865
- [account_id, ad_account_id, name, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, phone_number, link_url].hash
877
+ [account_id, ad_account_id, name, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, regional_regulated_categories, phone_number, link_url].hash
866
878
  end
867
879
 
868
880
  # Builds the object from hash
@@ -111,6 +111,9 @@ module Zernio
111
111
  # Legal entity that pays for the ad. Can differ from `dsaBeneficiary` (for example, an agency paying for a client's ads). Same rules as `dsaBeneficiary`: required for EU targeting unless the ad account has a default payor.
112
112
  attr_accessor :dsa_payor
113
113
 
114
+ # Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set.
115
+ attr_accessor :regional_regulated_categories
116
+
114
117
  # Where the conversation opens when the ad is tapped.
115
118
  attr_accessor :destination
116
119
 
@@ -173,6 +176,7 @@ module Zernio
173
176
  :'roas_average_floor' => :'roasAverageFloor',
174
177
  :'dsa_beneficiary' => :'dsaBeneficiary',
175
178
  :'dsa_payor' => :'dsaPayor',
179
+ :'regional_regulated_categories' => :'regionalRegulatedCategories',
176
180
  :'destination' => :'destination'
177
181
  }
178
182
  end
@@ -224,6 +228,7 @@ module Zernio
224
228
  :'roas_average_floor' => :'Float',
225
229
  :'dsa_beneficiary' => :'String',
226
230
  :'dsa_payor' => :'String',
231
+ :'regional_regulated_categories' => :'Array<String>',
227
232
  :'destination' => :'String'
228
233
  }
229
234
  end
@@ -415,6 +420,12 @@ module Zernio
415
420
  self.dsa_payor = attributes[:'dsa_payor']
416
421
  end
417
422
 
423
+ if attributes.key?(:'regional_regulated_categories')
424
+ if (value = attributes[:'regional_regulated_categories']).is_a?(Array)
425
+ self.regional_regulated_categories = value
426
+ end
427
+ end
428
+
418
429
  if attributes.key?(:'destination')
419
430
  self.destination = attributes[:'destination']
420
431
  else
@@ -825,6 +836,7 @@ module Zernio
825
836
  roas_average_floor == o.roas_average_floor &&
826
837
  dsa_beneficiary == o.dsa_beneficiary &&
827
838
  dsa_payor == o.dsa_payor &&
839
+ regional_regulated_categories == o.regional_regulated_categories &&
828
840
  destination == o.destination
829
841
  end
830
842
 
@@ -837,7 +849,7 @@ module Zernio
837
849
  # Calculates hash code according to all attributes.
838
850
  # @return [Integer] Hash code
839
851
  def hash
840
- [account_id, ad_account_id, name, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, destination].hash
852
+ [account_id, ad_account_id, name, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, regional_regulated_categories, destination].hash
841
853
  end
842
854
 
843
855
  # Builds the object from hash
@@ -183,6 +183,9 @@ module Zernio
183
183
  # Meta (metaads) only. 2-letter ISO country codes the special ad category applies to. Requires specialAdCategories to be set (400 otherwise). Ignored when joining an existing campaign via existingCampaignId (the existing campaign's category/country already governs it).
184
184
  attr_accessor :special_ad_category_country
185
185
 
186
+ # Meta only. Regional regulation categories required when the ad set targets certain countries. Known values: SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV, TAIWAN_FINSERV. Meta rejects the ad set without this when the targeting geo includes the corresponding country.
187
+ attr_accessor :regional_regulated_categories
188
+
186
189
  # Required for lifetime budgets
187
190
  attr_accessor :end_date
188
191
 
@@ -358,6 +361,7 @@ module Zernio
358
361
  :'raw_targeting' => :'rawTargeting',
359
362
  :'special_ad_categories' => :'specialAdCategories',
360
363
  :'special_ad_category_country' => :'specialAdCategoryCountry',
364
+ :'regional_regulated_categories' => :'regionalRegulatedCategories',
361
365
  :'end_date' => :'endDate',
362
366
  :'start_date' => :'startDate',
363
367
  :'instagram_account_id' => :'instagramAccountId',
@@ -465,6 +469,7 @@ module Zernio
465
469
  :'raw_targeting' => :'Hash<String, Object>',
466
470
  :'special_ad_categories' => :'Array<String>',
467
471
  :'special_ad_category_country' => :'Array<String>',
472
+ :'regional_regulated_categories' => :'Array<String>',
468
473
  :'end_date' => :'Time',
469
474
  :'start_date' => :'Time',
470
475
  :'instagram_account_id' => :'String',
@@ -800,6 +805,12 @@ module Zernio
800
805
  end
801
806
  end
802
807
 
808
+ if attributes.key?(:'regional_regulated_categories')
809
+ if (value = attributes[:'regional_regulated_categories']).is_a?(Array)
810
+ self.regional_regulated_categories = value
811
+ end
812
+ end
813
+
803
814
  if attributes.key?(:'end_date')
804
815
  self.end_date = attributes[:'end_date']
805
816
  end
@@ -1686,6 +1697,7 @@ module Zernio
1686
1697
  raw_targeting == o.raw_targeting &&
1687
1698
  special_ad_categories == o.special_ad_categories &&
1688
1699
  special_ad_category_country == o.special_ad_category_country &&
1700
+ regional_regulated_categories == o.regional_regulated_categories &&
1689
1701
  end_date == o.end_date &&
1690
1702
  start_date == o.start_date &&
1691
1703
  instagram_account_id == o.instagram_account_id &&
@@ -1729,7 +1741,7 @@ module Zernio
1729
1741
  # Calculates hash code according to all attributes.
1730
1742
  # @return [Integer] Hash code
1731
1743
  def hash
1732
- [account_id, ad_account_id, name, campaign_name, ad_set_name, ad_name, tracking, goal, optimization_goal, billing_event, buying_type, rf_prediction_id, creative_features, multi_advertiser, validate_only, budget_amount, budget_type, status, campaign_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, work_positions, work_employers, work_industries, income_tier, languages, placements, saved_targeting_id, raw_targeting, special_ad_categories, special_ad_category_country, end_date, start_date, instagram_account_id, dynamic_creative, carousel_cards, default_locale, translations, placement_assets, audience_id, campaign_type, keywords, negative_keywords, additional_headlines, additional_descriptions, sitelinks, callouts, structured_snippets, advantage_audience, attribution_spec, gender, bid_strategy, bid_amount, roas_average_floor, value_rule_set_id, value_rules_applied, platform_specific_data, dsa_beneficiary, dsa_payor, brand_identity, identity_type, smart_plus, promoted_object].hash
1744
+ [account_id, ad_account_id, name, campaign_name, ad_set_name, ad_name, tracking, goal, optimization_goal, billing_event, buying_type, rf_prediction_id, creative_features, multi_advertiser, validate_only, budget_amount, budget_type, status, campaign_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, work_positions, work_employers, work_industries, income_tier, languages, placements, saved_targeting_id, raw_targeting, special_ad_categories, special_ad_category_country, regional_regulated_categories, end_date, start_date, instagram_account_id, dynamic_creative, carousel_cards, default_locale, translations, placement_assets, audience_id, campaign_type, keywords, negative_keywords, additional_headlines, additional_descriptions, sitelinks, callouts, structured_snippets, advantage_audience, attribution_spec, gender, bid_strategy, bid_amount, roas_average_floor, value_rule_set_id, value_rules_applied, platform_specific_data, dsa_beneficiary, dsa_payor, brand_identity, identity_type, smart_plus, promoted_object].hash
1733
1745
  end
1734
1746
 
1735
1747
  # Builds the object from hash
@@ -112,6 +112,9 @@ module Zernio
112
112
  # Legal entity that pays for the ad. Can differ from `dsaBeneficiary` (for example, an agency paying for a client's ads). Same rules as `dsaBeneficiary`: required for EU targeting unless the ad account has a default payor.
113
113
  attr_accessor :dsa_payor
114
114
 
115
+ # Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set.
116
+ attr_accessor :regional_regulated_categories
117
+
115
118
  class EnumAttributeValidator
116
119
  attr_reader :datatype
117
120
  attr_reader :allowable_values
@@ -170,7 +173,8 @@ module Zernio
170
173
  :'bid_amount' => :'bidAmount',
171
174
  :'roas_average_floor' => :'roasAverageFloor',
172
175
  :'dsa_beneficiary' => :'dsaBeneficiary',
173
- :'dsa_payor' => :'dsaPayor'
176
+ :'dsa_payor' => :'dsaPayor',
177
+ :'regional_regulated_categories' => :'regionalRegulatedCategories'
174
178
  }
175
179
  end
176
180
 
@@ -220,7 +224,8 @@ module Zernio
220
224
  :'bid_amount' => :'Float',
221
225
  :'roas_average_floor' => :'Float',
222
226
  :'dsa_beneficiary' => :'String',
223
- :'dsa_payor' => :'String'
227
+ :'dsa_payor' => :'String',
228
+ :'regional_regulated_categories' => :'Array<String>'
224
229
  }
225
230
  end
226
231
 
@@ -403,6 +408,12 @@ module Zernio
403
408
  if attributes.key?(:'dsa_payor')
404
409
  self.dsa_payor = attributes[:'dsa_payor']
405
410
  end
411
+
412
+ if attributes.key?(:'regional_regulated_categories')
413
+ if (value = attributes[:'regional_regulated_categories']).is_a?(Array)
414
+ self.regional_regulated_categories = value
415
+ end
416
+ end
406
417
  end
407
418
 
408
419
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -790,7 +801,8 @@ module Zernio
790
801
  bid_amount == o.bid_amount &&
791
802
  roas_average_floor == o.roas_average_floor &&
792
803
  dsa_beneficiary == o.dsa_beneficiary &&
793
- dsa_payor == o.dsa_payor
804
+ dsa_payor == o.dsa_payor &&
805
+ regional_regulated_categories == o.regional_regulated_categories
794
806
  end
795
807
 
796
808
  # @see the `==` method
@@ -802,7 +814,7 @@ module Zernio
802
814
  # Calculates hash code according to all attributes.
803
815
  # @return [Integer] Hash code
804
816
  def hash
805
- [account_id, ad_account_id, name, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor].hash
817
+ [account_id, ad_account_id, name, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, regional_regulated_categories].hash
806
818
  end
807
819
 
808
820
  # Builds the object from hash
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.819'
14
+ VERSION = '0.0.821'
15
15
  end
data/openapi.yaml CHANGED
@@ -1174,6 +1174,10 @@ components:
1174
1174
  (for example, an agency paying for a client's ads). Same rules as
1175
1175
  `dsaBeneficiary`: required for EU targeting unless the ad account has
1176
1176
  a default payor.
1177
+ regionalRegulatedCategories:
1178
+ type: array
1179
+ description: 'Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set.'
1180
+ items: { type: string }
1177
1181
  WorkflowNode:
1178
1182
  type: object
1179
1183
  required: [id, type]
@@ -29290,9 +29294,12 @@ paths:
29290
29294
  Send a private message to the author of a comment. Supported on Instagram and Facebook only.
29291
29295
  One reply per comment, must be sent within 7 days. Optionally attach interactive elements:
29292
29296
  `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url
29293
- buttons rendered in the same bubble via Meta's button_template). Buttons are recommended
29294
- for cold reach since chips do not render in the Instagram Message Requests folder.
29295
- `quickReplies` and `buttons` are mutually exclusive.
29297
+ buttons rendered in the same bubble via Meta's button_template). Chips do not render in
29298
+ the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons,
29299
+ cards and attachments to commenters who do not follow the account (Meta code 2, subcode
29300
+ 1545133, returned here as a non-retryable 400 that says so), and the failed call still
29301
+ consumes the comment's single private reply. To reach non-followers send plain text and
29302
+ add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
29296
29303
  tags: [Comments]
29297
29304
  security: [{ bearerAuth: [] }]
29298
29305
  parameters:
@@ -43956,6 +43963,10 @@ paths:
43956
43963
  type: array
43957
43964
  description: 'Meta (metaads) only. 2-letter ISO country codes the special ad category applies to. Requires specialAdCategories to be set (400 otherwise).'
43958
43965
  items: { type: string }
43966
+ regionalRegulatedCategories:
43967
+ type: array
43968
+ description: 'Meta only. Regional regulation categories required when the ad set targets certain countries (e.g. SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV, INDIA_FINSERV). Forwarded to the ad set.'
43969
+ items: { type: string }
43959
43970
  linkUrl:
43960
43971
  type: string
43961
43972
  format: uri
@@ -44493,6 +44504,14 @@ paths:
44493
44504
  specialAdCategories to be set (400 otherwise). Ignored when joining an existing campaign via
44494
44505
  existingCampaignId (the existing campaign's category/country already governs it).
44495
44506
  items: { type: string }
44507
+ regionalRegulatedCategories:
44508
+ type: array
44509
+ description: |
44510
+ Meta only. Regional regulation categories required when the ad set targets certain countries.
44511
+ Known values: SINGAPORE_UNIVERSAL, TAIWAN_UNIVERSAL, THAILAND_UNIVERSAL, AUSTRALIA_FINSERV,
44512
+ INDIA_FINSERV, TAIWAN_FINSERV. Meta rejects the ad set without this when the targeting geo
44513
+ includes the corresponding country.
44514
+ items: { type: string }
44496
44515
  endDate: { type: string, format: date-time, description: Required for lifetime budgets }
44497
44516
  startDate:
44498
44517
  type: string
@@ -154,7 +154,7 @@ describe 'CommentsApi' do
154
154
 
155
155
  # unit tests for send_private_reply_to_comment
156
156
  # Send private reply
157
- # Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: &#x60;quickReplies&#x60; (chips above the keyboard, max 13) or &#x60;buttons&#x60; (1-3 inline postback/url buttons rendered in the same bubble via Meta&#39;s button_template). Buttons are recommended for cold reach since chips do not render in the Instagram Message Requests folder. &#x60;quickReplies&#x60; and &#x60;buttons&#x60; are mutually exclusive.
157
+ # Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: &#x60;quickReplies&#x60; (chips above the keyboard, max 13) or &#x60;buttons&#x60; (1-3 inline postback/url buttons rendered in the same bubble via Meta&#39;s button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment&#39;s single private reply. To reach non-followers send plain text and add buttons once they reply. &#x60;quickReplies&#x60; and &#x60;buttons&#x60; are mutually exclusive.
158
158
  # @param post_id The media/post ID (Instagram media ID or Facebook post ID)
159
159
  # @param comment_id The comment ID to send a private reply to
160
160
  # @param send_private_reply_to_comment_request
@@ -165,6 +165,12 @@ describe Zernio::BoostPostRequest do
165
165
  end
166
166
  end
167
167
 
168
+ describe 'test attribute "regional_regulated_categories"' do
169
+ it 'should work' do
170
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
171
+ end
172
+ end
173
+
168
174
  describe 'test attribute "link_url"' do
169
175
  it 'should work' do
170
176
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -255,6 +255,12 @@ describe Zernio::CreateCallAdRequest do
255
255
  end
256
256
  end
257
257
 
258
+ describe 'test attribute "regional_regulated_categories"' do
259
+ it 'should work' do
260
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
261
+ end
262
+ end
263
+
258
264
  describe 'test attribute "phone_number"' do
259
265
  it 'should work' do
260
266
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -255,6 +255,12 @@ describe Zernio::CreateMessagingAdRequest do
255
255
  end
256
256
  end
257
257
 
258
+ describe 'test attribute "regional_regulated_categories"' do
259
+ it 'should work' do
260
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
261
+ end
262
+ end
263
+
258
264
  describe 'test attribute "destination"' do
259
265
  it 'should work' do
260
266
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -425,6 +425,12 @@ describe Zernio::CreateStandaloneAdRequest do
425
425
  end
426
426
  end
427
427
 
428
+ describe 'test attribute "regional_regulated_categories"' do
429
+ it 'should work' do
430
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
431
+ end
432
+ end
433
+
428
434
  describe 'test attribute "end_date"' do
429
435
  it 'should work' do
430
436
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -255,4 +255,10 @@ describe Zernio::CtwaAdRequestBody do
255
255
  end
256
256
  end
257
257
 
258
+ describe 'test attribute "regional_regulated_categories"' do
259
+ it 'should work' do
260
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
261
+ end
262
+ end
263
+
258
264
  end
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.819
4
+ version: 0.0.821
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator