late-sdk 0.0.859 → 0.0.860
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 +18 -0
- data/docs/AdCampaignsApi.md +301 -3
- data/docs/CampaignBidding.md +24 -0
- data/docs/CampaignBiddingBidSpec.md +24 -0
- data/docs/CampaignBiddingPortfolio.md +20 -0
- data/docs/CreateAdCampaignRequest.md +5 -3
- data/docs/CreateBidStrategy201Response.md +18 -0
- data/docs/CreateBidStrategy201ResponseStrategy.md +22 -0
- data/docs/CreateBidStrategyRequest.md +28 -0
- data/docs/CreateStandaloneAdRequest.md +3 -1
- data/docs/GetCampaignBidding200Response.md +26 -0
- data/docs/ListBidStrategies200Response.md +22 -0
- data/docs/PortfolioBidStrategy.md +42 -0
- data/docs/UpdateAdCampaign200Response.md +2 -0
- data/docs/UpdateAdCampaignRequest.md +3 -1
- data/docs/UpdateAdRequestTargeting.md +2 -0
- data/docs/UpdateAdRequestTargetingDevicesInner.md +49 -0
- data/docs/UpdateAdRequestTargetingDevicesInnerOneOf.md +20 -0
- data/docs/UpdateBidStrategy200Response.md +18 -0
- data/docs/UpdateBidStrategy200ResponseStrategy.md +18 -0
- data/docs/UpdateBidStrategyRequest.md +28 -0
- data/lib/zernio-sdk/api/ad_campaigns_api.rb +306 -6
- data/lib/zernio-sdk/models/campaign_bidding.rb +211 -0
- data/lib/zernio-sdk/models/campaign_bidding_bid_spec.rb +200 -0
- data/lib/zernio-sdk/models/campaign_bidding_portfolio.rb +157 -0
- data/lib/zernio-sdk/models/create_ad_campaign_request.rb +37 -6
- data/lib/zernio-sdk/models/create_bid_strategy201_response.rb +147 -0
- data/lib/zernio-sdk/models/create_bid_strategy201_response_strategy.rb +166 -0
- data/lib/zernio-sdk/models/create_bid_strategy_request.rb +289 -0
- data/lib/zernio-sdk/models/create_standalone_ad_request.rb +33 -2
- data/lib/zernio-sdk/models/get_campaign_bidding200_response.rb +226 -0
- data/lib/zernio-sdk/models/list_bid_strategies200_response.rb +168 -0
- data/lib/zernio-sdk/models/portfolio_bid_strategy.rb +300 -0
- data/lib/zernio-sdk/models/update_ad_campaign200_response.rb +11 -1
- data/lib/zernio-sdk/models/update_ad_campaign_request.rb +33 -2
- data/lib/zernio-sdk/models/update_ad_request_targeting.rb +14 -2
- data/lib/zernio-sdk/models/update_ad_request_targeting_devices_inner.rb +104 -0
- data/lib/zernio-sdk/models/update_ad_request_targeting_devices_inner_one_of.rb +226 -0
- data/lib/zernio-sdk/models/update_bid_strategy200_response.rb +147 -0
- data/lib/zernio-sdk/models/update_bid_strategy200_response_strategy.rb +147 -0
- data/lib/zernio-sdk/models/update_bid_strategy_request.rb +273 -0
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +14 -0
- data/openapi.yaml +264 -21
- data/spec/api/ad_campaigns_api_spec.rb +58 -3
- data/spec/models/campaign_bidding_bid_spec_spec.rb +54 -0
- data/spec/models/campaign_bidding_portfolio_spec.rb +42 -0
- data/spec/models/campaign_bidding_spec.rb +58 -0
- data/spec/models/create_ad_campaign_request_spec.rb +6 -0
- data/spec/models/create_bid_strategy201_response_spec.rb +36 -0
- data/spec/models/create_bid_strategy201_response_strategy_spec.rb +48 -0
- data/spec/models/create_bid_strategy_request_spec.rb +70 -0
- data/spec/models/create_standalone_ad_request_spec.rb +6 -0
- data/spec/models/get_campaign_bidding200_response_spec.rb +64 -0
- data/spec/models/list_bid_strategies200_response_spec.rb +48 -0
- data/spec/models/portfolio_bid_strategy_spec.rb +112 -0
- data/spec/models/update_ad_campaign200_response_spec.rb +6 -0
- data/spec/models/update_ad_campaign_request_spec.rb +6 -0
- data/spec/models/update_ad_request_targeting_devices_inner_one_of_spec.rb +46 -0
- data/spec/models/update_ad_request_targeting_devices_inner_spec.rb +32 -0
- data/spec/models/update_ad_request_targeting_spec.rb +6 -0
- data/spec/models/update_bid_strategy200_response_spec.rb +36 -0
- data/spec/models/update_bid_strategy200_response_strategy_spec.rb +36 -0
- data/spec/models/update_bid_strategy_request_spec.rb +70 -0
- data/zernio-sdk-0.0.860.gem +0 -0
- metadata +58 -2
- data/zernio-sdk-0.0.859.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: e3bf724f0fb5ead7645ebf831326501354294abca15d4d4ec427e097c7682192
|
|
4
|
+
data.tar.gz: 46131c7c18dbcf4fda2e8128ffc8d2f1b2b8838531defe3d3a37ffebb71db250
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a9c651c1200d471ccf9cda0ca058d95a7e4e049fba9ca77d1fffdf7e4ec730b3cd03e65c4aca8758541602274189ae3bc3bfb1d398c20638a28de608e00330c2
|
|
7
|
+
data.tar.gz: a879dd6aa7f838fca9f0ae169d4d84f07332b4e530e1b943eec1dcbcbc7a903433b3fcd84fa7b1b739febb5d3c8d4b96d6f510e02f70585b0d79cec9d1719aad
|
data/README.md
CHANGED
|
@@ -142,6 +142,7 @@ Class | Method | HTTP request | Description
|
|
|
142
142
|
*Zernio::AdCampaignsApi* | [**bulk_update_ad_campaign_status**](docs/AdCampaignsApi.md#bulk_update_ad_campaign_status) | **POST** /v1/ads/campaigns/bulk-status | Pause or resume many campaigns
|
|
143
143
|
*Zernio::AdCampaignsApi* | [**create_ad_campaign**](docs/AdCampaignsApi.md#create_ad_campaign) | **POST** /v1/ads/campaigns | Create a standalone campaign
|
|
144
144
|
*Zernio::AdCampaignsApi* | [**create_ad_set**](docs/AdCampaignsApi.md#create_ad_set) | **POST** /v1/ads/ad-sets | Create a standalone ad group
|
|
145
|
+
*Zernio::AdCampaignsApi* | [**create_bid_strategy**](docs/AdCampaignsApi.md#create_bid_strategy) | **POST** /v1/ads/bid-strategies | Create a Google Ads portfolio bid strategy
|
|
145
146
|
*Zernio::AdCampaignsApi* | [**create_standalone_ad**](docs/AdCampaignsApi.md#create_standalone_ad) | **POST** /v1/ads/create | Create standalone ad
|
|
146
147
|
*Zernio::AdCampaignsApi* | [**delete_ad**](docs/AdCampaignsApi.md#delete_ad) | **DELETE** /v1/ads/{adId} | Cancel an ad
|
|
147
148
|
*Zernio::AdCampaignsApi* | [**delete_ad_campaign**](docs/AdCampaignsApi.md#delete_ad_campaign) | **DELETE** /v1/ads/campaigns/{campaignId} | Delete a campaign
|
|
@@ -153,11 +154,13 @@ Class | Method | HTTP request | Description
|
|
|
153
154
|
*Zernio::AdCampaignsApi* | [**get_ad_set_details**](docs/AdCampaignsApi.md#get_ad_set_details) | **GET** /v1/ads/ad-sets/{adSetId} | Live ad-set details incl. learning phase
|
|
154
155
|
*Zernio::AdCampaignsApi* | [**get_ad_tree**](docs/AdCampaignsApi.md#get_ad_tree) | **GET** /v1/ads/tree | Get campaign tree
|
|
155
156
|
*Zernio::AdCampaignsApi* | [**get_ads_timeline**](docs/AdCampaignsApi.md#get_ads_timeline) | **GET** /v1/ads/timeline | Get daily account metrics
|
|
157
|
+
*Zernio::AdCampaignsApi* | [**get_campaign_bidding**](docs/AdCampaignsApi.md#get_campaign_bidding) | **GET** /v1/ads/campaigns/{campaignId}/bidding | Read a campaign's current bidding
|
|
156
158
|
*Zernio::AdCampaignsApi* | [**get_campaign_targeting**](docs/AdCampaignsApi.md#get_campaign_targeting) | **GET** /v1/ads/campaigns/{campaignId}/targeting | Read a Google campaign's device, location, and language targeting
|
|
157
159
|
*Zernio::AdCampaignsApi* | [**list_ad_campaigns**](docs/AdCampaignsApi.md#list_ad_campaigns) | **GET** /v1/ads/campaigns | List campaigns
|
|
158
160
|
*Zernio::AdCampaignsApi* | [**list_ad_keywords**](docs/AdCampaignsApi.md#list_ad_keywords) | **GET** /v1/ads/keywords | List Search keywords
|
|
159
161
|
*Zernio::AdCampaignsApi* | [**list_ad_sets**](docs/AdCampaignsApi.md#list_ad_sets) | **GET** /v1/ads/ad-sets | List ad sets
|
|
160
162
|
*Zernio::AdCampaignsApi* | [**list_ads**](docs/AdCampaignsApi.md#list_ads) | **GET** /v1/ads | List ads
|
|
163
|
+
*Zernio::AdCampaignsApi* | [**list_bid_strategies**](docs/AdCampaignsApi.md#list_bid_strategies) | **GET** /v1/ads/bid-strategies | List Google Ads portfolio bid strategies
|
|
161
164
|
*Zernio::AdCampaignsApi* | [**list_campaign_negative_keywords**](docs/AdCampaignsApi.md#list_campaign_negative_keywords) | **GET** /v1/ads/campaigns/{campaignId}/negative-keywords | List campaign-level negative keywords
|
|
162
165
|
*Zernio::AdCampaignsApi* | [**remove_ad_keyword**](docs/AdCampaignsApi.md#remove_ad_keyword) | **DELETE** /v1/ads/keywords/{keywordId} | Remove a Search keyword
|
|
163
166
|
*Zernio::AdCampaignsApi* | [**replace_campaign_negative_keywords**](docs/AdCampaignsApi.md#replace_campaign_negative_keywords) | **PUT** /v1/ads/campaigns/{campaignId}/negative-keywords | Replace campaign-level negative keywords
|
|
@@ -168,6 +171,7 @@ Class | Method | HTTP request | Description
|
|
|
168
171
|
*Zernio::AdCampaignsApi* | [**update_ad_set**](docs/AdCampaignsApi.md#update_ad_set) | **PUT** /v1/ads/ad-sets/{adSetId} | Update an ad set
|
|
169
172
|
*Zernio::AdCampaignsApi* | [**update_ad_set_status**](docs/AdCampaignsApi.md#update_ad_set_status) | **PUT** /v1/ads/ad-sets/{adSetId}/status | Pause or resume a single ad set
|
|
170
173
|
*Zernio::AdCampaignsApi* | [**update_ad_status**](docs/AdCampaignsApi.md#update_ad_status) | **PUT** /v1/ads/{adId}/status | Pause or resume a single ad
|
|
174
|
+
*Zernio::AdCampaignsApi* | [**update_bid_strategy**](docs/AdCampaignsApi.md#update_bid_strategy) | **PATCH** /v1/ads/bid-strategies/{strategyId} | Update a Google Ads portfolio bid strategy
|
|
171
175
|
*Zernio::AdCampaignsApi* | [**update_campaign_targeting**](docs/AdCampaignsApi.md#update_campaign_targeting) | **PUT** /v1/ads/campaigns/{campaignId}/targeting | Edit a Google campaign's device, location, or language targeting
|
|
172
176
|
*Zernio::AdCreativesApi* | [**create_ad_creative**](docs/AdCreativesApi.md#create_ad_creative) | **POST** /v1/ads/creatives | Create a standalone creative
|
|
173
177
|
*Zernio::AdCreativesApi* | [**delete_ad_creative**](docs/AdCreativesApi.md#delete_ad_creative) | **DELETE** /v1/ads/creatives/{creativeId} | Delete a creative
|
|
@@ -835,6 +839,9 @@ Class | Method | HTTP request | Description
|
|
|
835
839
|
- [Zernio::CampaignAnalyticsResponseAnalytics](docs/CampaignAnalyticsResponseAnalytics.md)
|
|
836
840
|
- [Zernio::CampaignAnalyticsResponseAnalyticsDailyInner](docs/CampaignAnalyticsResponseAnalyticsDailyInner.md)
|
|
837
841
|
- [Zernio::CampaignAnalyticsResponseCampaign](docs/CampaignAnalyticsResponseCampaign.md)
|
|
842
|
+
- [Zernio::CampaignBidding](docs/CampaignBidding.md)
|
|
843
|
+
- [Zernio::CampaignBiddingBidSpec](docs/CampaignBiddingBidSpec.md)
|
|
844
|
+
- [Zernio::CampaignBiddingPortfolio](docs/CampaignBiddingPortfolio.md)
|
|
838
845
|
- [Zernio::CancelBroadcast200Response](docs/CancelBroadcast200Response.md)
|
|
839
846
|
- [Zernio::CancelPhoneNumberPortIn200Response](docs/CancelPhoneNumberPortIn200Response.md)
|
|
840
847
|
- [Zernio::ChannelPicker](docs/ChannelPicker.md)
|
|
@@ -903,6 +910,9 @@ Class | Method | HTTP request | Description
|
|
|
903
910
|
- [Zernio::CreateAdSetRequest](docs/CreateAdSetRequest.md)
|
|
904
911
|
- [Zernio::CreateApiKey201Response](docs/CreateApiKey201Response.md)
|
|
905
912
|
- [Zernio::CreateApiKeyRequest](docs/CreateApiKeyRequest.md)
|
|
913
|
+
- [Zernio::CreateBidStrategy201Response](docs/CreateBidStrategy201Response.md)
|
|
914
|
+
- [Zernio::CreateBidStrategy201ResponseStrategy](docs/CreateBidStrategy201ResponseStrategy.md)
|
|
915
|
+
- [Zernio::CreateBidStrategyRequest](docs/CreateBidStrategyRequest.md)
|
|
906
916
|
- [Zernio::CreateBlog201Response](docs/CreateBlog201Response.md)
|
|
907
917
|
- [Zernio::CreateBlogArticle201Response](docs/CreateBlogArticle201Response.md)
|
|
908
918
|
- [Zernio::CreateBlogArticleRequest](docs/CreateBlogArticleRequest.md)
|
|
@@ -1244,6 +1254,7 @@ Class | Method | HTTP request | Description
|
|
|
1244
1254
|
- [Zernio::GetCallsUsage200ResponseGroupsInner](docs/GetCallsUsage200ResponseGroupsInner.md)
|
|
1245
1255
|
- [Zernio::GetCallsUsage200ResponseTotals](docs/GetCallsUsage200ResponseTotals.md)
|
|
1246
1256
|
- [Zernio::GetCampaignAnalytics202Response](docs/GetCampaignAnalytics202Response.md)
|
|
1257
|
+
- [Zernio::GetCampaignBidding200Response](docs/GetCampaignBidding200Response.md)
|
|
1247
1258
|
- [Zernio::GetCampaignTargeting200Response](docs/GetCampaignTargeting200Response.md)
|
|
1248
1259
|
- [Zernio::GetCampaignTargeting200ResponseDevicesInner](docs/GetCampaignTargeting200ResponseDevicesInner.md)
|
|
1249
1260
|
- [Zernio::GetCampaignTargeting200ResponseLanguagesInner](docs/GetCampaignTargeting200ResponseLanguagesInner.md)
|
|
@@ -1633,6 +1644,7 @@ Class | Method | HTTP request | Description
|
|
|
1633
1644
|
- [Zernio::ListAds202Response](docs/ListAds202Response.md)
|
|
1634
1645
|
- [Zernio::ListAdsBusinessCenters200Response](docs/ListAdsBusinessCenters200Response.md)
|
|
1635
1646
|
- [Zernio::ListApiKeys200Response](docs/ListApiKeys200Response.md)
|
|
1647
|
+
- [Zernio::ListBidStrategies200Response](docs/ListBidStrategies200Response.md)
|
|
1636
1648
|
- [Zernio::ListBlogArticles200Response](docs/ListBlogArticles200Response.md)
|
|
1637
1649
|
- [Zernio::ListBlogs200Response](docs/ListBlogs200Response.md)
|
|
1638
1650
|
- [Zernio::ListBroadcastRecipients200Response](docs/ListBroadcastRecipients200Response.md)
|
|
@@ -1842,6 +1854,7 @@ Class | Method | HTTP request | Description
|
|
|
1842
1854
|
- [Zernio::PlatformAnalytics](docs/PlatformAnalytics.md)
|
|
1843
1855
|
- [Zernio::PlatformTarget](docs/PlatformTarget.md)
|
|
1844
1856
|
- [Zernio::PlatformTargetAccountId](docs/PlatformTargetAccountId.md)
|
|
1857
|
+
- [Zernio::PortfolioBidStrategy](docs/PortfolioBidStrategy.md)
|
|
1845
1858
|
- [Zernio::Post](docs/Post.md)
|
|
1846
1859
|
- [Zernio::PostAnalytics](docs/PostAnalytics.md)
|
|
1847
1860
|
- [Zernio::PostCreateResponse](docs/PostCreateResponse.md)
|
|
@@ -2173,6 +2186,8 @@ Class | Method | HTTP request | Description
|
|
|
2173
2186
|
- [Zernio::UpdateAdRequestBudget](docs/UpdateAdRequestBudget.md)
|
|
2174
2187
|
- [Zernio::UpdateAdRequestCreative](docs/UpdateAdRequestCreative.md)
|
|
2175
2188
|
- [Zernio::UpdateAdRequestTargeting](docs/UpdateAdRequestTargeting.md)
|
|
2189
|
+
- [Zernio::UpdateAdRequestTargetingDevicesInner](docs/UpdateAdRequestTargetingDevicesInner.md)
|
|
2190
|
+
- [Zernio::UpdateAdRequestTargetingDevicesInnerOneOf](docs/UpdateAdRequestTargetingDevicesInnerOneOf.md)
|
|
2176
2191
|
- [Zernio::UpdateAdRequestTargetingInterestsInner](docs/UpdateAdRequestTargetingInterestsInner.md)
|
|
2177
2192
|
- [Zernio::UpdateAdRequestTargetingKeywordsInner](docs/UpdateAdRequestTargetingKeywordsInner.md)
|
|
2178
2193
|
- [Zernio::UpdateAdRequestTargetingKeywordsInnerOneOf](docs/UpdateAdRequestTargetingKeywordsInnerOneOf.md)
|
|
@@ -2186,6 +2201,9 @@ Class | Method | HTTP request | Description
|
|
|
2186
2201
|
- [Zernio::UpdateAdTrackingTagsRequest](docs/UpdateAdTrackingTagsRequest.md)
|
|
2187
2202
|
- [Zernio::UpdateAdTrackingTagsRequestCreative](docs/UpdateAdTrackingTagsRequestCreative.md)
|
|
2188
2203
|
- [Zernio::UpdateAdTrackingTagsRequestUrlTagsInner](docs/UpdateAdTrackingTagsRequestUrlTagsInner.md)
|
|
2204
|
+
- [Zernio::UpdateBidStrategy200Response](docs/UpdateBidStrategy200Response.md)
|
|
2205
|
+
- [Zernio::UpdateBidStrategy200ResponseStrategy](docs/UpdateBidStrategy200ResponseStrategy.md)
|
|
2206
|
+
- [Zernio::UpdateBidStrategyRequest](docs/UpdateBidStrategyRequest.md)
|
|
2189
2207
|
- [Zernio::UpdateBlogArticleRequest](docs/UpdateBlogArticleRequest.md)
|
|
2190
2208
|
- [Zernio::UpdateBlogRequest](docs/UpdateBlogRequest.md)
|
|
2191
2209
|
- [Zernio::UpdateBlueskySettingsRequest](docs/UpdateBlueskySettingsRequest.md)
|
data/docs/AdCampaignsApi.md
CHANGED
|
@@ -10,6 +10,7 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
10
10
|
| [**bulk_update_ad_campaign_status**](AdCampaignsApi.md#bulk_update_ad_campaign_status) | **POST** /v1/ads/campaigns/bulk-status | Pause or resume many campaigns |
|
|
11
11
|
| [**create_ad_campaign**](AdCampaignsApi.md#create_ad_campaign) | **POST** /v1/ads/campaigns | Create a standalone campaign |
|
|
12
12
|
| [**create_ad_set**](AdCampaignsApi.md#create_ad_set) | **POST** /v1/ads/ad-sets | Create a standalone ad group |
|
|
13
|
+
| [**create_bid_strategy**](AdCampaignsApi.md#create_bid_strategy) | **POST** /v1/ads/bid-strategies | Create a Google Ads portfolio bid strategy |
|
|
13
14
|
| [**create_standalone_ad**](AdCampaignsApi.md#create_standalone_ad) | **POST** /v1/ads/create | Create standalone ad |
|
|
14
15
|
| [**delete_ad**](AdCampaignsApi.md#delete_ad) | **DELETE** /v1/ads/{adId} | Cancel an ad |
|
|
15
16
|
| [**delete_ad_campaign**](AdCampaignsApi.md#delete_ad_campaign) | **DELETE** /v1/ads/campaigns/{campaignId} | Delete a campaign |
|
|
@@ -21,11 +22,13 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
21
22
|
| [**get_ad_set_details**](AdCampaignsApi.md#get_ad_set_details) | **GET** /v1/ads/ad-sets/{adSetId} | Live ad-set details incl. learning phase |
|
|
22
23
|
| [**get_ad_tree**](AdCampaignsApi.md#get_ad_tree) | **GET** /v1/ads/tree | Get campaign tree |
|
|
23
24
|
| [**get_ads_timeline**](AdCampaignsApi.md#get_ads_timeline) | **GET** /v1/ads/timeline | Get daily account metrics |
|
|
25
|
+
| [**get_campaign_bidding**](AdCampaignsApi.md#get_campaign_bidding) | **GET** /v1/ads/campaigns/{campaignId}/bidding | Read a campaign's current bidding |
|
|
24
26
|
| [**get_campaign_targeting**](AdCampaignsApi.md#get_campaign_targeting) | **GET** /v1/ads/campaigns/{campaignId}/targeting | Read a Google campaign's device, location, and language targeting |
|
|
25
27
|
| [**list_ad_campaigns**](AdCampaignsApi.md#list_ad_campaigns) | **GET** /v1/ads/campaigns | List campaigns |
|
|
26
28
|
| [**list_ad_keywords**](AdCampaignsApi.md#list_ad_keywords) | **GET** /v1/ads/keywords | List Search keywords |
|
|
27
29
|
| [**list_ad_sets**](AdCampaignsApi.md#list_ad_sets) | **GET** /v1/ads/ad-sets | List ad sets |
|
|
28
30
|
| [**list_ads**](AdCampaignsApi.md#list_ads) | **GET** /v1/ads | List ads |
|
|
31
|
+
| [**list_bid_strategies**](AdCampaignsApi.md#list_bid_strategies) | **GET** /v1/ads/bid-strategies | List Google Ads portfolio bid strategies |
|
|
29
32
|
| [**list_campaign_negative_keywords**](AdCampaignsApi.md#list_campaign_negative_keywords) | **GET** /v1/ads/campaigns/{campaignId}/negative-keywords | List campaign-level negative keywords |
|
|
30
33
|
| [**remove_ad_keyword**](AdCampaignsApi.md#remove_ad_keyword) | **DELETE** /v1/ads/keywords/{keywordId} | Remove a Search keyword |
|
|
31
34
|
| [**replace_campaign_negative_keywords**](AdCampaignsApi.md#replace_campaign_negative_keywords) | **PUT** /v1/ads/campaigns/{campaignId}/negative-keywords | Replace campaign-level negative keywords |
|
|
@@ -36,6 +39,7 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
36
39
|
| [**update_ad_set**](AdCampaignsApi.md#update_ad_set) | **PUT** /v1/ads/ad-sets/{adSetId} | Update an ad set |
|
|
37
40
|
| [**update_ad_set_status**](AdCampaignsApi.md#update_ad_set_status) | **PUT** /v1/ads/ad-sets/{adSetId}/status | Pause or resume a single ad set |
|
|
38
41
|
| [**update_ad_status**](AdCampaignsApi.md#update_ad_status) | **PUT** /v1/ads/{adId}/status | Pause or resume a single ad |
|
|
42
|
+
| [**update_bid_strategy**](AdCampaignsApi.md#update_bid_strategy) | **PATCH** /v1/ads/bid-strategies/{strategyId} | Update a Google Ads portfolio bid strategy |
|
|
39
43
|
| [**update_campaign_targeting**](AdCampaignsApi.md#update_campaign_targeting) | **PUT** /v1/ads/campaigns/{campaignId}/targeting | Edit a Google campaign's device, location, or language targeting |
|
|
40
44
|
|
|
41
45
|
|
|
@@ -327,7 +331,7 @@ end
|
|
|
327
331
|
|
|
328
332
|
Create a standalone campaign
|
|
329
333
|
|
|
330
|
-
Creates a campaign WITHOUT its first ad set / ad, on the platform of the given `accountId`. Ad sets join it later via `existingCampaignId` on the create endpoints. Platform notes: on Meta a budget here is campaign-level (CBO) by definition; omit it for ABO (each ad set carries its own budget), and `specialAdCategories`
|
|
334
|
+
Creates a campaign WITHOUT its first ad set / ad, on the platform of the given `accountId`. Ad sets join it later via `existingCampaignId` on the create endpoints. Platform notes: on Meta a budget here is campaign-level (CBO) by definition; omit it for ABO (each ad set carries its own budget), and `specialAdCategories` is Meta-only (400 elsewhere); `bidStrategy` is Meta and Google (400 elsewhere), and Google also accepts `portfolioBidStrategyId` instead. Google, X and OpenAI require a budget (422 without one; OpenAI accepts only `budgetType: lifetime`, Google only `budgetType: daily`). LinkedIn creates the campaign GROUP (our campaign level) and rejects a budget, which lives on the campaign (ad set) level there; it comes back `status: DRAFT`. TikTok campaigns are created without a status and report `ENABLE`. Created `PAUSED` unless `status: ACTIVE` where the platform supports it. **Idempotency:** send an `Idempotency-Key` header to make retries safe.
|
|
331
335
|
|
|
332
336
|
### Examples
|
|
333
337
|
|
|
@@ -467,6 +471,75 @@ end
|
|
|
467
471
|
- **Accept**: application/json
|
|
468
472
|
|
|
469
473
|
|
|
474
|
+
## create_bid_strategy
|
|
475
|
+
|
|
476
|
+
> <CreateBidStrategy201Response> create_bid_strategy(create_bid_strategy_request)
|
|
477
|
+
|
|
478
|
+
Create a Google Ads portfolio bid strategy
|
|
479
|
+
|
|
480
|
+
Creates a standalone bid strategy shared across campaigns. Attach it to a campaign with `portfolioBidStrategyId` on POST /v1/ads/create, PUT /v1/ads/campaigns/{campaignId}, or PUT /v1/ads/ad-sets/{adSetId}. Attaching a strategy aligned to a shared budget fails there with a 400 (Google's `BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED`); this is not retryable.
|
|
481
|
+
|
|
482
|
+
### Examples
|
|
483
|
+
|
|
484
|
+
```ruby
|
|
485
|
+
require 'time'
|
|
486
|
+
require 'zernio-sdk'
|
|
487
|
+
# setup authorization
|
|
488
|
+
Zernio.configure do |config|
|
|
489
|
+
# Configure Bearer authorization (JWT): bearerAuth
|
|
490
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
api_instance = Zernio::AdCampaignsApi.new
|
|
494
|
+
create_bid_strategy_request = Zernio::CreateBidStrategyRequest.new({account_id: 'account_id_example', name: 'name_example', type: 'TARGET_CPA'}) # CreateBidStrategyRequest |
|
|
495
|
+
|
|
496
|
+
begin
|
|
497
|
+
# Create a Google Ads portfolio bid strategy
|
|
498
|
+
result = api_instance.create_bid_strategy(create_bid_strategy_request)
|
|
499
|
+
p result
|
|
500
|
+
rescue Zernio::ApiError => e
|
|
501
|
+
puts "Error when calling AdCampaignsApi->create_bid_strategy: #{e}"
|
|
502
|
+
end
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
#### Using the create_bid_strategy_with_http_info variant
|
|
506
|
+
|
|
507
|
+
This returns an Array which contains the response data, status code and headers.
|
|
508
|
+
|
|
509
|
+
> <Array(<CreateBidStrategy201Response>, Integer, Hash)> create_bid_strategy_with_http_info(create_bid_strategy_request)
|
|
510
|
+
|
|
511
|
+
```ruby
|
|
512
|
+
begin
|
|
513
|
+
# Create a Google Ads portfolio bid strategy
|
|
514
|
+
data, status_code, headers = api_instance.create_bid_strategy_with_http_info(create_bid_strategy_request)
|
|
515
|
+
p status_code # => 2xx
|
|
516
|
+
p headers # => { ... }
|
|
517
|
+
p data # => <CreateBidStrategy201Response>
|
|
518
|
+
rescue Zernio::ApiError => e
|
|
519
|
+
puts "Error when calling AdCampaignsApi->create_bid_strategy_with_http_info: #{e}"
|
|
520
|
+
end
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
### Parameters
|
|
524
|
+
|
|
525
|
+
| Name | Type | Description | Notes |
|
|
526
|
+
| ---- | ---- | ----------- | ----- |
|
|
527
|
+
| **create_bid_strategy_request** | [**CreateBidStrategyRequest**](CreateBidStrategyRequest.md) | | |
|
|
528
|
+
|
|
529
|
+
### Return type
|
|
530
|
+
|
|
531
|
+
[**CreateBidStrategy201Response**](CreateBidStrategy201Response.md)
|
|
532
|
+
|
|
533
|
+
### Authorization
|
|
534
|
+
|
|
535
|
+
[bearerAuth](../README.md#bearerAuth)
|
|
536
|
+
|
|
537
|
+
### HTTP request headers
|
|
538
|
+
|
|
539
|
+
- **Content-Type**: application/json
|
|
540
|
+
- **Accept**: application/json
|
|
541
|
+
|
|
542
|
+
|
|
470
543
|
## create_standalone_ad
|
|
471
544
|
|
|
472
545
|
> <CreateStandaloneAd200Response> create_standalone_ad(create_standalone_ad_request, opts)
|
|
@@ -1300,6 +1373,83 @@ end
|
|
|
1300
1373
|
- **Accept**: application/json
|
|
1301
1374
|
|
|
1302
1375
|
|
|
1376
|
+
## get_campaign_bidding
|
|
1377
|
+
|
|
1378
|
+
> <GetCampaignBidding200Response> get_campaign_bidding(campaign_id, account_id, platform, opts)
|
|
1379
|
+
|
|
1380
|
+
Read a campaign's current bidding
|
|
1381
|
+
|
|
1382
|
+
Live read of the campaign's bidding strategy on Google, for pre-filling the bid strategy block before a PUT to /v1/ads/campaigns/{campaignId}. Google Ads only; `platform` is required and rejected when it is anything else, since a `campaignId` is not globally unique. Maps Google's bidding strategy onto the same triplet PUT accepts: `LOWEST_COST_WITHOUT_CAP` (Maximize Conversions, no target), `COST_CAP` + `bidAmount` (Target CPA), `LOWEST_COST_WITH_MIN_ROAS` + `roasAverageFloor` (Target ROAS), `LOWEST_COST_WITH_BID_CAP` + `bidAmount` (Maximize Clicks with a CPC ceiling). A campaign on a portfolio strategy returns `portfolio` (id + name) and `bidSpec.portfolioBidStrategyId` instead of the triplet. Anything else (Manual CPC, Target Impression Share, ...) returns `bidSpec: null`; show `biddingStrategyType` as-is.
|
|
1383
|
+
|
|
1384
|
+
### Examples
|
|
1385
|
+
|
|
1386
|
+
```ruby
|
|
1387
|
+
require 'time'
|
|
1388
|
+
require 'zernio-sdk'
|
|
1389
|
+
# setup authorization
|
|
1390
|
+
Zernio.configure do |config|
|
|
1391
|
+
# Configure Bearer authorization (JWT): bearerAuth
|
|
1392
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
1393
|
+
end
|
|
1394
|
+
|
|
1395
|
+
api_instance = Zernio::AdCampaignsApi.new
|
|
1396
|
+
campaign_id = 'campaign_id_example' # String | Numeric Google platform campaign id.
|
|
1397
|
+
account_id = 'account_id_example' # String | Zernio Google Ads SocialAccount id: resolves the customer id + refresh token.
|
|
1398
|
+
platform = 'google' # String | Required: campaign IDs are not globally unique. Only \"google\" is supported today.
|
|
1399
|
+
opts = {
|
|
1400
|
+
customer_id: 'customer_id_example' # String | Numeric Google Ads customer id (no dashes). Required when the connection has multiple Google Ads accounts; optional (and inferred) when it has only one.
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
begin
|
|
1404
|
+
# Read a campaign's current bidding
|
|
1405
|
+
result = api_instance.get_campaign_bidding(campaign_id, account_id, platform, opts)
|
|
1406
|
+
p result
|
|
1407
|
+
rescue Zernio::ApiError => e
|
|
1408
|
+
puts "Error when calling AdCampaignsApi->get_campaign_bidding: #{e}"
|
|
1409
|
+
end
|
|
1410
|
+
```
|
|
1411
|
+
|
|
1412
|
+
#### Using the get_campaign_bidding_with_http_info variant
|
|
1413
|
+
|
|
1414
|
+
This returns an Array which contains the response data, status code and headers.
|
|
1415
|
+
|
|
1416
|
+
> <Array(<GetCampaignBidding200Response>, Integer, Hash)> get_campaign_bidding_with_http_info(campaign_id, account_id, platform, opts)
|
|
1417
|
+
|
|
1418
|
+
```ruby
|
|
1419
|
+
begin
|
|
1420
|
+
# Read a campaign's current bidding
|
|
1421
|
+
data, status_code, headers = api_instance.get_campaign_bidding_with_http_info(campaign_id, account_id, platform, opts)
|
|
1422
|
+
p status_code # => 2xx
|
|
1423
|
+
p headers # => { ... }
|
|
1424
|
+
p data # => <GetCampaignBidding200Response>
|
|
1425
|
+
rescue Zernio::ApiError => e
|
|
1426
|
+
puts "Error when calling AdCampaignsApi->get_campaign_bidding_with_http_info: #{e}"
|
|
1427
|
+
end
|
|
1428
|
+
```
|
|
1429
|
+
|
|
1430
|
+
### Parameters
|
|
1431
|
+
|
|
1432
|
+
| Name | Type | Description | Notes |
|
|
1433
|
+
| ---- | ---- | ----------- | ----- |
|
|
1434
|
+
| **campaign_id** | **String** | Numeric Google platform campaign id. | |
|
|
1435
|
+
| **account_id** | **String** | Zernio Google Ads SocialAccount id: resolves the customer id + refresh token. | |
|
|
1436
|
+
| **platform** | **String** | Required: campaign IDs are not globally unique. Only \"google\" is supported today. | |
|
|
1437
|
+
| **customer_id** | **String** | Numeric Google Ads customer id (no dashes). Required when the connection has multiple Google Ads accounts; optional (and inferred) when it has only one. | [optional] |
|
|
1438
|
+
|
|
1439
|
+
### Return type
|
|
1440
|
+
|
|
1441
|
+
[**GetCampaignBidding200Response**](GetCampaignBidding200Response.md)
|
|
1442
|
+
|
|
1443
|
+
### Authorization
|
|
1444
|
+
|
|
1445
|
+
[bearerAuth](../README.md#bearerAuth)
|
|
1446
|
+
|
|
1447
|
+
### HTTP request headers
|
|
1448
|
+
|
|
1449
|
+
- **Content-Type**: Not defined
|
|
1450
|
+
- **Accept**: application/json
|
|
1451
|
+
|
|
1452
|
+
|
|
1303
1453
|
## get_campaign_targeting
|
|
1304
1454
|
|
|
1305
1455
|
> <GetCampaignTargeting200Response> get_campaign_targeting(campaign_id, opts)
|
|
@@ -1737,6 +1887,83 @@ end
|
|
|
1737
1887
|
- **Accept**: application/json
|
|
1738
1888
|
|
|
1739
1889
|
|
|
1890
|
+
## list_bid_strategies
|
|
1891
|
+
|
|
1892
|
+
> <ListBidStrategies200Response> list_bid_strategies(account_id, opts)
|
|
1893
|
+
|
|
1894
|
+
List Google Ads portfolio bid strategies
|
|
1895
|
+
|
|
1896
|
+
Bidding strategy report: type, status, campaign count, clicks, cost, cost per conversion, impressions, average CPC and conversions over the date range (default last 30 days). Reads Google's `bidding_strategy` resource live. Draws on the shared Google Ads operations budget.
|
|
1897
|
+
|
|
1898
|
+
### Examples
|
|
1899
|
+
|
|
1900
|
+
```ruby
|
|
1901
|
+
require 'time'
|
|
1902
|
+
require 'zernio-sdk'
|
|
1903
|
+
# setup authorization
|
|
1904
|
+
Zernio.configure do |config|
|
|
1905
|
+
# Configure Bearer authorization (JWT): bearerAuth
|
|
1906
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
1907
|
+
end
|
|
1908
|
+
|
|
1909
|
+
api_instance = Zernio::AdCampaignsApi.new
|
|
1910
|
+
account_id = 'account_id_example' # String | Google ads SocialAccount id.
|
|
1911
|
+
opts = {
|
|
1912
|
+
customer_id: 'customer_id_example', # String | Numeric Google Ads customer id (no dashes). Defaults to the account's connected customer.
|
|
1913
|
+
from_date: Date.parse('2013-10-20'), # Date | Defaults to 30 days ago.
|
|
1914
|
+
to_date: Date.parse('2013-10-20') # Date | Defaults to today.
|
|
1915
|
+
}
|
|
1916
|
+
|
|
1917
|
+
begin
|
|
1918
|
+
# List Google Ads portfolio bid strategies
|
|
1919
|
+
result = api_instance.list_bid_strategies(account_id, opts)
|
|
1920
|
+
p result
|
|
1921
|
+
rescue Zernio::ApiError => e
|
|
1922
|
+
puts "Error when calling AdCampaignsApi->list_bid_strategies: #{e}"
|
|
1923
|
+
end
|
|
1924
|
+
```
|
|
1925
|
+
|
|
1926
|
+
#### Using the list_bid_strategies_with_http_info variant
|
|
1927
|
+
|
|
1928
|
+
This returns an Array which contains the response data, status code and headers.
|
|
1929
|
+
|
|
1930
|
+
> <Array(<ListBidStrategies200Response>, Integer, Hash)> list_bid_strategies_with_http_info(account_id, opts)
|
|
1931
|
+
|
|
1932
|
+
```ruby
|
|
1933
|
+
begin
|
|
1934
|
+
# List Google Ads portfolio bid strategies
|
|
1935
|
+
data, status_code, headers = api_instance.list_bid_strategies_with_http_info(account_id, opts)
|
|
1936
|
+
p status_code # => 2xx
|
|
1937
|
+
p headers # => { ... }
|
|
1938
|
+
p data # => <ListBidStrategies200Response>
|
|
1939
|
+
rescue Zernio::ApiError => e
|
|
1940
|
+
puts "Error when calling AdCampaignsApi->list_bid_strategies_with_http_info: #{e}"
|
|
1941
|
+
end
|
|
1942
|
+
```
|
|
1943
|
+
|
|
1944
|
+
### Parameters
|
|
1945
|
+
|
|
1946
|
+
| Name | Type | Description | Notes |
|
|
1947
|
+
| ---- | ---- | ----------- | ----- |
|
|
1948
|
+
| **account_id** | **String** | Google ads SocialAccount id. | |
|
|
1949
|
+
| **customer_id** | **String** | Numeric Google Ads customer id (no dashes). Defaults to the account's connected customer. | [optional] |
|
|
1950
|
+
| **from_date** | **Date** | Defaults to 30 days ago. | [optional] |
|
|
1951
|
+
| **to_date** | **Date** | Defaults to today. | [optional] |
|
|
1952
|
+
|
|
1953
|
+
### Return type
|
|
1954
|
+
|
|
1955
|
+
[**ListBidStrategies200Response**](ListBidStrategies200Response.md)
|
|
1956
|
+
|
|
1957
|
+
### Authorization
|
|
1958
|
+
|
|
1959
|
+
[bearerAuth](../README.md#bearerAuth)
|
|
1960
|
+
|
|
1961
|
+
### HTTP request headers
|
|
1962
|
+
|
|
1963
|
+
- **Content-Type**: Not defined
|
|
1964
|
+
- **Accept**: application/json
|
|
1965
|
+
|
|
1966
|
+
|
|
1740
1967
|
## list_campaign_negative_keywords
|
|
1741
1968
|
|
|
1742
1969
|
> <ListCampaignNegativeKeywords200Response> list_campaign_negative_keywords(campaign_id, opts)
|
|
@@ -1956,7 +2183,7 @@ end
|
|
|
1956
2183
|
|
|
1957
2184
|
Update ad
|
|
1958
2185
|
|
|
1959
|
-
Patch one or more fields on an ad. Status, budget, targeting, and creative changes are propagated to the platform. Per-platform support: - **Meta** (Facebook + Instagram): all fields supported. - **TikTok**: status, budget, targeting (via `/v2/adgroup/update/`), and creative (via `/v2/ad/update/` patch-style — `headline` is ignored, `body` becomes `ad_text`). - **Google**: status, budget,
|
|
2186
|
+
Patch one or more fields on an ad. Status, budget, targeting, and creative changes are propagated to the platform. Per-platform support: - **Meta** (Facebook + Instagram): all fields supported. - **TikTok**: status, budget, targeting (via `/v2/adgroup/update/`), and creative (via `/v2/ad/update/` patch-style — `headline` is ignored, `body` becomes `ad_text`). - **Google**: status, budget, KEYWORD edits via `targeting.keywords` / `targeting.negativeKeywords`, and DEVICE bid adjustments via `targeting.devices` — each list you send becomes the FULL new set of its kind (criteria not in the list are removed); a kind left out is untouched. Any other `targeting` field returns 400: Google cannot mutate broad targeting post-create without recreating the campaign. `creative` returns 501. - **LinkedIn**: status, budget, targeting (geo countries only, applied to the LinkedIn Campaign via PARTIAL_UPDATE), and creative (uploads new media, creates a replacement inline creative on the same campaign, pauses the old one). - **Pinterest / X / OpenAI Ads**: status + budget only. Sending `targeting` or `creative` returns 501 with code `unsupported_platform_operation`. OpenAI Ads budget is lifetime-only (see `budget.type` below).
|
|
1960
2187
|
|
|
1961
2188
|
### Examples
|
|
1962
2189
|
|
|
@@ -2027,7 +2254,7 @@ end
|
|
|
2027
2254
|
|
|
2028
2255
|
Update a campaign
|
|
2029
2256
|
|
|
2030
|
-
Campaign-level edits. Send at least one of `budget`, `bidStrategy`, `name` or `platformSpecificData`. An unsupported field is always an error, never a silent drop. | Body field | Meta | Google | Others | |---|---|---|---| | `bidStrategy` | Yes | Yes | 501 | | `bidAmount`, `roasAverageFloor` | 400 — ad-set level | Yes | 400 | | `budget` (CBO; ABO returns 409) | Yes | 501 | 501 | | `name` | Yes | 501 | 501 | | `platformSpecificData.spendCap` | Yes | 400 | 400 | | `accountId` (empty campaigns) | Yes | - | - | Google
|
|
2257
|
+
Campaign-level edits. Send at least one of `budget`, `bidStrategy`, `portfolioBidStrategyId`, `name` or `platformSpecificData`. An unsupported field is always an error, never a silent drop. | Body field | Meta | Google | Others | |---|---|---|---| | `bidStrategy` | Yes | Yes | 501 | | `bidAmount`, `roasAverageFloor` | 400 — ad-set level | Yes | 400 | | `portfolioBidStrategyId` | 400 | Yes | 400 | | `budget` (CBO; ABO returns 409) | Yes | 501 | 501 | | `name` | Yes | 501 | 501 | | `platformSpecificData.spendCap` | Yes | 400 | 400 | | `accountId` (empty campaigns) | Yes | - | - | On Google: `LOWEST_COST_WITHOUT_CAP` = Maximize Conversions, `COST_CAP` + `bidAmount` = Target CPA, `LOWEST_COST_WITH_MIN_ROAS` + `roasAverageFloor` = Target ROAS, `LOWEST_COST_WITH_BID_CAP` + `bidAmount` = Maximize Clicks with a CPC ceiling; `portfolioBidStrategyId` attaches a portfolio strategy instead (exclusive with `bidStrategy`). Setting the standard triplet on a campaign that is currently on a PORTFOLIO strategy is rejected: detach it in Google Ads first, since it is shared across campaigns. `accountId` forwards the update straight to Meta for a campaign with zero ads, which would otherwise 404; the response then carries `updated: 0`.
|
|
2031
2258
|
|
|
2032
2259
|
### Examples
|
|
2033
2260
|
|
|
@@ -2447,6 +2674,77 @@ end
|
|
|
2447
2674
|
- **Accept**: application/json
|
|
2448
2675
|
|
|
2449
2676
|
|
|
2677
|
+
## update_bid_strategy
|
|
2678
|
+
|
|
2679
|
+
> <UpdateBidStrategy200Response> update_bid_strategy(strategy_id, update_bid_strategy_request)
|
|
2680
|
+
|
|
2681
|
+
Update a Google Ads portfolio bid strategy
|
|
2682
|
+
|
|
2683
|
+
Renames or retargets a portfolio bid strategy. The strategy's status is output only on Google's side, so it cannot be changed here; remove a strategy in Google Ads. `type` is only needed alongside `targetCpa`/`targetRoas` to disambiguate the field Google writes to (TARGET_CPA and MAXIMIZE_CONVERSIONS both take a target CPA; TARGET_ROAS and MAXIMIZE_CONVERSION_VALUE both take a target ROAS); the strategy's family is otherwise immutable once created.
|
|
2684
|
+
|
|
2685
|
+
### Examples
|
|
2686
|
+
|
|
2687
|
+
```ruby
|
|
2688
|
+
require 'time'
|
|
2689
|
+
require 'zernio-sdk'
|
|
2690
|
+
# setup authorization
|
|
2691
|
+
Zernio.configure do |config|
|
|
2692
|
+
# Configure Bearer authorization (JWT): bearerAuth
|
|
2693
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
2694
|
+
end
|
|
2695
|
+
|
|
2696
|
+
api_instance = Zernio::AdCampaignsApi.new
|
|
2697
|
+
strategy_id = 'strategy_id_example' # String | Numeric Google Ads bid strategy id.
|
|
2698
|
+
update_bid_strategy_request = Zernio::UpdateBidStrategyRequest.new({account_id: 'account_id_example'}) # UpdateBidStrategyRequest |
|
|
2699
|
+
|
|
2700
|
+
begin
|
|
2701
|
+
# Update a Google Ads portfolio bid strategy
|
|
2702
|
+
result = api_instance.update_bid_strategy(strategy_id, update_bid_strategy_request)
|
|
2703
|
+
p result
|
|
2704
|
+
rescue Zernio::ApiError => e
|
|
2705
|
+
puts "Error when calling AdCampaignsApi->update_bid_strategy: #{e}"
|
|
2706
|
+
end
|
|
2707
|
+
```
|
|
2708
|
+
|
|
2709
|
+
#### Using the update_bid_strategy_with_http_info variant
|
|
2710
|
+
|
|
2711
|
+
This returns an Array which contains the response data, status code and headers.
|
|
2712
|
+
|
|
2713
|
+
> <Array(<UpdateBidStrategy200Response>, Integer, Hash)> update_bid_strategy_with_http_info(strategy_id, update_bid_strategy_request)
|
|
2714
|
+
|
|
2715
|
+
```ruby
|
|
2716
|
+
begin
|
|
2717
|
+
# Update a Google Ads portfolio bid strategy
|
|
2718
|
+
data, status_code, headers = api_instance.update_bid_strategy_with_http_info(strategy_id, update_bid_strategy_request)
|
|
2719
|
+
p status_code # => 2xx
|
|
2720
|
+
p headers # => { ... }
|
|
2721
|
+
p data # => <UpdateBidStrategy200Response>
|
|
2722
|
+
rescue Zernio::ApiError => e
|
|
2723
|
+
puts "Error when calling AdCampaignsApi->update_bid_strategy_with_http_info: #{e}"
|
|
2724
|
+
end
|
|
2725
|
+
```
|
|
2726
|
+
|
|
2727
|
+
### Parameters
|
|
2728
|
+
|
|
2729
|
+
| Name | Type | Description | Notes |
|
|
2730
|
+
| ---- | ---- | ----------- | ----- |
|
|
2731
|
+
| **strategy_id** | **String** | Numeric Google Ads bid strategy id. | |
|
|
2732
|
+
| **update_bid_strategy_request** | [**UpdateBidStrategyRequest**](UpdateBidStrategyRequest.md) | | |
|
|
2733
|
+
|
|
2734
|
+
### Return type
|
|
2735
|
+
|
|
2736
|
+
[**UpdateBidStrategy200Response**](UpdateBidStrategy200Response.md)
|
|
2737
|
+
|
|
2738
|
+
### Authorization
|
|
2739
|
+
|
|
2740
|
+
[bearerAuth](../README.md#bearerAuth)
|
|
2741
|
+
|
|
2742
|
+
### HTTP request headers
|
|
2743
|
+
|
|
2744
|
+
- **Content-Type**: application/json
|
|
2745
|
+
- **Accept**: application/json
|
|
2746
|
+
|
|
2747
|
+
|
|
2450
2748
|
## update_campaign_targeting
|
|
2451
2749
|
|
|
2452
2750
|
> <UpdateCampaignTargeting200Response> update_campaign_targeting(campaign_id, update_campaign_targeting_request)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Zernio::CampaignBidding
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **channel** | **String** | campaign.advertising_channel_type. COST_CAP's underlying Google field differs by channel; see bidStrategy on PUT. | [optional] |
|
|
8
|
+
| **bidding_strategy_type** | **String** | Google's raw enum: MAXIMIZE_CONVERSIONS, TARGET_CPA, MAXIMIZE_CONVERSION_VALUE, TARGET_ROAS, TARGET_SPEND, MANUAL_CPC, TARGET_IMPRESSION_SHARE, or another Google adds later. | [optional] |
|
|
9
|
+
| **bid_spec** | [**CampaignBiddingBidSpec**](CampaignBiddingBidSpec.md) | | [optional] |
|
|
10
|
+
| **portfolio** | [**CampaignBiddingPortfolio**](CampaignBiddingPortfolio.md) | | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'zernio-sdk'
|
|
16
|
+
|
|
17
|
+
instance = Zernio::CampaignBidding.new(
|
|
18
|
+
channel: null,
|
|
19
|
+
bidding_strategy_type: null,
|
|
20
|
+
bid_spec: null,
|
|
21
|
+
portfolio: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Zernio::CampaignBiddingBidSpec
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **bid_strategy** | [**BidStrategy**](BidStrategy.md) | | [optional] |
|
|
8
|
+
| **bid_amount** | **Float** | Whole currency units. Present for COST_CAP and LOWEST_COST_WITH_BID_CAP, and omitted when the campaign is on a bare TARGET_SPEND with no CPC ceiling set. | [optional] |
|
|
9
|
+
| **roas_average_floor** | **Float** | Decimal ROAS multiplier (2.0 = 2.0x). Present for LOWEST_COST_WITH_MIN_ROAS. | [optional] |
|
|
10
|
+
| **portfolio_bid_strategy_id** | **String** | Present alone (bidStrategy omitted) when the campaign is on a portfolio strategy; see portfolio. | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'zernio-sdk'
|
|
16
|
+
|
|
17
|
+
instance = Zernio::CampaignBiddingBidSpec.new(
|
|
18
|
+
bid_strategy: null,
|
|
19
|
+
bid_amount: null,
|
|
20
|
+
roas_average_floor: null,
|
|
21
|
+
portfolio_bid_strategy_id: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Zernio::CampaignBiddingPortfolio
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **id** | **String** | | [optional] |
|
|
8
|
+
| **name** | **String** | | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'zernio-sdk'
|
|
14
|
+
|
|
15
|
+
instance = Zernio::CampaignBiddingPortfolio.new(
|
|
16
|
+
id: null,
|
|
17
|
+
name: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
| **budget_amount** | **Float** | Campaign-level (CBO) budget in WHOLE currency units (USD: 50 = $50.00), NOT cents — Meta's own Marketing API takes this same number in minor units, so it is an easy and expensive mix-up. Requires budgetType. | [optional] |
|
|
13
13
|
| **budget_type** | **String** | | [optional] |
|
|
14
14
|
| **status** | **String** | | [optional][default to 'PAUSED'] |
|
|
15
|
-
| **bid_strategy** | **String** | Campaign bid strategy. Meta stores `bid_strategy` alongside the budget, so this REQUIRES `budgetAmount` + `budgetType` on the same request; sending it without a campaign budget is a 400. A campaign carrying a strategy without its `bid_amount` makes every ad set created under it fail with an error that names the ad set (code 100, subcode 1815857), so the bad state is rejected up front rather than accepted. To bid at ad-set level, set the strategy there instead. | [optional] |
|
|
16
|
-
| **bid_amount** | **Float** | Whole currency units (USD: 5 = $5.00). Required for LOWEST_COST_WITH_BID_CAP and COST_CAP; ignored otherwise.
|
|
15
|
+
| **bid_strategy** | **String** | Campaign bid strategy. Meta stores `bid_strategy` alongside the budget, so this REQUIRES `budgetAmount` + `budgetType` on the same request; sending it without a campaign budget is a 400. A campaign carrying a strategy without its `bid_amount` makes every ad set created under it fail with an error that names the ad set (code 100, subcode 1815857), so the bad state is rejected up front rather than accepted. To bid at ad-set level on Meta, set the strategy there instead. On Google: LOWEST_COST_WITHOUT_CAP = Maximize Conversions, COST_CAP + bidAmount = Target CPA, LOWEST_COST_WITH_MIN_ROAS + roasAverageFloor = Target ROAS, LOWEST_COST_WITH_BID_CAP + bidAmount = Maximize Clicks with a CPC ceiling; portfolioBidStrategyId attaches a portfolio strategy instead. | [optional] |
|
|
16
|
+
| **bid_amount** | **Float** | Whole currency units (USD: 5 = $5.00). Required for LOWEST_COST_WITH_BID_CAP and COST_CAP; ignored otherwise. On Meta, validated here but NOT stored: the campaign object has no bid_amount field, only bid_strategy lives on it, and the amount takes effect once an ad set joins this campaign (existingCampaignId on POST /v1/ads/create) and supplies its own bidAmount there. On Google, stored directly on the campaign's bidding strategy. | [optional] |
|
|
17
17
|
| **roas_average_floor** | **Float** | Decimal ROAS multiplier (2.0 = 2.0x). Required for LOWEST_COST_WITH_MIN_ROAS. | [optional] |
|
|
18
|
+
| **portfolio_bid_strategy_id** | **String** | Google only. Attach an existing portfolio bid strategy (numeric id from GET /v1/ads/bid-strategies) to the new campaign instead of a standard one. Exclusive with bidStrategy. | [optional] |
|
|
18
19
|
|
|
19
20
|
## Example
|
|
20
21
|
|
|
@@ -32,7 +33,8 @@ instance = Zernio::CreateAdCampaignRequest.new(
|
|
|
32
33
|
status: null,
|
|
33
34
|
bid_strategy: null,
|
|
34
35
|
bid_amount: null,
|
|
35
|
-
roas_average_floor: null
|
|
36
|
+
roas_average_floor: null,
|
|
37
|
+
portfolio_bid_strategy_id: null
|
|
36
38
|
)
|
|
37
39
|
```
|
|
38
40
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Zernio::CreateBidStrategy201Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **strategy** | [**CreateBidStrategy201ResponseStrategy**](CreateBidStrategy201ResponseStrategy.md) | | [optional] |
|
|
8
|
+
|
|
9
|
+
## Example
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
require 'zernio-sdk'
|
|
13
|
+
|
|
14
|
+
instance = Zernio::CreateBidStrategy201Response.new(
|
|
15
|
+
strategy: null
|
|
16
|
+
)
|
|
17
|
+
```
|
|
18
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Zernio::CreateBidStrategy201ResponseStrategy
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **customer_id** | **String** | | [optional] |
|
|
8
|
+
| **id** | **String** | Numeric bid strategy id; pass as portfolioBidStrategyId or in the {strategyId} path. | [optional] |
|
|
9
|
+
| **resource_name** | **String** | | [optional] |
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
require 'zernio-sdk'
|
|
15
|
+
|
|
16
|
+
instance = Zernio::CreateBidStrategy201ResponseStrategy.new(
|
|
17
|
+
customer_id: null,
|
|
18
|
+
id: null,
|
|
19
|
+
resource_name: null
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|