zernio-sdk 0.0.545 → 0.0.547
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 +4 -4
- data/docs/BoostPostRequest.md +2 -0
- data/docs/CreateStandaloneAdRequest.md +2 -0
- data/docs/CreateStandaloneAdRequestPromotedObject.md +5 -1
- data/docs/UpdateAdSetRequestPlatformSpecificDataPromotedObject.md +5 -1
- data/docs/UploadedOrDerivedAudience.md +8 -2
- data/lib/zernio-sdk/api/ad_audiences_api.rb +1 -1
- data/lib/zernio-sdk/models/boost_post_request.rb +13 -1
- data/lib/zernio-sdk/models/create_standalone_ad_request.rb +13 -1
- data/lib/zernio-sdk/models/create_standalone_ad_request_promoted_object.rb +24 -4
- data/lib/zernio-sdk/models/list_ad_audiences200_response_audiences_inner.rb +2 -2
- data/lib/zernio-sdk/models/update_ad_set_request_platform_specific_data_promoted_object.rb +23 -5
- data/lib/zernio-sdk/models/uploaded_or_derived_audience.rb +52 -10
- data/lib/zernio-sdk/version.rb +1 -1
- data/openapi.yaml +49 -6
- data/spec/models/boost_post_request_spec.rb +6 -0
- data/spec/models/create_standalone_ad_request_promoted_object_spec.rb +12 -0
- data/spec/models/create_standalone_ad_request_spec.rb +6 -0
- data/spec/models/list_ad_audiences200_response_audiences_inner_spec.rb +1 -1
- data/spec/models/update_ad_set_request_platform_specific_data_promoted_object_spec.rb +12 -0
- data/spec/models/uploaded_or_derived_audience_spec.rb +23 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 44bffbb34950b03579ca61b16276d7a4faf27f455468eda61b596e7405742d50
|
|
4
|
+
data.tar.gz: 417ccaabd3323001f79a82afc9d3eb9a1a3c3316d14025aff1b9fbca6d824bd5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 574225173cfe39525d27d69990c7147046c4492d66343fda28c276f7b90d2ab3cc8efc2ae59a632f3e7b033525aa2177e9273f35eab157797714b811b13bc435
|
|
7
|
+
data.tar.gz: 6cb543165a29b49bc4427e7cb06452b7100705df905b6616fb4e33cb54b3e86ef04c1c3f28d4e87e974d9d730379582646d8a88d36882f8fdc779f8bfc06898d
|
data/docs/BoostPostRequest.md
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
| **platform_specific_data** | [**LinkedInAdsPlatformData**](LinkedInAdsPlatformData.md) | | [optional] |
|
|
22
22
|
| **tracking** | [**BoostPostRequestTracking**](BoostPostRequestTracking.md) | | [optional] |
|
|
23
23
|
| **special_ad_categories** | **Array<String>** | Meta only. Required for housing, employment, credit, or political ads. | [optional] |
|
|
24
|
+
| **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] |
|
|
24
25
|
| **link_url** | **String** | TikTok-only. Custom destination URL for the Spark Ad. Without this, TikTok Spark Ads have no clickable destination — required for traffic / conversion objectives. Maps to `landing_page_url` on the creative entry of /v2/ad/create/ (TikTok SDK `AdcreateCreatives.landing_page_url`). Ignored on Meta / LinkedIn / Pinterest / X / Google (those infer the destination from the boosted post). | [optional] |
|
|
25
26
|
| **call_to_action** | **String** | TikTok-only. Call-to-action button label on the Spark Ad creative (e.g. `LEARN_MORE`, `SHOP_NOW`, `DOWNLOAD_NOW`, `SIGN_UP`, `WATCH_NOW`). Maps to `call_to_action` on the creative entry of /v2/ad/create/. Pass-through — the platform validates the value. See TikTok's \"Enumeration - Call-to-Action\" reference for the full list. | [optional] |
|
|
26
27
|
| **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] |
|
|
@@ -50,6 +51,7 @@ instance = Zernio::BoostPostRequest.new(
|
|
|
50
51
|
platform_specific_data: null,
|
|
51
52
|
tracking: null,
|
|
52
53
|
special_ad_categories: null,
|
|
54
|
+
special_ad_category_country: null,
|
|
53
55
|
link_url: null,
|
|
54
56
|
call_to_action: null,
|
|
55
57
|
spark_auth_code: null,
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
| **saved_targeting_id** | **String** | ID of a `saved_targeting` audience (created via POST /v1/ads/audiences). When set, its stored TargetingSpec is expanded as the base targeting; inline fields on this body merge on top. Lets you reuse a named targeting preset without re-sending every field. | [optional] |
|
|
58
58
|
| **raw_targeting** | **Hash<String, Object>** | Meta only. A raw Meta-native targeting spec passed to the ad set VERBATIM (snake_case: `geo_locations`, `age_min`, `excluded_custom_audiences`, `flexible_spec`, `targeting_automation`, business places, etc.) — exactly the shape `GET /v1/ads/{adId}` returns for external ads. Use it to clone a campaign's targeting EXACTLY, preserving advanced fields the camelCase targeting fields can't model. Mutually exclusive with the camelCase targeting fields (countries/regions/cities/interests/ ageMin/...), `audienceId`, and `savedTargetingId` (sending both → 422). Sent as-is; Meta validates and surfaces any errors. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those are separate fields, not part of targeting). | [optional] |
|
|
59
59
|
| **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] |
|
|
60
|
+
| **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] |
|
|
60
61
|
| **end_date** | **Time** | Required for lifetime budgets | [optional] |
|
|
61
62
|
| **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] |
|
|
62
63
|
| **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] |
|
|
@@ -140,6 +141,7 @@ instance = Zernio::CreateStandaloneAdRequest.new(
|
|
|
140
141
|
saved_targeting_id: null,
|
|
141
142
|
raw_targeting: null,
|
|
142
143
|
special_ad_categories: null,
|
|
144
|
+
special_ad_category_country: null,
|
|
143
145
|
end_date: null,
|
|
144
146
|
start_date: null,
|
|
145
147
|
instagram_account_id: null,
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
| **custom_conversion_id** | **String** | Custom Conversion ID, when optimising against one instead of a standard event. | [optional] |
|
|
13
13
|
| **product_catalog_id** | **String** | Catalog ID for catalog/Advantage+ Shopping campaigns. | [optional] |
|
|
14
14
|
| **product_set_id** | **String** | Product Set ID inside the catalog. | [optional] |
|
|
15
|
+
| **offline_conversion_data_set_id** | **String** | Meta only. Offline event set (dataset) to optimise toward. Post-merger these are datasets: the id is the dataset id (for pixel-backed datasets, the pixel id). | [optional] |
|
|
16
|
+
| **whatsapp_phone_number** | **String** | Meta only. WhatsApp number on messaging-destination ad sets. | [optional] |
|
|
15
17
|
|
|
16
18
|
## Example
|
|
17
19
|
|
|
@@ -26,7 +28,9 @@ instance = Zernio::CreateStandaloneAdRequestPromotedObject.new(
|
|
|
26
28
|
object_store_url: null,
|
|
27
29
|
custom_conversion_id: null,
|
|
28
30
|
product_catalog_id: null,
|
|
29
|
-
product_set_id: null
|
|
31
|
+
product_set_id: null,
|
|
32
|
+
offline_conversion_data_set_id: null,
|
|
33
|
+
whatsapp_phone_number: null
|
|
30
34
|
)
|
|
31
35
|
```
|
|
32
36
|
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
| **custom_conversion_id** | **String** | | [optional] |
|
|
13
13
|
| **product_catalog_id** | **String** | | [optional] |
|
|
14
14
|
| **product_set_id** | **String** | | [optional] |
|
|
15
|
+
| **offline_conversion_data_set_id** | **String** | | [optional] |
|
|
16
|
+
| **whatsapp_phone_number** | **String** | | [optional] |
|
|
15
17
|
|
|
16
18
|
## Example
|
|
17
19
|
|
|
@@ -26,7 +28,9 @@ instance = Zernio::UpdateAdSetRequestPlatformSpecificDataPromotedObject.new(
|
|
|
26
28
|
object_store_url: null,
|
|
27
29
|
custom_conversion_id: null,
|
|
28
30
|
product_catalog_id: null,
|
|
29
|
-
product_set_id: null
|
|
31
|
+
product_set_id: null,
|
|
32
|
+
offline_conversion_data_set_id: null,
|
|
33
|
+
whatsapp_phone_number: null
|
|
30
34
|
)
|
|
31
35
|
```
|
|
32
36
|
|
|
@@ -16,11 +16,14 @@
|
|
|
16
16
|
| **engagement_sources** | **Array<String>** | Required for engagement audiences. Campaign URNs for the ad source types, organization URNs for pages and events. LinkedIn creates one rule per source, all sharing the same trigger and lookbackDays. | [optional] |
|
|
17
17
|
| **companies** | [**Array<UploadedOrDerivedAudienceCompaniesInner>**](UploadedOrDerivedAudienceCompaniesInner.md) | Required for company_list audiences (LinkedIn only): plain-text company rows for account targeting. Each row needs at least one identifier. LinkedIn recommends 1,000+ companies for a usable match rate and takes up to 48h to process the list. | [optional] |
|
|
18
18
|
| **pixel_id** | **String** | Required for website audiences | [optional] |
|
|
19
|
-
| **retention_days** | **Integer** | Required for website audiences | [optional] |
|
|
19
|
+
| **retention_days** | **Integer** | Required for website (max 180) and meta_engagement (max 365) audiences. | [optional] |
|
|
20
|
+
| **engagement_source** | **String** | Required for meta_engagement audiences (Meta only): what people engaged with. `page` = a Facebook Page, `instagram` = an IG professional account, `video` = a video. The source object must be eligible for engagement audiences or Meta rejects with subcode 1713151 (\"Invalid Event Name\"), surfaced verbatim. | [optional] |
|
|
21
|
+
| **source_id** | **String** | Required for meta_engagement: the Page / IG account / video id. | [optional] |
|
|
22
|
+
| **event** | **String** | meta_engagement only. The engagement event; defaults per source (page → page_engaged, instagram → ig_business_profile_all, video → video_watched). Ignored when `rule` is provided. | [optional] |
|
|
20
23
|
| **source_audience_id** | **String** | Required for lookalike audiences | [optional] |
|
|
21
24
|
| **country** | **String** | 2-letter code, required for lookalike audiences | [optional] |
|
|
22
25
|
| **ratio** | **Float** | Required for lookalike audiences | [optional] |
|
|
23
|
-
| **rule** | **Object** |
|
|
26
|
+
| **rule** | **Object** | Optional raw Meta rule, forwarded verbatim: pixel event rule for website audiences, or the engagement rule for meta_engagement (overrides the built rule, e.g. for event/canvas/lead-form sources). | [optional] |
|
|
24
27
|
| **customer_file_source** | **String** | Data source declaration for GDPR compliance (customer_list only) | [optional] |
|
|
25
28
|
|
|
26
29
|
## Example
|
|
@@ -42,6 +45,9 @@ instance = Zernio::UploadedOrDerivedAudience.new(
|
|
|
42
45
|
companies: null,
|
|
43
46
|
pixel_id: null,
|
|
44
47
|
retention_days: null,
|
|
48
|
+
engagement_source: null,
|
|
49
|
+
source_id: null,
|
|
50
|
+
event: null,
|
|
45
51
|
source_audience_id: null,
|
|
46
52
|
country: null,
|
|
47
53
|
ratio: null,
|
|
@@ -324,7 +324,7 @@ module Zernio
|
|
|
324
324
|
if @api_client.config.client_side_validation && opts[:'platform'] && !allowable_values.include?(opts[:'platform'])
|
|
325
325
|
fail ArgumentError, "invalid value for \"platform\", must be one of #{allowable_values}"
|
|
326
326
|
end
|
|
327
|
-
allowable_values = ["customer_list", "company_list", "engagement", "website", "website_retargeting", "lookalike", "saved_targeting"]
|
|
327
|
+
allowable_values = ["customer_list", "company_list", "engagement", "meta_engagement", "website", "website_retargeting", "lookalike", "saved_targeting"]
|
|
328
328
|
if @api_client.config.client_side_validation && opts[:'type'] && !allowable_values.include?(opts[:'type'])
|
|
329
329
|
fail ArgumentError, "invalid value for \"type\", must be one of #{allowable_values}"
|
|
330
330
|
end
|
|
@@ -59,6 +59,9 @@ module Zernio
|
|
|
59
59
|
# Meta only. Required for housing, employment, credit, or political ads.
|
|
60
60
|
attr_accessor :special_ad_categories
|
|
61
61
|
|
|
62
|
+
# Meta (metaads) only. 2-letter ISO country codes the special ad category applies to. Requires specialAdCategories to be set (400 otherwise).
|
|
63
|
+
attr_accessor :special_ad_category_country
|
|
64
|
+
|
|
62
65
|
# TikTok-only. Custom destination URL for the Spark Ad. Without this, TikTok Spark Ads have no clickable destination — required for traffic / conversion objectives. Maps to `landing_page_url` on the creative entry of /v2/ad/create/ (TikTok SDK `AdcreateCreatives.landing_page_url`). Ignored on Meta / LinkedIn / Pinterest / X / Google (those infer the destination from the boosted post).
|
|
63
66
|
attr_accessor :link_url
|
|
64
67
|
|
|
@@ -116,6 +119,7 @@ module Zernio
|
|
|
116
119
|
:'platform_specific_data' => :'platformSpecificData',
|
|
117
120
|
:'tracking' => :'tracking',
|
|
118
121
|
:'special_ad_categories' => :'specialAdCategories',
|
|
122
|
+
:'special_ad_category_country' => :'specialAdCategoryCountry',
|
|
119
123
|
:'link_url' => :'linkUrl',
|
|
120
124
|
:'call_to_action' => :'callToAction',
|
|
121
125
|
:'spark_auth_code' => :'sparkAuthCode',
|
|
@@ -154,6 +158,7 @@ module Zernio
|
|
|
154
158
|
:'platform_specific_data' => :'LinkedInAdsPlatformData',
|
|
155
159
|
:'tracking' => :'BoostPostRequestTracking',
|
|
156
160
|
:'special_ad_categories' => :'Array<String>',
|
|
161
|
+
:'special_ad_category_country' => :'Array<String>',
|
|
157
162
|
:'link_url' => :'String',
|
|
158
163
|
:'call_to_action' => :'String',
|
|
159
164
|
:'spark_auth_code' => :'String',
|
|
@@ -266,6 +271,12 @@ module Zernio
|
|
|
266
271
|
end
|
|
267
272
|
end
|
|
268
273
|
|
|
274
|
+
if attributes.key?(:'special_ad_category_country')
|
|
275
|
+
if (value = attributes[:'special_ad_category_country']).is_a?(Array)
|
|
276
|
+
self.special_ad_category_country = value
|
|
277
|
+
end
|
|
278
|
+
end
|
|
279
|
+
|
|
269
280
|
if attributes.key?(:'link_url')
|
|
270
281
|
self.link_url = attributes[:'link_url']
|
|
271
282
|
end
|
|
@@ -448,6 +459,7 @@ module Zernio
|
|
|
448
459
|
platform_specific_data == o.platform_specific_data &&
|
|
449
460
|
tracking == o.tracking &&
|
|
450
461
|
special_ad_categories == o.special_ad_categories &&
|
|
462
|
+
special_ad_category_country == o.special_ad_category_country &&
|
|
451
463
|
link_url == o.link_url &&
|
|
452
464
|
call_to_action == o.call_to_action &&
|
|
453
465
|
spark_auth_code == o.spark_auth_code &&
|
|
@@ -464,7 +476,7 @@ module Zernio
|
|
|
464
476
|
# Calculates hash code according to all attributes.
|
|
465
477
|
# @return [Integer] Hash code
|
|
466
478
|
def hash
|
|
467
|
-
[post_id, platform_post_id, account_id, ad_account_id, name, goal, budget, currency, schedule, targeting, raw_targeting, bid_strategy, bid_amount, roas_average_floor, platform_specific_data, tracking, special_ad_categories, link_url, call_to_action, spark_auth_code, dsa_beneficiary, dsa_payor].hash
|
|
479
|
+
[post_id, platform_post_id, account_id, ad_account_id, name, goal, budget, 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].hash
|
|
468
480
|
end
|
|
469
481
|
|
|
470
482
|
# Builds the object from hash
|
|
@@ -164,6 +164,9 @@ module Zernio
|
|
|
164
164
|
# 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.
|
|
165
165
|
attr_accessor :special_ad_categories
|
|
166
166
|
|
|
167
|
+
# 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).
|
|
168
|
+
attr_accessor :special_ad_category_country
|
|
169
|
+
|
|
167
170
|
# Required for lifetime budgets
|
|
168
171
|
attr_accessor :end_date
|
|
169
172
|
|
|
@@ -306,6 +309,7 @@ module Zernio
|
|
|
306
309
|
:'saved_targeting_id' => :'savedTargetingId',
|
|
307
310
|
:'raw_targeting' => :'rawTargeting',
|
|
308
311
|
:'special_ad_categories' => :'specialAdCategories',
|
|
312
|
+
:'special_ad_category_country' => :'specialAdCategoryCountry',
|
|
309
313
|
:'end_date' => :'endDate',
|
|
310
314
|
:'start_date' => :'startDate',
|
|
311
315
|
:'instagram_account_id' => :'instagramAccountId',
|
|
@@ -398,6 +402,7 @@ module Zernio
|
|
|
398
402
|
:'saved_targeting_id' => :'String',
|
|
399
403
|
:'raw_targeting' => :'Hash<String, Object>',
|
|
400
404
|
:'special_ad_categories' => :'Array<String>',
|
|
405
|
+
:'special_ad_category_country' => :'Array<String>',
|
|
401
406
|
:'end_date' => :'Time',
|
|
402
407
|
:'start_date' => :'Time',
|
|
403
408
|
:'instagram_account_id' => :'String',
|
|
@@ -692,6 +697,12 @@ module Zernio
|
|
|
692
697
|
end
|
|
693
698
|
end
|
|
694
699
|
|
|
700
|
+
if attributes.key?(:'special_ad_category_country')
|
|
701
|
+
if (value = attributes[:'special_ad_category_country']).is_a?(Array)
|
|
702
|
+
self.special_ad_category_country = value
|
|
703
|
+
end
|
|
704
|
+
end
|
|
705
|
+
|
|
695
706
|
if attributes.key?(:'end_date')
|
|
696
707
|
self.end_date = attributes[:'end_date']
|
|
697
708
|
end
|
|
@@ -1341,6 +1352,7 @@ module Zernio
|
|
|
1341
1352
|
saved_targeting_id == o.saved_targeting_id &&
|
|
1342
1353
|
raw_targeting == o.raw_targeting &&
|
|
1343
1354
|
special_ad_categories == o.special_ad_categories &&
|
|
1355
|
+
special_ad_category_country == o.special_ad_category_country &&
|
|
1344
1356
|
end_date == o.end_date &&
|
|
1345
1357
|
start_date == o.start_date &&
|
|
1346
1358
|
instagram_account_id == o.instagram_account_id &&
|
|
@@ -1375,7 +1387,7 @@ module Zernio
|
|
|
1375
1387
|
# Calculates hash code according to all attributes.
|
|
1376
1388
|
# @return [Integer] Hash code
|
|
1377
1389
|
def hash
|
|
1378
|
-
[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, validate_only, 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
|
|
1390
|
+
[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, validate_only, 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, special_ad_category_country, 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
|
|
1379
1391
|
end
|
|
1380
1392
|
|
|
1381
1393
|
# Builds the object from hash
|
|
@@ -40,6 +40,12 @@ module Zernio
|
|
|
40
40
|
# Product Set ID inside the catalog.
|
|
41
41
|
attr_accessor :product_set_id
|
|
42
42
|
|
|
43
|
+
# Meta only. Offline event set (dataset) to optimise toward. Post-merger these are datasets: the id is the dataset id (for pixel-backed datasets, the pixel id).
|
|
44
|
+
attr_accessor :offline_conversion_data_set_id
|
|
45
|
+
|
|
46
|
+
# Meta only. WhatsApp number on messaging-destination ad sets.
|
|
47
|
+
attr_accessor :whatsapp_phone_number
|
|
48
|
+
|
|
43
49
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
44
50
|
def self.attribute_map
|
|
45
51
|
{
|
|
@@ -50,7 +56,9 @@ module Zernio
|
|
|
50
56
|
:'object_store_url' => :'objectStoreUrl',
|
|
51
57
|
:'custom_conversion_id' => :'customConversionId',
|
|
52
58
|
:'product_catalog_id' => :'productCatalogId',
|
|
53
|
-
:'product_set_id' => :'productSetId'
|
|
59
|
+
:'product_set_id' => :'productSetId',
|
|
60
|
+
:'offline_conversion_data_set_id' => :'offlineConversionDataSetId',
|
|
61
|
+
:'whatsapp_phone_number' => :'whatsappPhoneNumber'
|
|
54
62
|
}
|
|
55
63
|
end
|
|
56
64
|
|
|
@@ -74,7 +82,9 @@ module Zernio
|
|
|
74
82
|
:'object_store_url' => :'String',
|
|
75
83
|
:'custom_conversion_id' => :'String',
|
|
76
84
|
:'product_catalog_id' => :'String',
|
|
77
|
-
:'product_set_id' => :'String'
|
|
85
|
+
:'product_set_id' => :'String',
|
|
86
|
+
:'offline_conversion_data_set_id' => :'String',
|
|
87
|
+
:'whatsapp_phone_number' => :'String'
|
|
78
88
|
}
|
|
79
89
|
end
|
|
80
90
|
|
|
@@ -131,6 +141,14 @@ module Zernio
|
|
|
131
141
|
if attributes.key?(:'product_set_id')
|
|
132
142
|
self.product_set_id = attributes[:'product_set_id']
|
|
133
143
|
end
|
|
144
|
+
|
|
145
|
+
if attributes.key?(:'offline_conversion_data_set_id')
|
|
146
|
+
self.offline_conversion_data_set_id = attributes[:'offline_conversion_data_set_id']
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
if attributes.key?(:'whatsapp_phone_number')
|
|
150
|
+
self.whatsapp_phone_number = attributes[:'whatsapp_phone_number']
|
|
151
|
+
end
|
|
134
152
|
end
|
|
135
153
|
|
|
136
154
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -160,7 +178,9 @@ module Zernio
|
|
|
160
178
|
object_store_url == o.object_store_url &&
|
|
161
179
|
custom_conversion_id == o.custom_conversion_id &&
|
|
162
180
|
product_catalog_id == o.product_catalog_id &&
|
|
163
|
-
product_set_id == o.product_set_id
|
|
181
|
+
product_set_id == o.product_set_id &&
|
|
182
|
+
offline_conversion_data_set_id == o.offline_conversion_data_set_id &&
|
|
183
|
+
whatsapp_phone_number == o.whatsapp_phone_number
|
|
164
184
|
end
|
|
165
185
|
|
|
166
186
|
# @see the `==` method
|
|
@@ -172,7 +192,7 @@ module Zernio
|
|
|
172
192
|
# Calculates hash code according to all attributes.
|
|
173
193
|
# @return [Integer] Hash code
|
|
174
194
|
def hash
|
|
175
|
-
[pixel_id, custom_event_type, page_id, application_id, object_store_url, custom_conversion_id, product_catalog_id, product_set_id].hash
|
|
195
|
+
[pixel_id, custom_event_type, page_id, application_id, object_store_url, custom_conversion_id, product_catalog_id, product_set_id, offline_conversion_data_set_id, whatsapp_phone_number].hash
|
|
176
196
|
end
|
|
177
197
|
|
|
178
198
|
# Builds the object from hash
|
|
@@ -177,7 +177,7 @@ module Zernio
|
|
|
177
177
|
# @return true if the model is valid
|
|
178
178
|
def valid?
|
|
179
179
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
180
|
-
type_validator = EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "website", "website_retargeting", "lookalike", "saved_targeting"])
|
|
180
|
+
type_validator = EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "meta_engagement", "website", "website_retargeting", "lookalike", "saved_targeting"])
|
|
181
181
|
return false unless type_validator.valid?(@type)
|
|
182
182
|
true
|
|
183
183
|
end
|
|
@@ -185,7 +185,7 @@ module Zernio
|
|
|
185
185
|
# Custom attribute writer method checking allowed values (enum).
|
|
186
186
|
# @param [Object] type Object to be assigned
|
|
187
187
|
def type=(type)
|
|
188
|
-
validator = EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "website", "website_retargeting", "lookalike", "saved_targeting"])
|
|
188
|
+
validator = EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "meta_engagement", "website", "website_retargeting", "lookalike", "saved_targeting"])
|
|
189
189
|
unless validator.valid?(type)
|
|
190
190
|
fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
|
|
191
191
|
end
|
|
@@ -14,7 +14,7 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
# Meta ad-set promoted_object, forwarded verbatim (same shape as /v1/ads/create).
|
|
17
|
+
# Meta ad-set promoted_object, forwarded verbatim (same shape as /v1/ads/create). Unknown keys are rejected with 400.
|
|
18
18
|
class UpdateAdSetRequestPlatformSpecificDataPromotedObject < ApiModelBase
|
|
19
19
|
attr_accessor :pixel_id
|
|
20
20
|
|
|
@@ -32,6 +32,10 @@ module Zernio
|
|
|
32
32
|
|
|
33
33
|
attr_accessor :product_set_id
|
|
34
34
|
|
|
35
|
+
attr_accessor :offline_conversion_data_set_id
|
|
36
|
+
|
|
37
|
+
attr_accessor :whatsapp_phone_number
|
|
38
|
+
|
|
35
39
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
36
40
|
def self.attribute_map
|
|
37
41
|
{
|
|
@@ -42,7 +46,9 @@ module Zernio
|
|
|
42
46
|
:'object_store_url' => :'objectStoreUrl',
|
|
43
47
|
:'custom_conversion_id' => :'customConversionId',
|
|
44
48
|
:'product_catalog_id' => :'productCatalogId',
|
|
45
|
-
:'product_set_id' => :'productSetId'
|
|
49
|
+
:'product_set_id' => :'productSetId',
|
|
50
|
+
:'offline_conversion_data_set_id' => :'offlineConversionDataSetId',
|
|
51
|
+
:'whatsapp_phone_number' => :'whatsappPhoneNumber'
|
|
46
52
|
}
|
|
47
53
|
end
|
|
48
54
|
|
|
@@ -66,7 +72,9 @@ module Zernio
|
|
|
66
72
|
:'object_store_url' => :'String',
|
|
67
73
|
:'custom_conversion_id' => :'String',
|
|
68
74
|
:'product_catalog_id' => :'String',
|
|
69
|
-
:'product_set_id' => :'String'
|
|
75
|
+
:'product_set_id' => :'String',
|
|
76
|
+
:'offline_conversion_data_set_id' => :'String',
|
|
77
|
+
:'whatsapp_phone_number' => :'String'
|
|
70
78
|
}
|
|
71
79
|
end
|
|
72
80
|
|
|
@@ -123,6 +131,14 @@ module Zernio
|
|
|
123
131
|
if attributes.key?(:'product_set_id')
|
|
124
132
|
self.product_set_id = attributes[:'product_set_id']
|
|
125
133
|
end
|
|
134
|
+
|
|
135
|
+
if attributes.key?(:'offline_conversion_data_set_id')
|
|
136
|
+
self.offline_conversion_data_set_id = attributes[:'offline_conversion_data_set_id']
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
if attributes.key?(:'whatsapp_phone_number')
|
|
140
|
+
self.whatsapp_phone_number = attributes[:'whatsapp_phone_number']
|
|
141
|
+
end
|
|
126
142
|
end
|
|
127
143
|
|
|
128
144
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -152,7 +168,9 @@ module Zernio
|
|
|
152
168
|
object_store_url == o.object_store_url &&
|
|
153
169
|
custom_conversion_id == o.custom_conversion_id &&
|
|
154
170
|
product_catalog_id == o.product_catalog_id &&
|
|
155
|
-
product_set_id == o.product_set_id
|
|
171
|
+
product_set_id == o.product_set_id &&
|
|
172
|
+
offline_conversion_data_set_id == o.offline_conversion_data_set_id &&
|
|
173
|
+
whatsapp_phone_number == o.whatsapp_phone_number
|
|
156
174
|
end
|
|
157
175
|
|
|
158
176
|
# @see the `==` method
|
|
@@ -164,7 +182,7 @@ module Zernio
|
|
|
164
182
|
# Calculates hash code according to all attributes.
|
|
165
183
|
# @return [Integer] Hash code
|
|
166
184
|
def hash
|
|
167
|
-
[pixel_id, custom_event_type, page_id, application_id, object_store_url, custom_conversion_id, product_catalog_id, product_set_id].hash
|
|
185
|
+
[pixel_id, custom_event_type, page_id, application_id, object_store_url, custom_conversion_id, product_catalog_id, product_set_id, offline_conversion_data_set_id, whatsapp_phone_number].hash
|
|
168
186
|
end
|
|
169
187
|
|
|
170
188
|
# Builds the object from hash
|
|
@@ -48,9 +48,18 @@ module Zernio
|
|
|
48
48
|
# Required for website audiences
|
|
49
49
|
attr_accessor :pixel_id
|
|
50
50
|
|
|
51
|
-
# Required for website audiences
|
|
51
|
+
# Required for website (max 180) and meta_engagement (max 365) audiences.
|
|
52
52
|
attr_accessor :retention_days
|
|
53
53
|
|
|
54
|
+
# Required for meta_engagement audiences (Meta only): what people engaged with. `page` = a Facebook Page, `instagram` = an IG professional account, `video` = a video. The source object must be eligible for engagement audiences or Meta rejects with subcode 1713151 (\"Invalid Event Name\"), surfaced verbatim.
|
|
55
|
+
attr_accessor :engagement_source
|
|
56
|
+
|
|
57
|
+
# Required for meta_engagement: the Page / IG account / video id.
|
|
58
|
+
attr_accessor :source_id
|
|
59
|
+
|
|
60
|
+
# meta_engagement only. The engagement event; defaults per source (page → page_engaged, instagram → ig_business_profile_all, video → video_watched). Ignored when `rule` is provided.
|
|
61
|
+
attr_accessor :event
|
|
62
|
+
|
|
54
63
|
# Required for lookalike audiences
|
|
55
64
|
attr_accessor :source_audience_id
|
|
56
65
|
|
|
@@ -60,7 +69,7 @@ module Zernio
|
|
|
60
69
|
# Required for lookalike audiences
|
|
61
70
|
attr_accessor :ratio
|
|
62
71
|
|
|
63
|
-
#
|
|
72
|
+
# Optional raw Meta rule, forwarded verbatim: pixel event rule for website audiences, or the engagement rule for meta_engagement (overrides the built rule, e.g. for event/canvas/lead-form sources).
|
|
64
73
|
attr_accessor :rule
|
|
65
74
|
|
|
66
75
|
# Data source declaration for GDPR compliance (customer_list only)
|
|
@@ -104,6 +113,9 @@ module Zernio
|
|
|
104
113
|
:'companies' => :'companies',
|
|
105
114
|
:'pixel_id' => :'pixelId',
|
|
106
115
|
:'retention_days' => :'retentionDays',
|
|
116
|
+
:'engagement_source' => :'engagementSource',
|
|
117
|
+
:'source_id' => :'sourceId',
|
|
118
|
+
:'event' => :'event',
|
|
107
119
|
:'source_audience_id' => :'sourceAudienceId',
|
|
108
120
|
:'country' => :'country',
|
|
109
121
|
:'ratio' => :'ratio',
|
|
@@ -138,6 +150,9 @@ module Zernio
|
|
|
138
150
|
:'companies' => :'Array<UploadedOrDerivedAudienceCompaniesInner>',
|
|
139
151
|
:'pixel_id' => :'String',
|
|
140
152
|
:'retention_days' => :'Integer',
|
|
153
|
+
:'engagement_source' => :'String',
|
|
154
|
+
:'source_id' => :'String',
|
|
155
|
+
:'event' => :'String',
|
|
141
156
|
:'source_audience_id' => :'String',
|
|
142
157
|
:'country' => :'String',
|
|
143
158
|
:'ratio' => :'Float',
|
|
@@ -234,6 +249,18 @@ module Zernio
|
|
|
234
249
|
self.retention_days = attributes[:'retention_days']
|
|
235
250
|
end
|
|
236
251
|
|
|
252
|
+
if attributes.key?(:'engagement_source')
|
|
253
|
+
self.engagement_source = attributes[:'engagement_source']
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
if attributes.key?(:'source_id')
|
|
257
|
+
self.source_id = attributes[:'source_id']
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
if attributes.key?(:'event')
|
|
261
|
+
self.event = attributes[:'event']
|
|
262
|
+
end
|
|
263
|
+
|
|
237
264
|
if attributes.key?(:'source_audience_id')
|
|
238
265
|
self.source_audience_id = attributes[:'source_audience_id']
|
|
239
266
|
end
|
|
@@ -304,8 +331,8 @@ module Zernio
|
|
|
304
331
|
invalid_properties.push('invalid value for "companies", number of items must be greater than or equal to 1.')
|
|
305
332
|
end
|
|
306
333
|
|
|
307
|
-
if !@retention_days.nil? && @retention_days >
|
|
308
|
-
invalid_properties.push('invalid value for "retention_days", must be smaller than or equal to
|
|
334
|
+
if !@retention_days.nil? && @retention_days > 365
|
|
335
|
+
invalid_properties.push('invalid value for "retention_days", must be smaller than or equal to 365.')
|
|
309
336
|
end
|
|
310
337
|
|
|
311
338
|
if !@retention_days.nil? && @retention_days < 1
|
|
@@ -332,7 +359,7 @@ module Zernio
|
|
|
332
359
|
return false if @name.nil?
|
|
333
360
|
return false if @name.to_s.length > 255
|
|
334
361
|
return false if @type.nil?
|
|
335
|
-
type_validator = EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "website", "website_retargeting", "lookalike"])
|
|
362
|
+
type_validator = EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "meta_engagement", "website", "website_retargeting", "lookalike"])
|
|
336
363
|
return false unless type_validator.valid?(@type)
|
|
337
364
|
return false if !@match_rules.nil? && @match_rules.length > 50
|
|
338
365
|
return false if !@match_rules.nil? && @match_rules.length < 1
|
|
@@ -344,8 +371,10 @@ module Zernio
|
|
|
344
371
|
return false if !@engagement_sources.nil? && @engagement_sources.length < 1
|
|
345
372
|
return false if !@companies.nil? && @companies.length > 300000
|
|
346
373
|
return false if !@companies.nil? && @companies.length < 1
|
|
347
|
-
return false if !@retention_days.nil? && @retention_days >
|
|
374
|
+
return false if !@retention_days.nil? && @retention_days > 365
|
|
348
375
|
return false if !@retention_days.nil? && @retention_days < 1
|
|
376
|
+
engagement_source_validator = EnumAttributeValidator.new('String', ["page", "instagram", "video"])
|
|
377
|
+
return false unless engagement_source_validator.valid?(@engagement_source)
|
|
349
378
|
return false if !@ratio.nil? && @ratio > 0.2
|
|
350
379
|
return false if !@ratio.nil? && @ratio < 0.01
|
|
351
380
|
true
|
|
@@ -388,7 +417,7 @@ module Zernio
|
|
|
388
417
|
# Custom attribute writer method checking allowed values (enum).
|
|
389
418
|
# @param [Object] type Object to be assigned
|
|
390
419
|
def type=(type)
|
|
391
|
-
validator = EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "website", "website_retargeting", "lookalike"])
|
|
420
|
+
validator = EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "meta_engagement", "website", "website_retargeting", "lookalike"])
|
|
392
421
|
unless validator.valid?(type)
|
|
393
422
|
fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
|
|
394
423
|
end
|
|
@@ -476,8 +505,8 @@ module Zernio
|
|
|
476
505
|
fail ArgumentError, 'retention_days cannot be nil'
|
|
477
506
|
end
|
|
478
507
|
|
|
479
|
-
if retention_days >
|
|
480
|
-
fail ArgumentError, 'invalid value for "retention_days", must be smaller than or equal to
|
|
508
|
+
if retention_days > 365
|
|
509
|
+
fail ArgumentError, 'invalid value for "retention_days", must be smaller than or equal to 365.'
|
|
481
510
|
end
|
|
482
511
|
|
|
483
512
|
if retention_days < 1
|
|
@@ -487,6 +516,16 @@ module Zernio
|
|
|
487
516
|
@retention_days = retention_days
|
|
488
517
|
end
|
|
489
518
|
|
|
519
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
520
|
+
# @param [Object] engagement_source Object to be assigned
|
|
521
|
+
def engagement_source=(engagement_source)
|
|
522
|
+
validator = EnumAttributeValidator.new('String', ["page", "instagram", "video"])
|
|
523
|
+
unless validator.valid?(engagement_source)
|
|
524
|
+
fail ArgumentError, "invalid value for \"engagement_source\", must be one of #{validator.allowable_values}."
|
|
525
|
+
end
|
|
526
|
+
@engagement_source = engagement_source
|
|
527
|
+
end
|
|
528
|
+
|
|
490
529
|
# Custom attribute writer method with validation
|
|
491
530
|
# @param [Object] ratio Value to be assigned
|
|
492
531
|
def ratio=(ratio)
|
|
@@ -523,6 +562,9 @@ module Zernio
|
|
|
523
562
|
companies == o.companies &&
|
|
524
563
|
pixel_id == o.pixel_id &&
|
|
525
564
|
retention_days == o.retention_days &&
|
|
565
|
+
engagement_source == o.engagement_source &&
|
|
566
|
+
source_id == o.source_id &&
|
|
567
|
+
event == o.event &&
|
|
526
568
|
source_audience_id == o.source_audience_id &&
|
|
527
569
|
country == o.country &&
|
|
528
570
|
ratio == o.ratio &&
|
|
@@ -539,7 +581,7 @@ module Zernio
|
|
|
539
581
|
# Calculates hash code according to all attributes.
|
|
540
582
|
# @return [Integer] Hash code
|
|
541
583
|
def hash
|
|
542
|
-
[account_id, ad_account_id, name, description, type, match_rules, source_type, trigger, lookback_days, engagement_sources, companies, pixel_id, retention_days, source_audience_id, country, ratio, rule, customer_file_source].hash
|
|
584
|
+
[account_id, ad_account_id, name, description, type, match_rules, source_type, trigger, lookback_days, engagement_sources, companies, pixel_id, retention_days, engagement_source, source_id, event, source_audience_id, country, ratio, rule, customer_file_source].hash
|
|
543
585
|
end
|
|
544
586
|
|
|
545
587
|
# Builds the object from hash
|
data/lib/zernio-sdk/version.rb
CHANGED
data/openapi.yaml
CHANGED
|
@@ -13231,6 +13231,7 @@ paths:
|
|
|
13231
13231
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
13232
13232
|
'402': { $ref: '#/components/responses/PaymentRequired' }
|
|
13233
13233
|
'403': { description: Profile limit exceeded }
|
|
13234
|
+
'409': { description: "A profile with this name already exists (code: profile_name_conflict)." }
|
|
13234
13235
|
/v1/profiles/{profileId}:
|
|
13235
13236
|
get:
|
|
13236
13237
|
operationId: getProfile
|
|
@@ -13305,6 +13306,7 @@ paths:
|
|
|
13305
13306
|
'400': { description: Invalid request }
|
|
13306
13307
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
13307
13308
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
13309
|
+
'409': { description: "A profile with this name already exists (code: profile_name_conflict)." }
|
|
13308
13310
|
delete:
|
|
13309
13311
|
operationId: deleteProfile
|
|
13310
13312
|
tags: [Profiles]
|
|
@@ -33214,6 +33216,7 @@ paths:
|
|
|
33214
33216
|
pagination: { $ref: '#/components/schemas/Pagination' }
|
|
33215
33217
|
'202':
|
|
33216
33218
|
description: "Part of the requested date range predates the ingested history; a background backfill job has been queued. The body has the same shape as the 200 response, carries the currently-available data, and includes `backfillPending: true`. A `Retry-After` header carries the recommended poll interval in seconds. Allow the job a short time to run (typically 1-3 minutes) and submit the request again; once ingestion completes the same request returns 200 with the full range."
|
|
33219
|
+
'400': { $ref: '#/components/responses/BadRequest' }
|
|
33217
33220
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
33218
33221
|
'403':
|
|
33219
33222
|
description: Ads access required. Legacy plans need the Ads add-on; included by default on usage-based plans.
|
|
@@ -33787,7 +33790,7 @@ paths:
|
|
|
33787
33790
|
endDate: { type: string, description: "Ad set end_time (ISO 8601)." }
|
|
33788
33791
|
promotedObject:
|
|
33789
33792
|
type: object
|
|
33790
|
-
description: "Meta ad-set promoted_object, forwarded verbatim (same shape as /v1/ads/create)."
|
|
33793
|
+
description: "Meta ad-set promoted_object, forwarded verbatim (same shape as /v1/ads/create). Unknown keys are rejected with 400."
|
|
33791
33794
|
properties:
|
|
33792
33795
|
pixelId: { type: string }
|
|
33793
33796
|
customEventType: { type: string }
|
|
@@ -33797,6 +33800,9 @@ paths:
|
|
|
33797
33800
|
customConversionId: { type: string }
|
|
33798
33801
|
productCatalogId: { type: string }
|
|
33799
33802
|
productSetId: { type: string }
|
|
33803
|
+
offlineConversionDataSetId: { type: string }
|
|
33804
|
+
whatsappPhoneNumber: { type: string }
|
|
33805
|
+
additionalProperties: false
|
|
33800
33806
|
responses:
|
|
33801
33807
|
'200':
|
|
33802
33808
|
description: Ad set updated
|
|
@@ -35662,6 +35668,10 @@ paths:
|
|
|
35662
35668
|
type: array
|
|
35663
35669
|
description: "Meta only. Required for housing, employment, credit, or political ads."
|
|
35664
35670
|
items: { type: string, enum: [HOUSING, EMPLOYMENT, CREDIT, FINANCIAL_PRODUCTS_SERVICES, ISSUES_ELECTIONS_POLITICS, ONLINE_GAMBLING_AND_GAMING] }
|
|
35671
|
+
specialAdCategoryCountry:
|
|
35672
|
+
type: array
|
|
35673
|
+
description: 'Meta (metaads) only. 2-letter ISO country codes the special ad category applies to. Requires specialAdCategories to be set (400 otherwise).'
|
|
35674
|
+
items: { type: string }
|
|
35665
35675
|
linkUrl:
|
|
35666
35676
|
type: string
|
|
35667
35677
|
format: uri
|
|
@@ -36107,6 +36117,13 @@ paths:
|
|
|
36107
36117
|
political/social-issue ads (Meta enforces restricted targeting for these). Note: setting a special
|
|
36108
36118
|
category disables income/zip targeting on Meta.
|
|
36109
36119
|
items: { type: string, enum: [HOUSING, EMPLOYMENT, CREDIT, FINANCIAL_PRODUCTS_SERVICES, ISSUES_ELECTIONS_POLITICS, ONLINE_GAMBLING_AND_GAMING] }
|
|
36120
|
+
specialAdCategoryCountry:
|
|
36121
|
+
type: array
|
|
36122
|
+
description: |
|
|
36123
|
+
Meta (metaads) only. 2-letter ISO country codes the special ad category applies to. Requires
|
|
36124
|
+
specialAdCategories to be set (400 otherwise). Ignored when joining an existing campaign via
|
|
36125
|
+
existingCampaignId (the existing campaign's category/country already governs it).
|
|
36126
|
+
items: { type: string }
|
|
36110
36127
|
endDate: { type: string, format: date-time, description: Required for lifetime budgets }
|
|
36111
36128
|
startDate:
|
|
36112
36129
|
type: string
|
|
@@ -36454,6 +36471,13 @@ paths:
|
|
|
36454
36471
|
productSetId:
|
|
36455
36472
|
type: string
|
|
36456
36473
|
description: Product Set ID inside the catalog.
|
|
36474
|
+
offlineConversionDataSetId:
|
|
36475
|
+
type: string
|
|
36476
|
+
description: 'Meta only. Offline event set (dataset) to optimise toward. Post-merger these are datasets: the id is the dataset id (for pixel-backed datasets, the pixel id).'
|
|
36477
|
+
whatsappPhoneNumber:
|
|
36478
|
+
type: string
|
|
36479
|
+
description: 'Meta only. WhatsApp number on messaging-destination ad sets.'
|
|
36480
|
+
additionalProperties: false
|
|
36457
36481
|
responses:
|
|
36458
36482
|
'200':
|
|
36459
36483
|
description: 'validateOnly dry-run passed — nothing was created'
|
|
@@ -37144,6 +37168,7 @@ paths:
|
|
|
37144
37168
|
name: { type: string }
|
|
37145
37169
|
vertical: { type: [string, "null"], description: "Catalog vertical (e.g. commerce, vehicles, hotels)" }
|
|
37146
37170
|
productCount: { type: integer }
|
|
37171
|
+
'400': { $ref: '#/components/responses/BadRequest' }
|
|
37147
37172
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
37148
37173
|
'403':
|
|
37149
37174
|
description: Ads access required. Legacy plans need the Ads add-on; included by default on usage-based plans.
|
|
@@ -37174,6 +37199,7 @@ paths:
|
|
|
37174
37199
|
id: { type: string }
|
|
37175
37200
|
name: { type: string }
|
|
37176
37201
|
productCount: { type: integer }
|
|
37202
|
+
'400': { $ref: '#/components/responses/BadRequest' }
|
|
37177
37203
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
37178
37204
|
'403':
|
|
37179
37205
|
description: Ads access required. Legacy plans need the Ads add-on; included by default on usage-based plans.
|
|
@@ -37189,7 +37215,7 @@ paths:
|
|
|
37189
37215
|
- { name: accountId, in: query, required: true, schema: { type: string }, description: Social account ID }
|
|
37190
37216
|
- { name: adAccountId, in: query, required: true, schema: { type: string }, description: Platform ad account ID }
|
|
37191
37217
|
- { name: platform, in: query, schema: { type: string, enum: [facebook, instagram, googleads, tiktok, tiktokads, pinterest, linkedin, linkedinads, twitter, xads] } }
|
|
37192
|
-
- { name: type, in: query, required: false, schema: { type: string, enum: [customer_list, company_list, engagement, website, website_retargeting, lookalike, saved_targeting] }, description: "Filter to one audience type. `saved_targeting` returns stored TargetingSpec audiences; the other types return uploaded/derived audiences." }
|
|
37218
|
+
- { name: type, in: query, required: false, schema: { type: string, enum: [customer_list, company_list, engagement, meta_engagement, website, website_retargeting, lookalike, saved_targeting] }, description: "Filter to one audience type. `saved_targeting` returns stored TargetingSpec audiences; the other types return uploaded/derived audiences." }
|
|
37193
37219
|
responses:
|
|
37194
37220
|
'200':
|
|
37195
37221
|
description: Audiences
|
|
@@ -37208,7 +37234,7 @@ paths:
|
|
|
37208
37234
|
platformAudienceId: { type: string }
|
|
37209
37235
|
name: { type: string }
|
|
37210
37236
|
description: { type: string }
|
|
37211
|
-
type: { type: string, enum: [customer_list, company_list, engagement, website, website_retargeting, lookalike, saved_targeting] }
|
|
37237
|
+
type: { type: string, enum: [customer_list, company_list, engagement, meta_engagement, website, website_retargeting, lookalike, saved_targeting] }
|
|
37212
37238
|
spec:
|
|
37213
37239
|
anyOf:
|
|
37214
37240
|
- $ref: '#/components/schemas/TargetingSpec'
|
|
@@ -37248,7 +37274,7 @@ paths:
|
|
|
37248
37274
|
adAccountId: { type: string, description: "Platform ad account ID. Must start with act_ for Meta; bare platform id for others (Google customer id, X/TikTok/LinkedIn/Pinterest account id)." }
|
|
37249
37275
|
name: { type: string, maxLength: 255 }
|
|
37250
37276
|
description: { type: string }
|
|
37251
|
-
type: { type: string, enum: [customer_list, company_list, engagement, website, website_retargeting, lookalike] }
|
|
37277
|
+
type: { type: string, enum: [customer_list, company_list, engagement, meta_engagement, website, website_retargeting, lookalike] }
|
|
37252
37278
|
matchRules:
|
|
37253
37279
|
type: array
|
|
37254
37280
|
minItems: 1
|
|
@@ -37319,11 +37345,27 @@ paths:
|
|
|
37319
37345
|
website: { type: string, maxLength: 100 }
|
|
37320
37346
|
linkedinPageUrl: { type: string }
|
|
37321
37347
|
pixelId: { type: string, description: Required for website audiences }
|
|
37322
|
-
retentionDays: { type: integer, minimum: 1, maximum:
|
|
37348
|
+
retentionDays: { type: integer, minimum: 1, maximum: 365, description: "Required for website (max 180) and meta_engagement (max 365) audiences." }
|
|
37349
|
+
engagementSource:
|
|
37350
|
+
type: string
|
|
37351
|
+
enum: [page, instagram, video]
|
|
37352
|
+
description: |
|
|
37353
|
+
Required for meta_engagement audiences (Meta only): what people
|
|
37354
|
+
engaged with. `page` = a Facebook Page, `instagram` = an IG
|
|
37355
|
+
professional account, `video` = a video. The source object must be
|
|
37356
|
+
eligible for engagement audiences or Meta rejects with subcode
|
|
37357
|
+
1713151 ("Invalid Event Name"), surfaced verbatim.
|
|
37358
|
+
sourceId: { type: string, description: "Required for meta_engagement: the Page / IG account / video id." }
|
|
37359
|
+
event:
|
|
37360
|
+
type: string
|
|
37361
|
+
description: |
|
|
37362
|
+
meta_engagement only. The engagement event; defaults per source
|
|
37363
|
+
(page → page_engaged, instagram → ig_business_profile_all,
|
|
37364
|
+
video → video_watched). Ignored when `rule` is provided.
|
|
37323
37365
|
sourceAudienceId: { type: string, description: Required for lookalike audiences }
|
|
37324
37366
|
country: { type: string, description: "2-letter code, required for lookalike audiences" }
|
|
37325
37367
|
ratio: { type: number, minimum: 0.01, maximum: 0.20, description: Required for lookalike audiences }
|
|
37326
|
-
rule: { type: object, description: "
|
|
37368
|
+
rule: { type: object, description: "Optional raw Meta rule, forwarded verbatim: pixel event rule for website audiences, or the engagement rule for meta_engagement (overrides the built rule, e.g. for event/canvas/lead-form sources)." }
|
|
37327
37369
|
customerFileSource: { type: string, description: "Data source declaration for GDPR compliance (customer_list only)" }
|
|
37328
37370
|
- type: object
|
|
37329
37371
|
title: SavedTargetingAudience
|
|
@@ -37537,6 +37579,7 @@ paths:
|
|
|
37537
37579
|
identifier: { type: string }
|
|
37538
37580
|
coveragePercentage: { type: number }
|
|
37539
37581
|
eventCoveragePercentage: { type: number, description: "Pixel↔CAPI coverage rate for this event." }
|
|
37582
|
+
'400': { $ref: '#/components/responses/BadRequest' }
|
|
37540
37583
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
37541
37584
|
'405': { description: "Platform does not expose Event Match Quality (non-Meta)." }
|
|
37542
37585
|
/v1/ads/conversions:
|
|
@@ -137,6 +137,12 @@ describe Zernio::BoostPostRequest do
|
|
|
137
137
|
end
|
|
138
138
|
end
|
|
139
139
|
|
|
140
|
+
describe 'test attribute "special_ad_category_country"' do
|
|
141
|
+
it 'should work' do
|
|
142
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
140
146
|
describe 'test attribute "link_url"' do
|
|
141
147
|
it 'should work' do
|
|
142
148
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -75,4 +75,16 @@ describe Zernio::CreateStandaloneAdRequestPromotedObject do
|
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
|
|
78
|
+
describe 'test attribute "offline_conversion_data_set_id"' do
|
|
79
|
+
it 'should work' do
|
|
80
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
describe 'test attribute "whatsapp_phone_number"' do
|
|
85
|
+
it 'should work' do
|
|
86
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
78
90
|
end
|
|
@@ -381,6 +381,12 @@ describe Zernio::CreateStandaloneAdRequest do
|
|
|
381
381
|
end
|
|
382
382
|
end
|
|
383
383
|
|
|
384
|
+
describe 'test attribute "special_ad_category_country"' do
|
|
385
|
+
it 'should work' do
|
|
386
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
387
|
+
end
|
|
388
|
+
end
|
|
389
|
+
|
|
384
390
|
describe 'test attribute "end_date"' do
|
|
385
391
|
it 'should work' do
|
|
386
392
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -60,7 +60,7 @@ describe Zernio::ListAdAudiences200ResponseAudiencesInner do
|
|
|
60
60
|
describe 'test attribute "type"' do
|
|
61
61
|
it 'should work' do
|
|
62
62
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
63
|
-
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "website", "website_retargeting", "lookalike", "saved_targeting"])
|
|
63
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "meta_engagement", "website", "website_retargeting", "lookalike", "saved_targeting"])
|
|
64
64
|
# validator.allowable_values.each do |value|
|
|
65
65
|
# expect { instance.type = value }.not_to raise_error
|
|
66
66
|
# end
|
|
@@ -75,4 +75,16 @@ describe Zernio::UpdateAdSetRequestPlatformSpecificDataPromotedObject do
|
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
|
|
78
|
+
describe 'test attribute "offline_conversion_data_set_id"' do
|
|
79
|
+
it 'should work' do
|
|
80
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
describe 'test attribute "whatsapp_phone_number"' do
|
|
85
|
+
it 'should work' do
|
|
86
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
78
90
|
end
|
|
@@ -54,7 +54,7 @@ describe Zernio::UploadedOrDerivedAudience do
|
|
|
54
54
|
describe 'test attribute "type"' do
|
|
55
55
|
it 'should work' do
|
|
56
56
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
57
|
-
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "website", "website_retargeting", "lookalike"])
|
|
57
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["customer_list", "company_list", "engagement", "meta_engagement", "website", "website_retargeting", "lookalike"])
|
|
58
58
|
# validator.allowable_values.each do |value|
|
|
59
59
|
# expect { instance.type = value }.not_to raise_error
|
|
60
60
|
# end
|
|
@@ -117,6 +117,28 @@ describe Zernio::UploadedOrDerivedAudience do
|
|
|
117
117
|
end
|
|
118
118
|
end
|
|
119
119
|
|
|
120
|
+
describe 'test attribute "engagement_source"' do
|
|
121
|
+
it 'should work' do
|
|
122
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
123
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["page", "instagram", "video"])
|
|
124
|
+
# validator.allowable_values.each do |value|
|
|
125
|
+
# expect { instance.engagement_source = value }.not_to raise_error
|
|
126
|
+
# end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
describe 'test attribute "source_id"' do
|
|
131
|
+
it 'should work' do
|
|
132
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
describe 'test attribute "event"' do
|
|
137
|
+
it 'should work' do
|
|
138
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
120
142
|
describe 'test attribute "source_audience_id"' do
|
|
121
143
|
it 'should work' do
|
|
122
144
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|