late-sdk 0.0.856 → 0.0.857

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -2
  3. data/docs/AdCampaignsApi.md +364 -6
  4. data/docs/{ListAdKeywords200ResponseKeywordsInner.md → AdKeyword.md} +7 -3
  5. data/docs/AdKeywordMetrics.md +30 -0
  6. data/docs/AddAdKeywords201Response.md +18 -0
  7. data/docs/AddAdKeywordsRequest.md +24 -0
  8. data/docs/AddAdKeywordsRequestKeywordsInner.md +20 -0
  9. data/docs/AddAdKeywordsRequestKeywordsInnerAnyOf.md +20 -0
  10. data/docs/CreateStandaloneAdRequest.md +4 -2
  11. data/docs/KeywordEntry.md +49 -0
  12. data/docs/ListAdKeywords200Response.md +1 -1
  13. data/docs/ListCampaignNegativeKeywords200Response.md +18 -0
  14. data/docs/ListCampaignNegativeKeywords200ResponseKeywordsInner.md +22 -0
  15. data/docs/RemoveAdKeyword200Response.md +20 -0
  16. data/docs/ReplaceCampaignNegativeKeywords200Response.md +22 -0
  17. data/docs/ReplaceCampaignNegativeKeywordsRequest.md +20 -0
  18. data/docs/UpdateAdKeyword200Response.md +18 -0
  19. data/docs/{UpdateAdStatusRequest.md → UpdateAdKeywordRequest.md} +2 -2
  20. data/lib/zernio-sdk/api/ad_campaigns_api.rb +358 -9
  21. data/lib/zernio-sdk/models/{list_ad_keywords200_response_keywords_inner.rb → ad_keyword.rb} +28 -8
  22. data/lib/zernio-sdk/models/ad_keyword_metrics.rb +207 -0
  23. data/lib/zernio-sdk/models/add_ad_keywords201_response.rb +149 -0
  24. data/lib/zernio-sdk/models/add_ad_keywords_request.rb +250 -0
  25. data/lib/zernio-sdk/models/add_ad_keywords_request_keywords_inner.rb +103 -0
  26. data/lib/zernio-sdk/models/add_ad_keywords_request_keywords_inner_any_of.rb +225 -0
  27. data/lib/zernio-sdk/models/create_standalone_ad_request.rb +55 -5
  28. data/lib/zernio-sdk/models/keyword_entry.rb +105 -0
  29. data/lib/zernio-sdk/models/list_ad_keywords200_response.rb +1 -1
  30. data/lib/zernio-sdk/models/list_campaign_negative_keywords200_response.rb +149 -0
  31. data/lib/zernio-sdk/models/list_campaign_negative_keywords200_response_keywords_inner.rb +199 -0
  32. data/lib/zernio-sdk/models/remove_ad_keyword200_response.rb +157 -0
  33. data/lib/zernio-sdk/models/replace_campaign_negative_keywords200_response.rb +170 -0
  34. data/lib/zernio-sdk/models/replace_campaign_negative_keywords_request.rb +219 -0
  35. data/lib/zernio-sdk/models/update_ad_keyword200_response.rb +147 -0
  36. data/lib/zernio-sdk/models/{update_ad_status_request.rb → update_ad_keyword_request.rb} +3 -3
  37. data/lib/zernio-sdk/version.rb +1 -1
  38. data/lib/zernio-sdk.rb +14 -2
  39. data/openapi.yaml +257 -21
  40. data/spec/api/ad_campaigns_api_spec.rb +64 -1
  41. data/spec/models/ad_keyword_metrics_spec.rb +72 -0
  42. data/spec/models/{list_ad_keywords200_response_keywords_inner_spec.rb → ad_keyword_spec.rb} +18 -6
  43. data/spec/models/add_ad_keywords201_response_spec.rb +36 -0
  44. data/spec/models/add_ad_keywords_request_keywords_inner_any_of_spec.rb +46 -0
  45. data/spec/models/add_ad_keywords_request_keywords_inner_spec.rb +21 -0
  46. data/spec/models/add_ad_keywords_request_spec.rb +54 -0
  47. data/spec/models/create_standalone_ad_request_spec.rb +6 -0
  48. data/spec/models/keyword_entry_spec.rb +32 -0
  49. data/spec/models/list_campaign_negative_keywords200_response_keywords_inner_spec.rb +52 -0
  50. data/spec/models/list_campaign_negative_keywords200_response_spec.rb +36 -0
  51. data/spec/models/remove_ad_keyword200_response_spec.rb +42 -0
  52. data/spec/models/replace_campaign_negative_keywords200_response_spec.rb +48 -0
  53. data/spec/models/replace_campaign_negative_keywords_request_spec.rb +46 -0
  54. data/spec/models/update_ad_keyword200_response_spec.rb +36 -0
  55. data/spec/models/{update_ad_status_request_spec.rb → update_ad_keyword_request_spec.rb} +6 -6
  56. data/zernio-sdk-0.0.857.gem +0 -0
  57. metadata +58 -10
  58. data/zernio-sdk-0.0.856.gem +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8de27aa225cf1072a71925bdd11e8c2060b5ce9d26491a2368a7e2b5b4014504
4
- data.tar.gz: 36d212d52cf7bf9eb6f3f1b204861b10910d8205204b54bea22e266bab5e2ec4
3
+ metadata.gz: 7ac6293997f8522188b2568db8a696b1cfce99c6e86271759ab4005ef5d4f08a
4
+ data.tar.gz: e4a95ce4e0d240f50a9d9fa86d5966401e2dc0e2f7af80890c252fbc89ef7dc5
5
5
  SHA512:
