late-sdk 0.0.755 → 0.0.756
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/README.md +1 -0
- data/docs/CreateStandaloneAdRequest.md +2 -0
- data/docs/CreateStandaloneAdRequestSitelinksInner.md +24 -0
- data/lib/zernio-sdk/models/create_standalone_ad_request.rb +41 -1
- data/lib/zernio-sdk/models/create_standalone_ad_request_sitelinks_inner.rb +286 -0
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +1 -0
- data/openapi.yaml +20 -0
- data/spec/models/create_standalone_ad_request_sitelinks_inner_spec.rb +54 -0
- data/spec/models/create_standalone_ad_request_spec.rb +6 -0
- data/zernio-sdk-0.0.756.gem +0 -0
- metadata +6 -2
- data/zernio-sdk-0.0.755.gem +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5b026bacb5cb7ccbdf440e3155e79306dc9e0bc9b2015659220718cbfa9e2c93
|
|
4
|
+
data.tar.gz: dbdcdf61c18f17fef90ca78ef8faba928c37e780102b41ab1c4d4653a893835b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b40e9b0e6ff80086eb8cfb0c3c54d5216779f6c3a50e7ed2a643a41a1890516bec6e49c8f8973a5a0d88b595fa50d16d5e80c219d902b45b20dc87b031d77c9d
|
|
7
|
+
data.tar.gz: a6e70a1c662df2bc4d70367133247e92e2159606c8e54ecea2f36ef56617a4904d12dd0e834a114db00469e169539757c33bcc0d929bc52d5cd67a592037e2c7
|
data/README.md
CHANGED
|
@@ -968,6 +968,7 @@ Class | Method | HTTP request | Description
|
|
|
968
968
|
- [Zernio::CreateStandaloneAdRequestPlatformSpecificData](docs/CreateStandaloneAdRequestPlatformSpecificData.md)
|
|
969
969
|
- [Zernio::CreateStandaloneAdRequestPromotedObject](docs/CreateStandaloneAdRequestPromotedObject.md)
|
|
970
970
|
- [Zernio::CreateStandaloneAdRequestRegionsInner](docs/CreateStandaloneAdRequestRegionsInner.md)
|
|
971
|
+
- [Zernio::CreateStandaloneAdRequestSitelinksInner](docs/CreateStandaloneAdRequestSitelinksInner.md)
|
|
971
972
|
- [Zernio::CreateStandaloneAdRequestTracking](docs/CreateStandaloneAdRequestTracking.md)
|
|
972
973
|
- [Zernio::CreateStandaloneAdRequestTranslationsInner](docs/CreateStandaloneAdRequestTranslationsInner.md)
|
|
973
974
|
- [Zernio::CreateStandaloneAdRequestVideo](docs/CreateStandaloneAdRequestVideo.md)
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
| **negative_keywords** | **Array<String>** | Google Search only; other platforms return 400. BROAD-match negative keywords on the new ad group. Editable later via PUT /v1/ads/{adId} targeting.negativeKeywords. | [optional] |
|
|
75
75
|
| **additional_headlines** | **Array<String>** | Google Search RSA only. Extra headlines. | [optional] |
|
|
76
76
|
| **additional_descriptions** | **Array<String>** | Google Search RSA only. Extra descriptions. | [optional] |
|
|
77
|
+
| **sitelinks** | [**Array<CreateStandaloneAdRequestSitelinksInner>**](CreateStandaloneAdRequestSitelinksInner.md) | Google Search only. Sitelink assets to create and attach at the campaign level. Each entry becomes an Asset (with sitelink_asset + Asset.final_urls) plus a CampaignAsset link (field_type SITELINK). Approval is async — Google reviews assets after creation; poll asset.policy_summary later to read the verdict. Google requires at least two sitelinks to surface them on an ad; four or more is Google's own recommendation for maximum visibility. The response's creative.sitelinks[] echoes each input plus its Google resourceName. | [optional] |
|
|
77
78
|
| **advantage_audience** | **Integer** | Meta only. Controls the Advantage audience feature (targeting_automation). 0 = disabled (default), 1 = enabled. Meta Marketing API requires this field on all ad set creation requests. | [optional] |
|
|
78
79
|
| **attribution_spec** | [**Array<CreateStandaloneAdRequestAttributionSpecInner>**](CreateStandaloneAdRequestAttributionSpecInner.md) | Meta only. Conversion attribution window for the ad set — maps 1:1 to Meta's ad-set `attribution_spec`. Only honored for conversion goals (`conversions`, `lead_generation`, `app_promotion`); ignored for awareness/traffic/engagement. Omit to use Meta's default (`7-day click` + `1-day view`). Meta enforces the valid combinations: `VIEW_THROUGH` only allows `windowDays: 1` (7d/28d view windows were removed Jan 2026); `ENGAGED_VIDEO_VIEW` only `1` and only alongside `VIEW_THROUGH: 1`; `CLICK_THROUGH: 28` only on certain objectives. Invalid combos surface as a Meta 400. Example: `[{ \"eventType\": \"CLICK_THROUGH\", \"windowDays\": 7 }, { \"eventType\": \"VIEW_THROUGH\", \"windowDays\": 1 }]` | [optional] |
|
|
79
80
|
| **gender** | **String** | Restrict the audience by gender. 'male' targets men only, 'female' targets women only, 'all' (default) targets everyone. Applied on Meta, TikTok and Pinterest. Ignored on Google, LinkedIn and X. | [optional][default to 'all'] |
|
|
@@ -166,6 +167,7 @@ instance = Zernio::CreateStandaloneAdRequest.new(
|
|
|
166
167
|
negative_keywords: null,
|
|
167
168
|
additional_headlines: null,
|
|
168
169
|
additional_descriptions: null,
|
|
170
|
+
sitelinks: null,
|
|
169
171
|
advantage_audience: null,
|
|
170
172
|
attribution_spec: null,
|
|
171
173
|
gender: null,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Zernio::CreateStandaloneAdRequestSitelinksInner
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **text** | **String** | The clickable link text shown under the ad. 25-char cap comes from Google. | |
|
|
8
|
+
| **link_url** | **String** | Final URL the sitelink navigates to. | |
|
|
9
|
+
| **description1** | **String** | First description line under the link text (optional). 35-char cap. | [optional] |
|
|
10
|
+
| **description2** | **String** | Second description line (optional; usually paired with description1). | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'zernio-sdk'
|
|
16
|
+
|
|
17
|
+
instance = Zernio::CreateStandaloneAdRequestSitelinksInner.new(
|
|
18
|
+
text: null,
|
|
19
|
+
link_url: null,
|
|
20
|
+
description1: null,
|
|
21
|
+
description2: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -214,6 +214,9 @@ module Zernio
|
|
|
214
214
|
# Google Search RSA only. Extra descriptions.
|
|
215
215
|
attr_accessor :additional_descriptions
|
|
216
216
|
|
|
217
|
+
# Google Search only. Sitelink assets to create and attach at the campaign level. Each entry becomes an Asset (with sitelink_asset + Asset.final_urls) plus a CampaignAsset link (field_type SITELINK). Approval is async — Google reviews assets after creation; poll asset.policy_summary later to read the verdict. Google requires at least two sitelinks to surface them on an ad; four or more is Google's own recommendation for maximum visibility. The response's creative.sitelinks[] echoes each input plus its Google resourceName.
|
|
218
|
+
attr_accessor :sitelinks
|
|
219
|
+
|
|
217
220
|
# Meta only. Controls the Advantage audience feature (targeting_automation). 0 = disabled (default), 1 = enabled. Meta Marketing API requires this field on all ad set creation requests.
|
|
218
221
|
attr_accessor :advantage_audience
|
|
219
222
|
|
|
@@ -351,6 +354,7 @@ module Zernio
|
|
|
351
354
|
:'negative_keywords' => :'negativeKeywords',
|
|
352
355
|
:'additional_headlines' => :'additionalHeadlines',
|
|
353
356
|
:'additional_descriptions' => :'additionalDescriptions',
|
|
357
|
+
:'sitelinks' => :'sitelinks',
|
|
354
358
|
:'advantage_audience' => :'advantageAudience',
|
|
355
359
|
:'attribution_spec' => :'attributionSpec',
|
|
356
360
|
:'gender' => :'gender',
|
|
@@ -452,6 +456,7 @@ module Zernio
|
|
|
452
456
|
:'negative_keywords' => :'Array<String>',
|
|
453
457
|
:'additional_headlines' => :'Array<String>',
|
|
454
458
|
:'additional_descriptions' => :'Array<String>',
|
|
459
|
+
:'sitelinks' => :'Array<CreateStandaloneAdRequestSitelinksInner>',
|
|
455
460
|
:'advantage_audience' => :'Integer',
|
|
456
461
|
:'attribution_spec' => :'Array<CreateStandaloneAdRequestAttributionSpecInner>',
|
|
457
462
|
:'gender' => :'String',
|
|
@@ -822,6 +827,12 @@ module Zernio
|
|
|
822
827
|
end
|
|
823
828
|
end
|
|
824
829
|
|
|
830
|
+
if attributes.key?(:'sitelinks')
|
|
831
|
+
if (value = attributes[:'sitelinks']).is_a?(Array)
|
|
832
|
+
self.sitelinks = value
|
|
833
|
+
end
|
|
834
|
+
end
|
|
835
|
+
|
|
825
836
|
if attributes.key?(:'advantage_audience')
|
|
826
837
|
self.advantage_audience = attributes[:'advantage_audience']
|
|
827
838
|
end
|
|
@@ -976,6 +987,14 @@ module Zernio
|
|
|
976
987
|
invalid_properties.push('invalid value for "translations", number of items must be greater than or equal to 1.')
|
|
977
988
|
end
|
|
978
989
|
|
|
990
|
+
if !@sitelinks.nil? && @sitelinks.length > 20
|
|
991
|
+
invalid_properties.push('invalid value for "sitelinks", number of items must be less than or equal to 20.')
|
|
992
|
+
end
|
|
993
|
+
|
|
994
|
+
if !@sitelinks.nil? && @sitelinks.length < 2
|
|
995
|
+
invalid_properties.push('invalid value for "sitelinks", number of items must be greater than or equal to 2.')
|
|
996
|
+
end
|
|
997
|
+
|
|
979
998
|
if !@attribution_spec.nil? && @attribution_spec.length > 3
|
|
980
999
|
invalid_properties.push('invalid value for "attribution_spec", number of items must be less than or equal to 3.')
|
|
981
1000
|
end
|
|
@@ -1045,6 +1064,8 @@ module Zernio
|
|
|
1045
1064
|
return false if !@translations.nil? && @translations.length < 1
|
|
1046
1065
|
campaign_type_validator = EnumAttributeValidator.new('String', ["display", "search"])
|
|
1047
1066
|
return false unless campaign_type_validator.valid?(@campaign_type)
|
|
1067
|
+
return false if !@sitelinks.nil? && @sitelinks.length > 20
|
|
1068
|
+
return false if !@sitelinks.nil? && @sitelinks.length < 2
|
|
1048
1069
|
advantage_audience_validator = EnumAttributeValidator.new('Integer', [0, 1])
|
|
1049
1070
|
return false unless advantage_audience_validator.valid?(@advantage_audience)
|
|
1050
1071
|
return false if !@attribution_spec.nil? && @attribution_spec.length > 3
|
|
@@ -1381,6 +1402,24 @@ module Zernio
|
|
|
1381
1402
|
@campaign_type = campaign_type
|
|
1382
1403
|
end
|
|
1383
1404
|
|
|
1405
|
+
# Custom attribute writer method with validation
|
|
1406
|
+
# @param [Object] sitelinks Value to be assigned
|
|
1407
|
+
def sitelinks=(sitelinks)
|
|
1408
|
+
if sitelinks.nil?
|
|
1409
|
+
fail ArgumentError, 'sitelinks cannot be nil'
|
|
1410
|
+
end
|
|
1411
|
+
|
|
1412
|
+
if sitelinks.length > 20
|
|
1413
|
+
fail ArgumentError, 'invalid value for "sitelinks", number of items must be less than or equal to 20.'
|
|
1414
|
+
end
|
|
1415
|
+
|
|
1416
|
+
if sitelinks.length < 2
|
|
1417
|
+
fail ArgumentError, 'invalid value for "sitelinks", number of items must be greater than or equal to 2.'
|
|
1418
|
+
end
|
|
1419
|
+
|
|
1420
|
+
@sitelinks = sitelinks
|
|
1421
|
+
end
|
|
1422
|
+
|
|
1384
1423
|
# Custom attribute writer method checking allowed values (enum).
|
|
1385
1424
|
# @param [Object] advantage_audience Object to be assigned
|
|
1386
1425
|
def advantage_audience=(advantage_audience)
|
|
@@ -1547,6 +1586,7 @@ module Zernio
|
|
|
1547
1586
|
negative_keywords == o.negative_keywords &&
|
|
1548
1587
|
additional_headlines == o.additional_headlines &&
|
|
1549
1588
|
additional_descriptions == o.additional_descriptions &&
|
|
1589
|
+
sitelinks == o.sitelinks &&
|
|
1550
1590
|
advantage_audience == o.advantage_audience &&
|
|
1551
1591
|
attribution_spec == o.attribution_spec &&
|
|
1552
1592
|
gender == o.gender &&
|
|
@@ -1573,7 +1613,7 @@ module Zernio
|
|
|
1573
1613
|
# Calculates hash code according to all attributes.
|
|
1574
1614
|
# @return [Integer] Hash code
|
|
1575
1615
|
def hash
|
|
1576
|
-
[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, 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, 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
|
|
1616
|
+
[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, 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, 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
|
|
1577
1617
|
end
|
|
1578
1618
|
|
|
1579
1619
|
# Builds the object from hash
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module Zernio
|
|
17
|
+
class CreateStandaloneAdRequestSitelinksInner < ApiModelBase
|
|
18
|
+
# The clickable link text shown under the ad. 25-char cap comes from Google.
|
|
19
|
+
attr_accessor :text
|
|
20
|
+
|
|
21
|
+
# Final URL the sitelink navigates to.
|
|
22
|
+
attr_accessor :link_url
|
|
23
|
+
|
|
24
|
+
# First description line under the link text (optional). 35-char cap.
|
|
25
|
+
attr_accessor :description1
|
|
26
|
+
|
|
27
|
+
# Second description line (optional; usually paired with description1).
|
|
28
|
+
attr_accessor :description2
|
|
29
|
+
|
|
30
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
31
|
+
def self.attribute_map
|
|
32
|
+
{
|
|
33
|
+
:'text' => :'text',
|
|
34
|
+
:'link_url' => :'linkUrl',
|
|
35
|
+
:'description1' => :'description1',
|
|
36
|
+
:'description2' => :'description2'
|
|
37
|
+
}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Returns attribute mapping this model knows about
|
|
41
|
+
def self.acceptable_attribute_map
|
|
42
|
+
attribute_map
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Returns all the JSON keys this model knows about
|
|
46
|
+
def self.acceptable_attributes
|
|
47
|
+
acceptable_attribute_map.values
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Attribute type mapping.
|
|
51
|
+
def self.openapi_types
|
|
52
|
+
{
|
|
53
|
+
:'text' => :'String',
|
|
54
|
+
:'link_url' => :'String',
|
|
55
|
+
:'description1' => :'String',
|
|
56
|
+
:'description2' => :'String'
|
|
57
|
+
}
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# List of attributes with nullable: true
|
|
61
|
+
def self.openapi_nullable
|
|
62
|
+
Set.new([
|
|
63
|
+
])
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Initializes the object
|
|
67
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
68
|
+
def initialize(attributes = {})
|
|
69
|
+
if (!attributes.is_a?(Hash))
|
|
70
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::CreateStandaloneAdRequestSitelinksInner` initialize method"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
74
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
75
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
76
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
77
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::CreateStandaloneAdRequestSitelinksInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
78
|
+
end
|
|
79
|
+
h[k.to_sym] = v
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if attributes.key?(:'text')
|
|
83
|
+
self.text = attributes[:'text']
|
|
84
|
+
else
|
|
85
|
+
self.text = nil
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
if attributes.key?(:'link_url')
|
|
89
|
+
self.link_url = attributes[:'link_url']
|
|
90
|
+
else
|
|
91
|
+
self.link_url = nil
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
if attributes.key?(:'description1')
|
|
95
|
+
self.description1 = attributes[:'description1']
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
if attributes.key?(:'description2')
|
|
99
|
+
self.description2 = attributes[:'description2']
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
104
|
+
# @return Array for valid properties with the reasons
|
|
105
|
+
def list_invalid_properties
|
|
106
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
107
|
+
invalid_properties = Array.new
|
|
108
|
+
if @text.nil?
|
|
109
|
+
invalid_properties.push('invalid value for "text", text cannot be nil.')
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
if @text.to_s.length > 25
|
|
113
|
+
invalid_properties.push('invalid value for "text", the character length must be smaller than or equal to 25.')
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
if @text.to_s.length < 1
|
|
117
|
+
invalid_properties.push('invalid value for "text", the character length must be greater than or equal to 1.')
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
if @link_url.nil?
|
|
121
|
+
invalid_properties.push('invalid value for "link_url", link_url cannot be nil.')
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
if !@description1.nil? && @description1.to_s.length > 35
|
|
125
|
+
invalid_properties.push('invalid value for "description1", the character length must be smaller than or equal to 35.')
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
if !@description1.nil? && @description1.to_s.length < 1
|
|
129
|
+
invalid_properties.push('invalid value for "description1", the character length must be greater than or equal to 1.')
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
if !@description2.nil? && @description2.to_s.length > 35
|
|
133
|
+
invalid_properties.push('invalid value for "description2", the character length must be smaller than or equal to 35.')
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
if !@description2.nil? && @description2.to_s.length < 1
|
|
137
|
+
invalid_properties.push('invalid value for "description2", the character length must be greater than or equal to 1.')
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
invalid_properties
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Check to see if the all the properties in the model are valid
|
|
144
|
+
# @return true if the model is valid
|
|
145
|
+
def valid?
|
|
146
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
147
|
+
return false if @text.nil?
|
|
148
|
+
return false if @text.to_s.length > 25
|
|
149
|
+
return false if @text.to_s.length < 1
|
|
150
|
+
return false if @link_url.nil?
|
|
151
|
+
return false if !@description1.nil? && @description1.to_s.length > 35
|
|
152
|
+
return false if !@description1.nil? && @description1.to_s.length < 1
|
|
153
|
+
return false if !@description2.nil? && @description2.to_s.length > 35
|
|
154
|
+
return false if !@description2.nil? && @description2.to_s.length < 1
|
|
155
|
+
true
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# Custom attribute writer method with validation
|
|
159
|
+
# @param [Object] text Value to be assigned
|
|
160
|
+
def text=(text)
|
|
161
|
+
if text.nil?
|
|
162
|
+
fail ArgumentError, 'text cannot be nil'
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
if text.to_s.length > 25
|
|
166
|
+
fail ArgumentError, 'invalid value for "text", the character length must be smaller than or equal to 25.'
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
if text.to_s.length < 1
|
|
170
|
+
fail ArgumentError, 'invalid value for "text", the character length must be greater than or equal to 1.'
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
@text = text
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# Custom attribute writer method with validation
|
|
177
|
+
# @param [Object] link_url Value to be assigned
|
|
178
|
+
def link_url=(link_url)
|
|
179
|
+
if link_url.nil?
|
|
180
|
+
fail ArgumentError, 'link_url cannot be nil'
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
@link_url = link_url
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
# Custom attribute writer method with validation
|
|
187
|
+
# @param [Object] description1 Value to be assigned
|
|
188
|
+
def description1=(description1)
|
|
189
|
+
if description1.nil?
|
|
190
|
+
fail ArgumentError, 'description1 cannot be nil'
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
if description1.to_s.length > 35
|
|
194
|
+
fail ArgumentError, 'invalid value for "description1", the character length must be smaller than or equal to 35.'
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
if description1.to_s.length < 1
|
|
198
|
+
fail ArgumentError, 'invalid value for "description1", the character length must be greater than or equal to 1.'
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
@description1 = description1
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
# Custom attribute writer method with validation
|
|
205
|
+
# @param [Object] description2 Value to be assigned
|
|
206
|
+
def description2=(description2)
|
|
207
|
+
if description2.nil?
|
|
208
|
+
fail ArgumentError, 'description2 cannot be nil'
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
if description2.to_s.length > 35
|
|
212
|
+
fail ArgumentError, 'invalid value for "description2", the character length must be smaller than or equal to 35.'
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
if description2.to_s.length < 1
|
|
216
|
+
fail ArgumentError, 'invalid value for "description2", the character length must be greater than or equal to 1.'
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
@description2 = description2
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
# Checks equality by comparing each attribute.
|
|
223
|
+
# @param [Object] Object to be compared
|
|
224
|
+
def ==(o)
|
|
225
|
+
return true if self.equal?(o)
|
|
226
|
+
self.class == o.class &&
|
|
227
|
+
text == o.text &&
|
|
228
|
+
link_url == o.link_url &&
|
|
229
|
+
description1 == o.description1 &&
|
|
230
|
+
description2 == o.description2
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
# @see the `==` method
|
|
234
|
+
# @param [Object] Object to be compared
|
|
235
|
+
def eql?(o)
|
|
236
|
+
self == o
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
# Calculates hash code according to all attributes.
|
|
240
|
+
# @return [Integer] Hash code
|
|
241
|
+
def hash
|
|
242
|
+
[text, link_url, description1, description2].hash
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
# Builds the object from hash
|
|
246
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
247
|
+
# @return [Object] Returns the model itself
|
|
248
|
+
def self.build_from_hash(attributes)
|
|
249
|
+
return nil unless attributes.is_a?(Hash)
|
|
250
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
251
|
+
transformed_hash = {}
|
|
252
|
+
openapi_types.each_pair do |key, type|
|
|
253
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
254
|
+
transformed_hash["#{key}"] = nil
|
|
255
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
256
|
+
# check to ensure the input is an array given that the attribute
|
|
257
|
+
# is documented as an array but the input is not
|
|
258
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
259
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
260
|
+
end
|
|
261
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
262
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
263
|
+
end
|
|
264
|
+
end
|
|
265
|
+
new(transformed_hash)
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
# Returns the object in the form of hash
|
|
269
|
+
# @return [Hash] Returns the object in the form of hash
|
|
270
|
+
def to_hash
|
|
271
|
+
hash = {}
|
|
272
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
273
|
+
value = self.send(attr)
|
|
274
|
+
if value.nil?
|
|
275
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
276
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
hash[param] = _to_hash(value)
|
|
280
|
+
end
|
|
281
|
+
hash
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
end
|
data/lib/zernio-sdk/version.rb
CHANGED
data/lib/zernio-sdk.rb
CHANGED
|
@@ -321,6 +321,7 @@ require 'zernio-sdk/models/create_standalone_ad_request_placements'
|
|
|
321
321
|
require 'zernio-sdk/models/create_standalone_ad_request_platform_specific_data'
|
|
322
322
|
require 'zernio-sdk/models/create_standalone_ad_request_promoted_object'
|
|
323
323
|
require 'zernio-sdk/models/create_standalone_ad_request_regions_inner'
|
|
324
|
+
require 'zernio-sdk/models/create_standalone_ad_request_sitelinks_inner'
|
|
324
325
|
require 'zernio-sdk/models/create_standalone_ad_request_tracking'
|
|
325
326
|
require 'zernio-sdk/models/create_standalone_ad_request_translations_inner'
|
|
326
327
|
require 'zernio-sdk/models/create_standalone_ad_request_video'
|
data/openapi.yaml
CHANGED
|
@@ -43180,6 +43180,26 @@ paths:
|
|
|
43180
43180
|
negativeKeywords: { type: array, items: { type: string, maxLength: 80 }, description: "Google Search only; other platforms return 400. BROAD-match negative keywords on the new ad group. Editable later via PUT /v1/ads/{adId} targeting.negativeKeywords." }
|
|
43181
43181
|
additionalHeadlines: { type: array, items: { type: string }, description: "Google Search RSA only. Extra headlines." }
|
|
43182
43182
|
additionalDescriptions: { type: array, items: { type: string }, description: "Google Search RSA only. Extra descriptions." }
|
|
43183
|
+
sitelinks:
|
|
43184
|
+
type: array
|
|
43185
|
+
minItems: 2
|
|
43186
|
+
maxItems: 20
|
|
43187
|
+
description: |
|
|
43188
|
+
Google Search only. Sitelink assets to create and attach at the campaign level.
|
|
43189
|
+
Each entry becomes an Asset (with sitelink_asset + Asset.final_urls) plus a
|
|
43190
|
+
CampaignAsset link (field_type SITELINK). Approval is async — Google reviews
|
|
43191
|
+
assets after creation; poll asset.policy_summary later to read the verdict.
|
|
43192
|
+
Google requires at least two sitelinks to surface them on an ad; four or more
|
|
43193
|
+
is Google's own recommendation for maximum visibility. The response's
|
|
43194
|
+
creative.sitelinks[] echoes each input plus its Google resourceName.
|
|
43195
|
+
items:
|
|
43196
|
+
type: object
|
|
43197
|
+
required: [text, linkUrl]
|
|
43198
|
+
properties:
|
|
43199
|
+
text: { type: string, minLength: 1, maxLength: 25, description: "The clickable link text shown under the ad. 25-char cap comes from Google." }
|
|
43200
|
+
linkUrl: { type: string, format: uri, description: "Final URL the sitelink navigates to." }
|
|
43201
|
+
description1: { type: string, minLength: 1, maxLength: 35, description: "First description line under the link text (optional). 35-char cap." }
|
|
43202
|
+
description2: { type: string, minLength: 1, maxLength: 35, description: "Second description line (optional; usually paired with description1)." }
|
|
43183
43203
|
advantageAudience: { type: integer, enum: [0, 1], description: "Meta only. Controls the Advantage audience feature (targeting_automation). 0 = disabled (default), 1 = enabled. Meta Marketing API requires this field on all ad set creation requests." }
|
|
43184
43204
|
attributionSpec:
|
|
43185
43205
|
type: array
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::CreateStandaloneAdRequestSitelinksInner
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::CreateStandaloneAdRequestSitelinksInner do
|
|
21
|
+
#let(:instance) { Zernio::CreateStandaloneAdRequestSitelinksInner.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of CreateStandaloneAdRequestSitelinksInner' do
|
|
24
|
+
it 'should create an instance of CreateStandaloneAdRequestSitelinksInner' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::CreateStandaloneAdRequestSitelinksInner)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "text"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe 'test attribute "link_url"' do
|
|
37
|
+
it 'should work' do
|
|
38
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe 'test attribute "description1"' do
|
|
43
|
+
it 'should work' do
|
|
44
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe 'test attribute "description2"' do
|
|
49
|
+
it 'should work' do
|
|
50
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
|
@@ -495,6 +495,12 @@ describe Zernio::CreateStandaloneAdRequest do
|
|
|
495
495
|
end
|
|
496
496
|
end
|
|
497
497
|
|
|
498
|
+
describe 'test attribute "sitelinks"' do
|
|
499
|
+
it 'should work' do
|
|
500
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
501
|
+
end
|
|
502
|
+
end
|
|
503
|
+
|
|
498
504
|
describe 'test attribute "advantage_audience"' do
|
|
499
505
|
it 'should work' do
|
|
500
506
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: late-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.756
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
@@ -391,6 +391,7 @@ files:
|
|
|
391
391
|
- docs/CreateStandaloneAdRequestPlatformSpecificData.md
|
|
392
392
|
- docs/CreateStandaloneAdRequestPromotedObject.md
|
|
393
393
|
- docs/CreateStandaloneAdRequestRegionsInner.md
|
|
394
|
+
- docs/CreateStandaloneAdRequestSitelinksInner.md
|
|
394
395
|
- docs/CreateStandaloneAdRequestTracking.md
|
|
395
396
|
- docs/CreateStandaloneAdRequestTranslationsInner.md
|
|
396
397
|
- docs/CreateStandaloneAdRequestVideo.md
|
|
@@ -2229,6 +2230,7 @@ files:
|
|
|
2229
2230
|
- lib/zernio-sdk/models/create_standalone_ad_request_platform_specific_data.rb
|
|
2230
2231
|
- lib/zernio-sdk/models/create_standalone_ad_request_promoted_object.rb
|
|
2231
2232
|
- lib/zernio-sdk/models/create_standalone_ad_request_regions_inner.rb
|
|
2233
|
+
- lib/zernio-sdk/models/create_standalone_ad_request_sitelinks_inner.rb
|
|
2232
2234
|
- lib/zernio-sdk/models/create_standalone_ad_request_tracking.rb
|
|
2233
2235
|
- lib/zernio-sdk/models/create_standalone_ad_request_translations_inner.rb
|
|
2234
2236
|
- lib/zernio-sdk/models/create_standalone_ad_request_video.rb
|
|
@@ -4014,6 +4016,7 @@ files:
|
|
|
4014
4016
|
- spec/models/create_standalone_ad_request_platform_specific_data_spec.rb
|
|
4015
4017
|
- spec/models/create_standalone_ad_request_promoted_object_spec.rb
|
|
4016
4018
|
- spec/models/create_standalone_ad_request_regions_inner_spec.rb
|
|
4019
|
+
- spec/models/create_standalone_ad_request_sitelinks_inner_spec.rb
|
|
4017
4020
|
- spec/models/create_standalone_ad_request_spec.rb
|
|
4018
4021
|
- spec/models/create_standalone_ad_request_tracking_spec.rb
|
|
4019
4022
|
- spec/models/create_standalone_ad_request_translations_inner_spec.rb
|
|
@@ -5431,7 +5434,7 @@ files:
|
|
|
5431
5434
|
- spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
|
|
5432
5435
|
- spec/models/you_tube_video_retention_response_spec.rb
|
|
5433
5436
|
- spec/spec_helper.rb
|
|
5434
|
-
- zernio-sdk-0.0.
|
|
5437
|
+
- zernio-sdk-0.0.756.gem
|
|
5435
5438
|
- zernio-sdk.gemspec
|
|
5436
5439
|
homepage: https://openapi-generator.tech
|
|
5437
5440
|
licenses:
|
|
@@ -6792,6 +6795,7 @@ test_files:
|
|
|
6792
6795
|
- spec/models/list_connected_apps200_response_spec.rb
|
|
6793
6796
|
- spec/models/create_standalone_ad_request_cities_inner_spec.rb
|
|
6794
6797
|
- spec/models/comment_automation_template_spec.rb
|
|
6798
|
+
- spec/models/create_standalone_ad_request_sitelinks_inner_spec.rb
|
|
6795
6799
|
- spec/models/edit_inbox_message_request_reply_markup_spec.rb
|
|
6796
6800
|
- spec/models/end_voice_call200_response_spec.rb
|
|
6797
6801
|
- spec/models/get_google_business_attributes200_response_spec.rb
|
data/zernio-sdk-0.0.755.gem
DELETED
|
Binary file
|