6
- metadata.gz: bcdc77dec797fcd7934afd3cd797092f0f4fe51c6917f821aae3192bcb8024480483a54427ae5d3914f0401c16dd15b7a250491ab9967804311d396bcf5ee472
7
- data.tar.gz: 9169d3d94cf271c2dc58a862f8ac6bdff90479448511a6c7ac6d0d14a7f025e5b3cc42cedc9b8d4a046c832a0d4aff1771ebe1670d0c7fcfc658409ff576958e
6
+ metadata.gz: 55e9960c1de205b4e971de8063a8e5f036b9418d6c3d31f42eacc6a3e9238f72ac96991abf036ae6c119d86ba7fff458e598cef3d75628ec1bd25f7bc6b7a530
7
+ data.tar.gz: c9216c428f3c0f28b02aab6320d7c91da4773b4a6c9c63ab7d47dc14d6ccf1b204938ec509d2f477936b9d32b613a6f9adf119ceee08556413323f7b051bf24a
data/README.md CHANGED
@@ -133,6 +133,7 @@ Class | Method | HTTP request | Description
133
133
  *Zernio::AdAudiencesApi* | [**list_ad_audiences**](docs/AdAudiencesApi.md#list_ad_audiences) | **GET** /v1/ads/audiences | List custom audiences
134
134
  *Zernio::AdAudiencesApi* | [**replace_ad_audience_companies**](docs/AdAudiencesApi.md#replace_ad_audience_companies) | **POST** /v1/ads/audiences/{audienceId}/companies | Replace audience companies
135
135
  *Zernio::AdAudiencesApi* | [**update_ad_audience**](docs/AdAudiencesApi.md#update_ad_audience) | **PUT** /v1/ads/audiences/{audienceId} | Update an audience
136
+ *Zernio::AdCampaignsApi* | [**add_ad_keywords**](docs/AdCampaignsApi.md#add_ad_keywords) | **POST** /v1/ads/keywords | Add Search keywords to an ad group
136
137
  *Zernio::AdCampaignsApi* | [**attach_campaign_assets**](docs/AdCampaignsApi.md#attach_campaign_assets) | **POST** /v1/ads/campaigns/{campaignId}/assets | Attach extension assets to a Google Search campaign
137
138
  *Zernio::AdCampaignsApi* | [**boost_post**](docs/AdCampaignsApi.md#boost_post) | **POST** /v1/ads/boost | Boost post as ad
138
139
  *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
@@ -151,9 +152,13 @@ Class | Method | HTTP request | Description
151
152
  *Zernio::AdCampaignsApi* | [**list_ad_campaigns**](docs/AdCampaignsApi.md#list_ad_campaigns) | **GET** /v1/ads/campaigns | List campaigns
152
153
  *Zernio::AdCampaignsApi* | [**list_ad_keywords**](docs/AdCampaignsApi.md#list_ad_keywords) | **GET** /v1/ads/keywords | List Search keywords
153
154
  *Zernio::AdCampaignsApi* | [**list_ads**](docs/AdCampaignsApi.md#list_ads) | **GET** /v1/ads | List ads
155
+ *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
156
+ *Zernio::AdCampaignsApi* | [**remove_ad_keyword**](docs/AdCampaignsApi.md#remove_ad_keyword) | **DELETE** /v1/ads/keywords/{keywordId} | Remove a Search keyword
157
+ *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
154
158
  *Zernio::AdCampaignsApi* | [**update_ad**](docs/AdCampaignsApi.md#update_ad) | **PUT** /v1/ads/{adId} | Update ad
155
159
  *Zernio::AdCampaignsApi* | [**update_ad_campaign**](docs/AdCampaignsApi.md#update_ad_campaign) | **PUT** /v1/ads/campaigns/{campaignId} | Update a campaign
156
160
  *Zernio::AdCampaignsApi* | [**update_ad_campaign_status**](docs/AdCampaignsApi.md#update_ad_campaign_status) | **PUT** /v1/ads/campaigns/{campaignId}/status | Pause or resume a campaign
161
+ *Zernio::AdCampaignsApi* | [**update_ad_keyword**](docs/AdCampaignsApi.md#update_ad_keyword) | **PATCH** /v1/ads/keywords/{keywordId} | Pause or enable a Search keyword
157
162
  *Zernio::AdCampaignsApi* | [**update_ad_set**](docs/AdCampaignsApi.md#update_ad_set) | **PUT** /v1/ads/ad-sets/{adSetId} | Update an ad set
158
163
  *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
159
164
  *Zernio::AdCampaignsApi* | [**update_ad_status**](docs/AdCampaignsApi.md#update_ad_status) | **PUT** /v1/ads/{adId}/status | Pause or resume a single ad
@@ -698,6 +703,8 @@ Class | Method | HTTP request | Description
698
703
  - [Zernio::AdDailyMetrics](docs/AdDailyMetrics.md)
699
704
  - [Zernio::AdEngagementCounts](docs/AdEngagementCounts.md)
700
705
  - [Zernio::AdFunnelCounts](docs/AdFunnelCounts.md)
706
+ - [Zernio::AdKeyword](docs/AdKeyword.md)
707
+ - [Zernio::AdKeywordMetrics](docs/AdKeywordMetrics.md)
701
708
  - [Zernio::AdMetrics](docs/AdMetrics.md)
702
709
  - [Zernio::AdPromotedObject](docs/AdPromotedObject.md)
703
710
  - [Zernio::AdReviewStatus](docs/AdReviewStatus.md)
@@ -713,6 +720,10 @@ Class | Method | HTTP request | Description
713
720
  - [Zernio::AdTreeCampaignOptimizationGoal](docs/AdTreeCampaignOptimizationGoal.md)
714
721
  - [Zernio::AdTreeCampaignPromotedObject](docs/AdTreeCampaignPromotedObject.md)
715
722
  - [Zernio::AdTreeResponse](docs/AdTreeResponse.md)
723
+ - [Zernio::AddAdKeywords201Response](docs/AddAdKeywords201Response.md)
724
+ - [Zernio::AddAdKeywordsRequest](docs/AddAdKeywordsRequest.md)
725
+ - [Zernio::AddAdKeywordsRequestKeywordsInner](docs/AddAdKeywordsRequestKeywordsInner.md)
726
+ - [Zernio::AddAdKeywordsRequestKeywordsInnerAnyOf](docs/AddAdKeywordsRequestKeywordsInnerAnyOf.md)
716
727
  - [Zernio::AddBroadcastRecipients200Response](docs/AddBroadcastRecipients200Response.md)
717
728
  - [Zernio::AddBroadcastRecipientsRequest](docs/AddBroadcastRecipientsRequest.md)
718
729
  - [Zernio::AddConversionAssociations200Response](docs/AddConversionAssociations200Response.md)
@@ -1535,6 +1546,7 @@ Class | Method | HTTP request | Description
1535
1546
  - [Zernio::InstagramPlatformDataAudioConfiguration](docs/InstagramPlatformDataAudioConfiguration.md)
1536
1547
  - [Zernio::InstagramPlatformDataTrialParams](docs/InstagramPlatformDataTrialParams.md)
1537
1548
  - [Zernio::InstagramPlatformDataUserTagsInner](docs/InstagramPlatformDataUserTagsInner.md)
1549
+ - [Zernio::KeywordEntry](docs/KeywordEntry.md)
1538
1550
  - [Zernio::LikeInboxComment200Response](docs/LikeInboxComment200Response.md)
1539
1551
  - [Zernio::LikeInboxCommentRequest](docs/LikeInboxCommentRequest.md)
1540
1552
  - [Zernio::LikePost200Response](docs/LikePost200Response.md)
@@ -1584,7 +1596,6 @@ Class | Method | HTTP request | Description
1584
1596
  - [Zernio::ListAdCreatives200Response](docs/ListAdCreatives200Response.md)
1585
1597
  - [Zernio::ListAdImages200Response](docs/ListAdImages200Response.md)
1586
1598
  - [Zernio::ListAdKeywords200Response](docs/ListAdKeywords200Response.md)
1587
- - [Zernio::ListAdKeywords200ResponseKeywordsInner](docs/ListAdKeywords200ResponseKeywordsInner.md)
1588
1599
  - [Zernio::ListAdLabels200Response](docs/ListAdLabels200Response.md)
1589
1600
  - [Zernio::ListAdStudies200Response](docs/ListAdStudies200Response.md)
1590
1601
  - [Zernio::ListAdVideos200Response](docs/ListAdVideos200Response.md)
@@ -1600,6 +1611,8 @@ Class | Method | HTTP request | Description
1600
1611
  - [Zernio::ListBroadcasts200ResponseBroadcastsInner](docs/ListBroadcasts200ResponseBroadcastsInner.md)
1601
1612
  - [Zernio::ListCalls200Response](docs/ListCalls200Response.md)
1602
1613
  - [Zernio::ListCalls200ResponseCallsInner](docs/ListCalls200ResponseCallsInner.md)
1614
+ - [Zernio::ListCampaignNegativeKeywords200Response](docs/ListCampaignNegativeKeywords200Response.md)
1615
+ - [Zernio::ListCampaignNegativeKeywords200ResponseKeywordsInner](docs/ListCampaignNegativeKeywords200ResponseKeywordsInner.md)
1603
1616
  - [Zernio::ListCommentAutomationLogs200Response](docs/ListCommentAutomationLogs200Response.md)
1604
1617
  - [Zernio::ListCommentAutomationLogs200ResponseMisses](docs/ListCommentAutomationLogs200ResponseMisses.md)
1605
1618
  - [Zernio::ListCommentAutomationLogs200ResponseMissesSamplesInner](docs/ListCommentAutomationLogs200ResponseMissesSamplesInner.md)
@@ -1854,6 +1867,7 @@ Class | Method | HTTP request | Description
1854
1867
  - [Zernio::RemediatePhoneNumberRequest](docs/RemediatePhoneNumberRequest.md)
1855
1868
  - [Zernio::RemediatePhoneNumberRequestDocumentsInner](docs/RemediatePhoneNumberRequestDocumentsInner.md)
1856
1869
  - [Zernio::RemediatePhoneNumberRequestDocumentsInnerOneOf](docs/RemediatePhoneNumberRequestDocumentsInnerOneOf.md)
1870
+ - [Zernio::RemoveAdKeyword200Response](docs/RemoveAdKeyword200Response.md)
1857
1871
  - [Zernio::RemoveBookmark200Response](docs/RemoveBookmark200Response.md)
1858
1872
  - [Zernio::RemoveConversionAssociations200Response](docs/RemoveConversionAssociations200Response.md)
1859
1873
  - [Zernio::RemoveDiscordMemberRole200Response](docs/RemoveDiscordMemberRole200Response.md)
@@ -1862,6 +1876,8 @@ Class | Method | HTTP request | Description
1862
1876
  - [Zernio::ReplaceAdAudienceCompanies200Response](docs/ReplaceAdAudienceCompanies200Response.md)
1863
1877
  - [Zernio::ReplaceAdAudienceCompaniesRequest](docs/ReplaceAdAudienceCompaniesRequest.md)
1864
1878
  - [Zernio::ReplaceAdAudienceCompaniesRequestCompaniesInner](docs/ReplaceAdAudienceCompaniesRequestCompaniesInner.md)
1879
+ - [Zernio::ReplaceCampaignNegativeKeywords200Response](docs/ReplaceCampaignNegativeKeywords200Response.md)
1880
+ - [Zernio::ReplaceCampaignNegativeKeywordsRequest](docs/ReplaceCampaignNegativeKeywordsRequest.md)
1865
1881
  - [Zernio::ReplyToGoogleBusinessReview200Response](docs/ReplyToGoogleBusinessReview200Response.md)
1866
1882
  - [Zernio::ReplyToGoogleBusinessReviewRequest](docs/ReplyToGoogleBusinessReviewRequest.md)
1867
1883
  - [Zernio::ReplyToInboxPost200Response](docs/ReplyToInboxPost200Response.md)
@@ -2115,6 +2131,8 @@ Class | Method | HTTP request | Description
2115
2131
  - [Zernio::UpdateAdCampaignStatusRequest](docs/UpdateAdCampaignStatusRequest.md)
2116
2132
  - [Zernio::UpdateAdCreative200Response](docs/UpdateAdCreative200Response.md)
2117
2133
  - [Zernio::UpdateAdCreativeRequest](docs/UpdateAdCreativeRequest.md)
2134
+ - [Zernio::UpdateAdKeyword200Response](docs/UpdateAdKeyword200Response.md)
2135
+ - [Zernio::UpdateAdKeywordRequest](docs/UpdateAdKeywordRequest.md)
2118
2136
  - [Zernio::UpdateAdRequest](docs/UpdateAdRequest.md)
2119
2137
  - [Zernio::UpdateAdRequestBudget](docs/UpdateAdRequestBudget.md)
2120
2138
  - [Zernio::UpdateAdRequestCreative](docs/UpdateAdRequestCreative.md)
@@ -2129,7 +2147,6 @@ Class | Method | HTTP request | Description
2129
2147
  - [Zernio::UpdateAdSetRequestPlatformSpecificDataPromotedObject](docs/UpdateAdSetRequestPlatformSpecificDataPromotedObject.md)
2130
2148
  - [Zernio::UpdateAdSetStatus200Response](docs/UpdateAdSetStatus200Response.md)
2131
2149
  - [Zernio::UpdateAdStatus200Response](docs/UpdateAdStatus200Response.md)
2132
- - [Zernio::UpdateAdStatusRequest](docs/UpdateAdStatusRequest.md)
2133
2150
  - [Zernio::UpdateAdTrackingTagsRequest](docs/UpdateAdTrackingTagsRequest.md)
2134
2151
  - [Zernio::UpdateAdTrackingTagsRequestCreative](docs/UpdateAdTrackingTagsRequestCreative.md)
2135
2152
  - [Zernio::UpdateAdTrackingTagsRequestUrlTagsInner](docs/UpdateAdTrackingTagsRequestUrlTagsInner.md)
@@ -4,6 +4,7 @@ All URIs are relative to *https://zernio.com/api*
4
4
 
5
5
  | Method | HTTP request | Description |
6
6
  | ------ | ------------ | ----------- |
7
+ | [**add_ad_keywords**](AdCampaignsApi.md#add_ad_keywords) | **POST** /v1/ads/keywords | Add Search keywords to an ad group |
7
8
  | [**attach_campaign_assets**](AdCampaignsApi.md#attach_campaign_assets) | **POST** /v1/ads/campaigns/{campaignId}/assets | Attach extension assets to a Google Search campaign |
8
9
  | [**boost_post**](AdCampaignsApi.md#boost_post) | **POST** /v1/ads/boost | Boost post as ad |
9
10
  | [**bulk_update_ad_campaign_status**](AdCampaignsApi.md#bulk_update_ad_campaign_status) | **POST** /v1/ads/campaigns/bulk-status | Pause or resume many campaigns |
@@ -22,14 +23,87 @@ All URIs are relative to *https://zernio.com/api*
22
23
  | [**list_ad_campaigns**](AdCampaignsApi.md#list_ad_campaigns) | **GET** /v1/ads/campaigns | List campaigns |
23
24
  | [**list_ad_keywords**](AdCampaignsApi.md#list_ad_keywords) | **GET** /v1/ads/keywords | List Search keywords |
24
25
  | [**list_ads**](AdCampaignsApi.md#list_ads) | **GET** /v1/ads | List ads |
26
+ | [**list_campaign_negative_keywords**](AdCampaignsApi.md#list_campaign_negative_keywords) | **GET** /v1/ads/campaigns/{campaignId}/negative-keywords | List campaign-level negative keywords |
27
+ | [**remove_ad_keyword**](AdCampaignsApi.md#remove_ad_keyword) | **DELETE** /v1/ads/keywords/{keywordId} | Remove a Search keyword |
28
+ | [**replace_campaign_negative_keywords**](AdCampaignsApi.md#replace_campaign_negative_keywords) | **PUT** /v1/ads/campaigns/{campaignId}/negative-keywords | Replace campaign-level negative keywords |
25
29
  | [**update_ad**](AdCampaignsApi.md#update_ad) | **PUT** /v1/ads/{adId} | Update ad |
26
30
  | [**update_ad_campaign**](AdCampaignsApi.md#update_ad_campaign) | **PUT** /v1/ads/campaigns/{campaignId} | Update a campaign |
27
31
  | [**update_ad_campaign_status**](AdCampaignsApi.md#update_ad_campaign_status) | **PUT** /v1/ads/campaigns/{campaignId}/status | Pause or resume a campaign |
32
+ | [**update_ad_keyword**](AdCampaignsApi.md#update_ad_keyword) | **PATCH** /v1/ads/keywords/{keywordId} | Pause or enable a Search keyword |
28
33
  | [**update_ad_set**](AdCampaignsApi.md#update_ad_set) | **PUT** /v1/ads/ad-sets/{adSetId} | Update an ad set |
29
34
  | [**update_ad_set_status**](AdCampaignsApi.md#update_ad_set_status) | **PUT** /v1/ads/ad-sets/{adSetId}/status | Pause or resume a single ad set |
30
35
  | [**update_ad_status**](AdCampaignsApi.md#update_ad_status) | **PUT** /v1/ads/{adId}/status | Pause or resume a single ad |
31
36
 
32
37
 
38
+ ## add_ad_keywords
39
+
40
+ > <AddAdKeywords201Response> add_ad_keywords(add_ad_keywords_request)
41
+
42
+ Add Search keywords to an ad group
43
+
44
+ Adds one or more keyword criteria to an existing Google Search ad group, without touching the keywords already there (unlike the whole-set diff on `PUT /v1/ads/{adId}`, `keywords`/`negativeKeywords` in `platformSpecificData`, which replaces the set). Set `negative: true` to add ad-group-level negatives instead of positive keywords.
45
+
46
+ ### Examples
47
+
48
+ ```ruby
49
+ require 'time'
50
+ require 'zernio-sdk'
51
+ # setup authorization
52
+ Zernio.configure do |config|
53
+ # Configure Bearer authorization (JWT): bearerAuth
54
+ config.access_token = 'YOUR_BEARER_TOKEN'
55
+ end
56
+
57
+ api_instance = Zernio::AdCampaignsApi.new
58
+ add_ad_keywords_request = Zernio::AddAdKeywordsRequest.new({account_id: 'account_id_example', ad_set_id: 'ad_set_id_example', keywords: [Zernio::AddAdKeywordsRequestKeywordsInner.new({text: 'text_example'})]}) # AddAdKeywordsRequest |
59
+
60
+ begin
61
+ # Add Search keywords to an ad group
62
+ result = api_instance.add_ad_keywords(add_ad_keywords_request)
63
+ p result
64
+ rescue Zernio::ApiError => e
65
+ puts "Error when calling AdCampaignsApi->add_ad_keywords: #{e}"
66
+ end
67
+ ```
68
+
69
+ #### Using the add_ad_keywords_with_http_info variant
70
+
71
+ This returns an Array which contains the response data, status code and headers.
72
+
73
+ > <Array(<AddAdKeywords201Response>, Integer, Hash)> add_ad_keywords_with_http_info(add_ad_keywords_request)
74
+
75
+ ```ruby
76
+ begin
77
+ # Add Search keywords to an ad group
78
+ data, status_code, headers = api_instance.add_ad_keywords_with_http_info(add_ad_keywords_request)
79
+ p status_code # => 2xx
80
+ p headers # => { ... }
81
+ p data # => <AddAdKeywords201Response>
82
+ rescue Zernio::ApiError => e
83
+ puts "Error when calling AdCampaignsApi->add_ad_keywords_with_http_info: #{e}"
84
+ end
85
+ ```
86
+
87
+ ### Parameters
88
+
89
+ | Name | Type | Description | Notes |
90
+ | ---- | ---- | ----------- | ----- |
91
+ | **add_ad_keywords_request** | [**AddAdKeywordsRequest**](AddAdKeywordsRequest.md) | | |
92
+
93
+ ### Return type
94
+
95
+ [**AddAdKeywords201Response**](AddAdKeywords201Response.md)
96
+
97
+ ### Authorization
98
+
99
+ [bearerAuth](../README.md#bearerAuth)
100
+
101
+ ### HTTP request headers
102
+
103
+ - **Content-Type**: application/json
104
+ - **Accept**: application/json
105
+
106
+
33
107
  ## attach_campaign_assets
34
108
 
35
109
  > <AttachCampaignAssets201Response> attach_campaign_assets(campaign_id, attach_campaign_assets_request)
@@ -1438,6 +1512,219 @@ end
1438
1512
  - **Accept**: application/json
1439
1513
 
1440
1514
 
1515
+ ## list_campaign_negative_keywords
1516
+
1517
+ > <ListCampaignNegativeKeywords200Response> list_campaign_negative_keywords(campaign_id, opts)
1518
+
1519
+ List campaign-level negative keywords
1520
+
1521
+ Returns the campaign-level negative keywords (`campaign_criterion.negative`), distinct from the ad-group-level negatives under `GET /v1/ads/keywords`. Read live from Google on every call (not synced to Postgres), and gated by the shared Google Ads operations budget like every other on-demand Google surface. The platform is always discovered from the campaign itself; a non-Google campaign returns 501 rather than 404, whether or not `platform` was passed.
1522
+
1523
+ ### Examples
1524
+
1525
+ ```ruby
1526
+ require 'time'
1527
+ require 'zernio-sdk'
1528
+ # setup authorization
1529
+ Zernio.configure do |config|
1530
+ # Configure Bearer authorization (JWT): bearerAuth
1531
+ config.access_token = 'YOUR_BEARER_TOKEN'
1532
+ end
1533
+
1534
+ api_instance = Zernio::AdCampaignsApi.new
1535
+ campaign_id = 'campaign_id_example' # String | Platform campaign ID
1536
+ opts = {
1537
+ platform: 'facebook' # String | Optional and NOT authoritative: the resolved campaign's own platform decides 200 vs 501, never this hint.
1538
+ }
1539
+
1540
+ begin
1541
+ # List campaign-level negative keywords
1542
+ result = api_instance.list_campaign_negative_keywords(campaign_id, opts)
1543
+ p result
1544
+ rescue Zernio::ApiError => e
1545
+ puts "Error when calling AdCampaignsApi->list_campaign_negative_keywords: #{e}"
1546
+ end
1547
+ ```
1548
+
1549
+ #### Using the list_campaign_negative_keywords_with_http_info variant
1550
+
1551
+ This returns an Array which contains the response data, status code and headers.
1552
+
1553
+ > <Array(<ListCampaignNegativeKeywords200Response>, Integer, Hash)> list_campaign_negative_keywords_with_http_info(campaign_id, opts)
1554
+
1555
+ ```ruby
1556
+ begin
1557
+ # List campaign-level negative keywords
1558
+ data, status_code, headers = api_instance.list_campaign_negative_keywords_with_http_info(campaign_id, opts)
1559
+ p status_code # => 2xx
1560
+ p headers # => { ... }
1561
+ p data # => <ListCampaignNegativeKeywords200Response>
1562
+ rescue Zernio::ApiError => e
1563
+ puts "Error when calling AdCampaignsApi->list_campaign_negative_keywords_with_http_info: #{e}"
1564
+ end
1565
+ ```
1566
+
1567
+ ### Parameters
1568
+
1569
+ | Name | Type | Description | Notes |
1570
+ | ---- | ---- | ----------- | ----- |
1571
+ | **campaign_id** | **String** | Platform campaign ID | |
1572
+ | **platform** | **String** | Optional and NOT authoritative: the resolved campaign&#39;s own platform decides 200 vs 501, never this hint. | [optional] |
1573
+
1574
+ ### Return type
1575
+
1576
+ [**ListCampaignNegativeKeywords200Response**](ListCampaignNegativeKeywords200Response.md)
1577
+
1578
+ ### Authorization
1579
+
1580
+ [bearerAuth](../README.md#bearerAuth)
1581
+
1582
+ ### HTTP request headers
1583
+
1584
+ - **Content-Type**: Not defined
1585
+ - **Accept**: application/json
1586
+
1587
+
1588
+ ## remove_ad_keyword
1589
+
1590
+ > <RemoveAdKeyword200Response> remove_ad_keyword(keyword_id)
1591
+
1592
+ Remove a Search keyword
1593
+
1594
+ Removes one keyword criterion (positive or negative) from its ad group (M.140).
1595
+
1596
+ ### Examples
1597
+
1598
+ ```ruby
1599
+ require 'time'
1600
+ require 'zernio-sdk'
1601
+ # setup authorization
1602
+ Zernio.configure do |config|
1603
+ # Configure Bearer authorization (JWT): bearerAuth
1604
+ config.access_token = 'YOUR_BEARER_TOKEN'
1605
+ end
1606
+
1607
+ api_instance = Zernio::AdCampaignsApi.new
1608
+ keyword_id = 'keyword_id_example' # String | Zernio keyword ID (not the Google criterion ID)
1609
+
1610
+ begin
1611
+ # Remove a Search keyword
1612
+ result = api_instance.remove_ad_keyword(keyword_id)
1613
+ p result
1614
+ rescue Zernio::ApiError => e
1615
+ puts "Error when calling AdCampaignsApi->remove_ad_keyword: #{e}"
1616
+ end
1617
+ ```
1618
+
1619
+ #### Using the remove_ad_keyword_with_http_info variant
1620
+
1621
+ This returns an Array which contains the response data, status code and headers.
1622
+
1623
+ > <Array(<RemoveAdKeyword200Response>, Integer, Hash)> remove_ad_keyword_with_http_info(keyword_id)
1624
+
1625
+ ```ruby
1626
+ begin
1627
+ # Remove a Search keyword
1628
+ data, status_code, headers = api_instance.remove_ad_keyword_with_http_info(keyword_id)
1629
+ p status_code # => 2xx
1630
+ p headers # => { ... }
1631
+ p data # => <RemoveAdKeyword200Response>
1632
+ rescue Zernio::ApiError => e
1633
+ puts "Error when calling AdCampaignsApi->remove_ad_keyword_with_http_info: #{e}"
1634
+ end
1635
+ ```
1636
+
1637
+ ### Parameters
1638
+
1639
+ | Name | Type | Description | Notes |
1640
+ | ---- | ---- | ----------- | ----- |
1641
+ | **keyword_id** | **String** | Zernio keyword ID (not the Google criterion ID) | |
1642
+
1643
+ ### Return type
1644
+
1645
+ [**RemoveAdKeyword200Response**](RemoveAdKeyword200Response.md)
1646
+
1647
+ ### Authorization
1648
+
1649
+ [bearerAuth](../README.md#bearerAuth)
1650
+
1651
+ ### HTTP request headers
1652
+
1653
+ - **Content-Type**: Not defined
1654
+ - **Accept**: application/json
1655
+
1656
+
1657
+ ## replace_campaign_negative_keywords
1658
+
1659
+ > <ReplaceCampaignNegativeKeywords200Response> replace_campaign_negative_keywords(campaign_id, replace_campaign_negative_keywords_request)
1660
+
1661
+ Replace campaign-level negative keywords
1662
+
1663
+ Replaces the FULL set of campaign-level negative keywords (C.270): the desired list is diffed against what Google already has, and the difference is applied as one `create`/`remove` mutate. Send an empty array to clear every campaign negative. The platform is always discovered from the campaign itself; a non-Google campaign returns 501 rather than 404, whether or not `platform` was sent.
1664
+
1665
+ ### Examples
1666
+
1667
+ ```ruby
1668
+ require 'time'
1669
+ require 'zernio-sdk'
1670
+ # setup authorization
1671
+ Zernio.configure do |config|
1672
+ # Configure Bearer authorization (JWT): bearerAuth
1673
+ config.access_token = 'YOUR_BEARER_TOKEN'
1674
+ end
1675
+
1676
+ api_instance = Zernio::AdCampaignsApi.new
1677
+ campaign_id = 'campaign_id_example' # String | Platform campaign ID
1678
+ replace_campaign_negative_keywords_request = Zernio::ReplaceCampaignNegativeKeywordsRequest.new({keywords: [Zernio::AddAdKeywordsRequestKeywordsInnerAnyOf.new({text: 'text_example'})]}) # ReplaceCampaignNegativeKeywordsRequest |
1679
+
1680
+ begin
1681
+ # Replace campaign-level negative keywords
1682
+ result = api_instance.replace_campaign_negative_keywords(campaign_id, replace_campaign_negative_keywords_request)
1683
+ p result
1684
+ rescue Zernio::ApiError => e
1685
+ puts "Error when calling AdCampaignsApi->replace_campaign_negative_keywords: #{e}"
1686
+ end
1687
+ ```
1688
+
1689
+ #### Using the replace_campaign_negative_keywords_with_http_info variant
1690
+
1691
+ This returns an Array which contains the response data, status code and headers.
1692
+
1693
+ > <Array(<ReplaceCampaignNegativeKeywords200Response>, Integer, Hash)> replace_campaign_negative_keywords_with_http_info(campaign_id, replace_campaign_negative_keywords_request)
1694
+
1695
+ ```ruby
1696
+ begin
1697
+ # Replace campaign-level negative keywords
1698
+ data, status_code, headers = api_instance.replace_campaign_negative_keywords_with_http_info(campaign_id, replace_campaign_negative_keywords_request)
1699
+ p status_code # => 2xx
1700
+ p headers # => { ... }
1701
+ p data # => <ReplaceCampaignNegativeKeywords200Response>
1702
+ rescue Zernio::ApiError => e
1703
+ puts "Error when calling AdCampaignsApi->replace_campaign_negative_keywords_with_http_info: #{e}"
1704
+ end
1705
+ ```
1706
+
1707
+ ### Parameters
1708
+
1709
+ | Name | Type | Description | Notes |
1710
+ | ---- | ---- | ----------- | ----- |
1711
+ | **campaign_id** | **String** | Platform campaign ID | |
1712
+ | **replace_campaign_negative_keywords_request** | [**ReplaceCampaignNegativeKeywordsRequest**](ReplaceCampaignNegativeKeywordsRequest.md) | | |
1713
+
1714
+ ### Return type
1715
+
1716
+ [**ReplaceCampaignNegativeKeywords200Response**](ReplaceCampaignNegativeKeywords200Response.md)
1717
+
1718
+ ### Authorization
1719
+
1720
+ [bearerAuth](../README.md#bearerAuth)
1721
+
1722
+ ### HTTP request headers
1723
+
1724
+ - **Content-Type**: application/json
1725
+ - **Accept**: application/json
1726
+
1727
+
1441
1728
  ## update_ad
1442
1729
 
1443
1730
  > <UpdateAd200Response> update_ad(ad_id, update_ad_request)
@@ -1651,6 +1938,77 @@ end
1651
1938
  - **Accept**: application/json
1652
1939
 
1653
1940
 
1941
+ ## update_ad_keyword
1942
+
1943
+ > <UpdateAdKeyword200Response> update_ad_keyword(keyword_id, update_ad_keyword_request)
1944
+
1945
+ Pause or enable a Search keyword
1946
+
1947
+ Changes `ad_group_criterion.status` for one keyword criterion (M.140). Negative keywords have no status on Google and cannot be paused or enabled.
1948
+
1949
+ ### Examples
1950
+
1951
+ ```ruby
1952
+ require 'time'
1953
+ require 'zernio-sdk'
1954
+ # setup authorization
1955
+ Zernio.configure do |config|
1956
+ # Configure Bearer authorization (JWT): bearerAuth
1957
+ config.access_token = 'YOUR_BEARER_TOKEN'
1958
+ end
1959
+
1960
+ api_instance = Zernio::AdCampaignsApi.new
1961
+ keyword_id = 'keyword_id_example' # String | Zernio keyword ID (not the Google criterion ID)
1962
+ update_ad_keyword_request = Zernio::UpdateAdKeywordRequest.new({status: 'active'}) # UpdateAdKeywordRequest |
1963
+
1964
+ begin
1965
+ # Pause or enable a Search keyword
1966
+ result = api_instance.update_ad_keyword(keyword_id, update_ad_keyword_request)
1967
+ p result
1968
+ rescue Zernio::ApiError => e
1969
+ puts "Error when calling AdCampaignsApi->update_ad_keyword: #{e}"
1970
+ end
1971
+ ```
1972
+
1973
+ #### Using the update_ad_keyword_with_http_info variant
1974
+
1975
+ This returns an Array which contains the response data, status code and headers.
1976
+
1977
+ > <Array(<UpdateAdKeyword200Response>, Integer, Hash)> update_ad_keyword_with_http_info(keyword_id, update_ad_keyword_request)
1978
+
1979
+ ```ruby
1980
+ begin
1981
+ # Pause or enable a Search keyword
1982
+ data, status_code, headers = api_instance.update_ad_keyword_with_http_info(keyword_id, update_ad_keyword_request)
1983
+ p status_code # => 2xx
1984
+ p headers # => { ... }
1985
+ p data # => <UpdateAdKeyword200Response>
1986
+ rescue Zernio::ApiError => e
1987
+ puts "Error when calling AdCampaignsApi->update_ad_keyword_with_http_info: #{e}"
1988
+ end
1989
+ ```
1990
+
1991
+ ### Parameters
1992
+
1993
+ | Name | Type | Description | Notes |
1994
+ | ---- | ---- | ----------- | ----- |
1995
+ | **keyword_id** | **String** | Zernio keyword ID (not the Google criterion ID) | |
1996
+ | **update_ad_keyword_request** | [**UpdateAdKeywordRequest**](UpdateAdKeywordRequest.md) | | |
1997
+
1998
+ ### Return type
1999
+
2000
+ [**UpdateAdKeyword200Response**](UpdateAdKeyword200Response.md)
2001
+
2002
+ ### Authorization
2003
+
2004
+ [bearerAuth](../README.md#bearerAuth)
2005
+
2006
+ ### HTTP request headers
2007
+
2008
+ - **Content-Type**: application/json
2009
+ - **Accept**: application/json
2010
+
2011
+
1654
2012
  ## update_ad_set
1655
2013
 
1656
2014
  > <UpdateAdSet200Response> update_ad_set(ad_set_id, update_ad_set_request)
@@ -1795,7 +2153,7 @@ end
1795
2153
 
1796
2154
  ## update_ad_status
1797
2155
 
1798
- > <UpdateAdStatus200Response> update_ad_status(ad_id, update_ad_status_request)
2156
+ > <UpdateAdStatus200Response> update_ad_status(ad_id, update_ad_keyword_request)
1799
2157
 
1800
2158
  Pause or resume a single ad
1801
2159
 
@@ -1814,11 +2172,11 @@ end
1814
2172
 
1815
2173
  api_instance = Zernio::AdCampaignsApi.new
1816
2174
  ad_id = 'ad_id_example' # String | Zernio `_id` (hex), Meta `platformAdId` (numeric), or one of the creative's effective story/media IDs.
1817
- update_ad_status_request = Zernio::UpdateAdStatusRequest.new({status: 'active'}) # UpdateAdStatusRequest |
2175
+ update_ad_keyword_request = Zernio::UpdateAdKeywordRequest.new({status: 'active'}) # UpdateAdKeywordRequest |
1818
2176
 
1819
2177
  begin
1820
2178
  # Pause or resume a single ad
1821
- result = api_instance.update_ad_status(ad_id, update_ad_status_request)
2179
+ result = api_instance.update_ad_status(ad_id, update_ad_keyword_request)
1822
2180
  p result
1823
2181
  rescue Zernio::ApiError => e
1824
2182
  puts "Error when calling AdCampaignsApi->update_ad_status: #{e}"
@@ -1829,12 +2187,12 @@ end
1829
2187
 
1830
2188
  This returns an Array which contains the response data, status code and headers.
1831
2189
 
1832
- > <Array(<UpdateAdStatus200Response>, Integer, Hash)> update_ad_status_with_http_info(ad_id, update_ad_status_request)
2190
+ > <Array(<UpdateAdStatus200Response>, Integer, Hash)> update_ad_status_with_http_info(ad_id, update_ad_keyword_request)
1833
2191
 
1834
2192
  ```ruby
1835
2193
  begin
1836
2194
  # Pause or resume a single ad
1837
- data, status_code, headers = api_instance.update_ad_status_with_http_info(ad_id, update_ad_status_request)
2195
+ data, status_code, headers = api_instance.update_ad_status_with_http_info(ad_id, update_ad_keyword_request)
1838
2196
  p status_code # => 2xx
1839
2197
  p headers # => { ... }
1840
2198
  p data # => <UpdateAdStatus200Response>
@@ -1848,7 +2206,7 @@ end
1848
2206
  | Name | Type | Description | Notes |
1849
2207
  | ---- | ---- | ----------- | ----- |
1850
2208
  | **ad_id** | **String** | Zernio &#x60;_id&#x60; (hex), Meta &#x60;platformAdId&#x60; (numeric), or one of the creative&#39;s effective story/media IDs. | |
1851
- | **update_ad_status_request** | [**UpdateAdStatusRequest**](UpdateAdStatusRequest.md) | | |
2209
+ | **update_ad_keyword_request** | [**UpdateAdKeywordRequest**](UpdateAdKeywordRequest.md) | | |
1852
2210
 
1853
2211
  ### Return type
1854
2212
 
@@ -1,4 +1,4 @@
1
- # Zernio::ListAdKeywords200ResponseKeywordsInner
1
+ # Zernio::AdKeyword
2
2
 
3
3
  ## Properties
4
4
 
@@ -19,14 +19,16 @@
19
19
  | **match_type** | **String** | | [optional] |
20
20
  | **status** | **String** | | [optional] |
21
21
  | **negative** | **Boolean** | | [optional] |
22
+ | **quality_score** | **Integer** | Google Quality Score, 1-10. Null when unrated. | [optional] |
22
23
  | **synced_at** | **Time** | | [optional] |
24
+ | **metrics** | [**AdKeywordMetrics**](AdKeywordMetrics.md) | | [optional] |
23
25
 
24
26
  ## Example
25
27
 
26
28
  ```ruby
27
29
  require 'zernio-sdk'
28
30
 
29
- instance = Zernio::ListAdKeywords200ResponseKeywordsInner.new(
31
+ instance = Zernio::AdKeyword.new(
30
32
  id: null,
31
33
  account_id: null,
32
34
  profile_id: null,
@@ -42,7 +44,9 @@ instance = Zernio::ListAdKeywords200ResponseKeywordsInner.new(
42
44
  match_type: null,
43
45
  status: null,
44
46
  negative: null,
45
- synced_at: null
47
+ quality_score: null,
48
+ synced_at: null,
49
+ metrics: null
46
50
  )
47
51
  ```
48
52
 
@@ -0,0 +1,30 @@
1
+ # Zernio::AdKeywordMetrics
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **window_days** | **Integer** | | [optional] |
8
+ | **clicks** | **Integer** | | [optional] |
9
+ | **impressions** | **Integer** | | [optional] |
10
+ | **cost** | **Float** | Account currency, not USD-normalized | [optional] |
11
+ | **conversions** | **Float** | | [optional] |
12
+ | **first_page_cpc** | **Float** | Account currency | [optional] |
13
+ | **first_position_cpc** | **Float** | Account currency | [optional] |
14
+
15
+ ## Example
16
+
17
+ ```ruby
18
+ require 'zernio-sdk'
19
+
20
+ instance = Zernio::AdKeywordMetrics.new(
21
+ window_days: null,
22
+ clicks: null,
23
+ impressions: null,
24
+ cost: null,
25
+ conversions: null,
26
+ first_page_cpc: null,
27
+ first_position_cpc: null
28
+ )
29
+ ```
30
+
@@ -0,0 +1,18 @@
1
+ # Zernio::AddAdKeywords201Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **keywords** | [**Array&lt;AdKeyword&gt;**](AdKeyword.md) | | [optional] |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'zernio-sdk'
13
+
14
+ instance = Zernio::AddAdKeywords201Response.new(
15
+ keywords: null
16
+ )
17
+ ```
18
+
@@ -0,0 +1,24 @@
1
+ # Zernio::AddAdKeywordsRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **account_id** | **String** | Social account ID (Google Ads) | |
8
+ | **ad_set_id** | **String** | Google ad group ID to add the keywords to | |
9
+ | **keywords** | [**Array&lt;AddAdKeywordsRequestKeywordsInner&gt;**](AddAdKeywordsRequestKeywordsInner.md) | | |
10
+ | **negative** | **Boolean** | Add as ad-group-level negatives instead of positive keywords | [optional][default to false] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'zernio-sdk'
16
+
17
+ instance = Zernio::AddAdKeywordsRequest.new(
18
+ account_id: null,
19
+ ad_set_id: null,
20
+ keywords: null,
21
+ negative: null
22
+ )
23
+ ```
24
+