google-adwords-api 0.10.0 → 0.11.0

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 (184) hide show
  1. data/ChangeLog +3 -0
  2. data/examples/v201306/misc/setup_oauth2.rb +4 -4
  3. data/examples/v201306/optimization/get_keyword_ideas.rb +1 -1
  4. data/examples/v201309/advanced_operations/add_site_links.rb +71 -9
  5. data/examples/v201309/advanced_operations/update_site_links.rb +194 -0
  6. data/examples/v201309/misc/setup_oauth2.rb +4 -4
  7. data/examples/v201309/optimization/get_keyword_ideas.rb +1 -1
  8. data/lib/adwords_api/api_config.rb +0 -88
  9. data/lib/adwords_api/version.rb +1 -1
  10. data/test/templates/v201306/basic_operations_get_campaigns.def +1 -1
  11. data/test/templates/v201306/misc_use_oauth2_jwt.def +1 -1
  12. data/test/templates/v201309/basic_operations_get_campaigns.def +1 -1
  13. data/test/templates/v201309/misc_use_oauth2_jwt.def +1 -1
  14. metadata +266 -429
  15. data/examples/v201302/account_management/create_account.rb +0 -95
  16. data/examples/v201302/account_management/get_account_alerts.rb +0 -122
  17. data/examples/v201302/account_management/get_account_changes.rb +0 -145
  18. data/examples/v201302/account_management/get_account_hierarchy.rb +0 -103
  19. data/examples/v201302/advanced_operations/add_ad_group_bid_modifier.rb +0 -105
  20. data/examples/v201302/advanced_operations/add_click_to_download_ad.rb +0 -137
  21. data/examples/v201302/advanced_operations/add_site_links.rb +0 -221
  22. data/examples/v201302/advanced_operations/create_and_attach_shared_keyword_set.rb +0 -147
  23. data/examples/v201302/advanced_operations/find_and_remove_criteria_from_shared_set.rb +0 -181
  24. data/examples/v201302/advanced_operations/get_ad_group_bid_modifiers.rb +0 -106
  25. data/examples/v201302/adwords_for_video/add_video_call_to_action.rb +0 -94
  26. data/examples/v201302/adwords_for_video/add_video_campaign.rb +0 -103
  27. data/examples/v201302/adwords_for_video/find_videos.rb +0 -92
  28. data/examples/v201302/adwords_for_video/get_keyword_criteria.rb +0 -101
  29. data/examples/v201302/adwords_for_video/get_targeting_groups.rb +0 -93
  30. data/examples/v201302/adwords_for_video/get_video_campaign_criteria.rb +0 -99
  31. data/examples/v201302/adwords_for_video/get_video_campaign_stats.rb +0 -126
  32. data/examples/v201302/adwords_for_video/get_video_campaigns.rb +0 -94
  33. data/examples/v201302/basic_operations/add_ad_groups.rb +0 -143
  34. data/examples/v201302/basic_operations/add_campaigns.rb +0 -162
  35. data/examples/v201302/basic_operations/add_keywords.rb +0 -116
  36. data/examples/v201302/basic_operations/add_text_ads.rb +0 -113
  37. data/examples/v201302/basic_operations/delete_ad.rb +0 -93
  38. data/examples/v201302/basic_operations/delete_ad_group.rb +0 -110
  39. data/examples/v201302/basic_operations/delete_campaign.rb +0 -111
  40. data/examples/v201302/basic_operations/delete_keyword.rb +0 -98
  41. data/examples/v201302/basic_operations/get_ad_groups.rb +0 -106
  42. data/examples/v201302/basic_operations/get_campaigns.rb +0 -101
  43. data/examples/v201302/basic_operations/get_campaigns_with_awql.rb +0 -93
  44. data/examples/v201302/basic_operations/get_keywords.rb +0 -112
  45. data/examples/v201302/basic_operations/get_text_ads.rb +0 -114
  46. data/examples/v201302/basic_operations/pause_ad.rb +0 -92
  47. data/examples/v201302/basic_operations/update_ad_group.rb +0 -89
  48. data/examples/v201302/basic_operations/update_campaign.rb +0 -90
  49. data/examples/v201302/basic_operations/update_keyword.rb +0 -110
  50. data/examples/v201302/campaign_management/add_experiment.rb +0 -166
  51. data/examples/v201302/campaign_management/add_keywords_in_bulk.rb +0 -158
  52. data/examples/v201302/campaign_management/add_location_extension.rb +0 -125
  53. data/examples/v201302/campaign_management/add_location_extension_override.rb +0 -91
  54. data/examples/v201302/campaign_management/get_all_disapproved_ads.rb +0 -101
  55. data/examples/v201302/campaign_management/get_all_disapproved_ads_with_awql.rb +0 -92
  56. data/examples/v201302/campaign_management/promote_experiment.rb +0 -85
  57. data/examples/v201302/campaign_management/set_ad_parameters.rb +0 -122
  58. data/examples/v201302/campaign_management/set_criterion_bid_modifier.rb +0 -110
  59. data/examples/v201302/campaign_management/validate_text_ad.rb +0 -114
  60. data/examples/v201302/error_handling/handle_captcha_challenge.rb +0 -93
  61. data/examples/v201302/error_handling/handle_partial_failures.rb +0 -134
  62. data/examples/v201302/error_handling/handle_policy_violation_error.rb +0 -145
  63. data/examples/v201302/error_handling/handle_two_factor_authorization_error.rb +0 -88
  64. data/examples/v201302/migration/set_campaign_enhanced.rb +0 -91
  65. data/examples/v201302/migration/upgrade_legacy_sitelinks.rb +0 -313
  66. data/examples/v201302/misc/get_all_images_and_videos.rb +0 -108
  67. data/examples/v201302/misc/setup_oauth2.rb +0 -88
  68. data/examples/v201302/misc/upload_image.rb +0 -97
  69. data/examples/v201302/misc/use_oauth2_jwt.rb +0 -93
  70. data/examples/v201302/optimization/estimate_keyword_traffic.rb +0 -137
  71. data/examples/v201302/optimization/get_keyword_bid_simulations.rb +0 -100
  72. data/examples/v201302/optimization/get_keyword_ideas.rb +0 -130
  73. data/examples/v201302/optimization/get_placement_ideas.rb +0 -112
  74. data/examples/v201302/remarketing/add_audience.rb +0 -123
  75. data/examples/v201302/remarketing/add_conversion_tracker.rb +0 -104
  76. data/examples/v201302/reporting/download_criteria_report.rb +0 -87
  77. data/examples/v201302/reporting/download_criteria_report_with_awql.rb +0 -86
  78. data/examples/v201302/reporting/get_campaign_stats.rb +0 -113
  79. data/examples/v201302/reporting/get_report_fields.rb +0 -79
  80. data/examples/v201302/reporting/parallel_report_download.rb +0 -171
  81. data/examples/v201302/targeting/add_campaign_targeting_criteria.rb +0 -123
  82. data/examples/v201302/targeting/add_demographic_targeting_criteria.rb +0 -116
  83. data/examples/v201302/targeting/get_campaign_targeting_criteria.rb +0 -110
  84. data/examples/v201302/targeting/get_targetable_languages_and_carriers.rb +0 -94
  85. data/examples/v201302/targeting/lookup_location.rb +0 -112
  86. data/examples/v201309/campaign_management/add_location_extension_override.rb +0 -91
  87. data/examples/v201309/reporting/get_campaign_stats.rb +0 -113
  88. data/lib/adwords_api/v201302/ad_extension_override_service.rb +0 -38
  89. data/lib/adwords_api/v201302/ad_extension_override_service_registry.rb +0 -46
  90. data/lib/adwords_api/v201302/ad_group_ad_service.rb +0 -42
  91. data/lib/adwords_api/v201302/ad_group_ad_service_registry.rb +0 -46
  92. data/lib/adwords_api/v201302/ad_group_bid_modifier_service.rb +0 -38
  93. data/lib/adwords_api/v201302/ad_group_bid_modifier_service_registry.rb +0 -46
  94. data/lib/adwords_api/v201302/ad_group_criterion_service.rb +0 -42
  95. data/lib/adwords_api/v201302/ad_group_criterion_service_registry.rb +0 -46
  96. data/lib/adwords_api/v201302/ad_group_feed_service.rb +0 -38
  97. data/lib/adwords_api/v201302/ad_group_feed_service_registry.rb +0 -47
  98. data/lib/adwords_api/v201302/ad_group_service.rb +0 -42
  99. data/lib/adwords_api/v201302/ad_group_service_registry.rb +0 -46
  100. data/lib/adwords_api/v201302/ad_param_service.rb +0 -38
  101. data/lib/adwords_api/v201302/ad_param_service_registry.rb +0 -46
  102. data/lib/adwords_api/v201302/alert_service.rb +0 -34
  103. data/lib/adwords_api/v201302/alert_service_registry.rb +0 -46
  104. data/lib/adwords_api/v201302/budget_order_service.rb +0 -42
  105. data/lib/adwords_api/v201302/budget_order_service_registry.rb +0 -46
  106. data/lib/adwords_api/v201302/budget_service.rb +0 -38
  107. data/lib/adwords_api/v201302/budget_service_registry.rb +0 -46
  108. data/lib/adwords_api/v201302/campaign_ad_extension_service.rb +0 -38
  109. data/lib/adwords_api/v201302/campaign_ad_extension_service_registry.rb +0 -46
  110. data/lib/adwords_api/v201302/campaign_criterion_service.rb +0 -42
  111. data/lib/adwords_api/v201302/campaign_criterion_service_registry.rb +0 -46
  112. data/lib/adwords_api/v201302/campaign_feed_service.rb +0 -38
  113. data/lib/adwords_api/v201302/campaign_feed_service_registry.rb +0 -46
  114. data/lib/adwords_api/v201302/campaign_service.rb +0 -42
  115. data/lib/adwords_api/v201302/campaign_service_registry.rb +0 -46
  116. data/lib/adwords_api/v201302/campaign_shared_set_service.rb +0 -38
  117. data/lib/adwords_api/v201302/campaign_shared_set_service_registry.rb +0 -47
  118. data/lib/adwords_api/v201302/constant_data_service.rb +0 -62
  119. data/lib/adwords_api/v201302/constant_data_service_registry.rb +0 -46
  120. data/lib/adwords_api/v201302/conversion_tracker_service.rb +0 -38
  121. data/lib/adwords_api/v201302/conversion_tracker_service_registry.rb +0 -46
  122. data/lib/adwords_api/v201302/customer_service.rb +0 -34
  123. data/lib/adwords_api/v201302/customer_service_registry.rb +0 -46
  124. data/lib/adwords_api/v201302/customer_sync_service.rb +0 -34
  125. data/lib/adwords_api/v201302/customer_sync_service_registry.rb +0 -47
  126. data/lib/adwords_api/v201302/data_service.rb +0 -38
  127. data/lib/adwords_api/v201302/data_service_registry.rb +0 -46
  128. data/lib/adwords_api/v201302/experiment_service.rb +0 -38
  129. data/lib/adwords_api/v201302/experiment_service_registry.rb +0 -46
  130. data/lib/adwords_api/v201302/feed_item_service.rb +0 -38
  131. data/lib/adwords_api/v201302/feed_item_service_registry.rb +0 -46
  132. data/lib/adwords_api/v201302/feed_mapping_service.rb +0 -38
  133. data/lib/adwords_api/v201302/feed_mapping_service_registry.rb +0 -46
  134. data/lib/adwords_api/v201302/feed_service.rb +0 -38
  135. data/lib/adwords_api/v201302/feed_service_registry.rb +0 -46
  136. data/lib/adwords_api/v201302/geo_location_service.rb +0 -34
  137. data/lib/adwords_api/v201302/geo_location_service_registry.rb +0 -46
  138. data/lib/adwords_api/v201302/location_criterion_service.rb +0 -34
  139. data/lib/adwords_api/v201302/location_criterion_service_registry.rb +0 -46
  140. data/lib/adwords_api/v201302/managed_customer_service.rb +0 -50
  141. data/lib/adwords_api/v201302/managed_customer_service_registry.rb +0 -46
  142. data/lib/adwords_api/v201302/media_service.rb +0 -38
  143. data/lib/adwords_api/v201302/media_service_registry.rb +0 -46
  144. data/lib/adwords_api/v201302/mutate_job_service.rb +0 -42
  145. data/lib/adwords_api/v201302/mutate_job_service_registry.rb +0 -46
  146. data/lib/adwords_api/v201302/report_definition_service.rb +0 -34
  147. data/lib/adwords_api/v201302/report_definition_service_registry.rb +0 -46
  148. data/lib/adwords_api/v201302/shared_criterion_service.rb +0 -38
  149. data/lib/adwords_api/v201302/shared_criterion_service_registry.rb +0 -47
  150. data/lib/adwords_api/v201302/shared_set_service.rb +0 -38
  151. data/lib/adwords_api/v201302/shared_set_service_registry.rb +0 -47
  152. data/lib/adwords_api/v201302/targeting_idea_service.rb +0 -38
  153. data/lib/adwords_api/v201302/targeting_idea_service_registry.rb +0 -46
  154. data/lib/adwords_api/v201302/traffic_estimator_service.rb +0 -34
  155. data/lib/adwords_api/v201302/traffic_estimator_service_registry.rb +0 -46
  156. data/lib/adwords_api/v201302/user_list_service.rb +0 -38
  157. data/lib/adwords_api/v201302/user_list_service_registry.rb +0 -46
  158. data/lib/adwords_api/v201302/video_ad_service.rb +0 -38
  159. data/lib/adwords_api/v201302/video_ad_service_registry.rb +0 -46
  160. data/lib/adwords_api/v201302/video_campaign_criterion_service.rb +0 -38
  161. data/lib/adwords_api/v201302/video_campaign_criterion_service_registry.rb +0 -47
  162. data/lib/adwords_api/v201302/video_campaign_service.rb +0 -38
  163. data/lib/adwords_api/v201302/video_campaign_service_registry.rb +0 -46
  164. data/lib/adwords_api/v201302/video_service.rb +0 -42
  165. data/lib/adwords_api/v201302/video_service_registry.rb +0 -46
  166. data/lib/adwords_api/v201302/video_targeting_group_criterion_service.rb +0 -38
  167. data/lib/adwords_api/v201302/video_targeting_group_criterion_service_registry.rb +0 -46
  168. data/lib/adwords_api/v201302/video_targeting_group_service.rb +0 -38
  169. data/lib/adwords_api/v201302/video_targeting_group_service_registry.rb +0 -46
  170. data/test/examples/v201302/test_account_management.rb +0 -50
  171. data/test/examples/v201302/test_advanced_operations.rb +0 -81
  172. data/test/examples/v201302/test_basic_operations.rb +0 -177
  173. data/test/examples/v201302/test_campaign_management.rb +0 -132
  174. data/test/examples/v201302/test_error_handling.rb +0 -63
  175. data/test/examples/v201302/test_migration.rb +0 -49
  176. data/test/examples/v201302/test_misc.rb +0 -39
  177. data/test/examples/v201302/test_optimization.rb +0 -63
  178. data/test/examples/v201302/test_remarketing.rb +0 -39
  179. data/test/examples/v201302/test_reporting.rb +0 -84
  180. data/test/examples/v201302/test_targeting.rb +0 -68
  181. data/test/examples/v201302/utils.rb +0 -267
  182. data/test/suite_exampletests_v201302.rb +0 -37
  183. data/test/templates/v201302/basic_operations_get_campaigns.def +0 -114
  184. data/test/templates/v201302/misc_use_oauth2_jwt.def +0 -131
@@ -1,147 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
- #
6
- # Copyright:: Copyright 2013, Google Inc. All Rights Reserved.
7
- #
8
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
- # implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- # This example creates a shared list of negative broad match keywords, it then
22
- # attaches them to a campaign.
23
- #
24
- # Note: Shared sets is a Beta feature.
25
- #
26
- # Tags: SharedSetService.mutate, CampaignSharedSetService.mutate
27
-
28
- require 'adwords_api'
29
- require 'date'
30
-
31
- def create_and_attach_shared_keyword_set(campaign_id)
32
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
- # when called without parameters.
34
- adwords = AdwordsApi::Api.new
35
-
36
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
- # the configuration file or provide your own logger:
38
- # adwords.logger = Logger.new('adwords_xml.log')
39
-
40
- shared_set_srv = adwords.service(:SharedSetService, API_VERSION)
41
- shared_criterion_srv = adwords.service(:SharedCriterionService, API_VERSION)
42
- campaign_shared_set_srv =
43
- adwords.service(:CampaignSharedSetService, API_VERSION)
44
-
45
- # Keywords to create a shared set of.
46
- keywords = ['mars cruise', 'mars hotels']
47
-
48
- # Create shared negative keyword set.
49
- shared_set = {
50
- :name => 'API Negative keyword list - %d' % (Time.new.to_f * 1000).to_i,
51
- :type => 'NEGATIVE_KEYWORDS'
52
- }
53
-
54
- # Add shared set.
55
- response = shared_set_srv.mutate([
56
- {:operator => 'ADD', :operand => shared_set}
57
- ])
58
-
59
- if response and response[:value]
60
- shared_set = response[:value].first
61
- shared_set_id = shared_set[:shared_set_id]
62
- puts "Shared set with ID %d and name '%s' was successfully added." %
63
- [shared_set_id, shared_set[:name]]
64
- else
65
- raise StandardError, 'No shared set was added'
66
- end
67
-
68
- # Add negative keywords to shared set.
69
- shared_criteria = keywords.map do |keyword|
70
- {
71
- :criterion => {
72
- :xsi_type => 'Keyword',
73
- :text => keyword,
74
- :match_type => 'BROAD'
75
- },
76
- :negative => true,
77
- :shared_set_id => shared_set_id
78
- }
79
- end
80
-
81
- operations = shared_criteria.map do |criterion|
82
- {:operator => 'ADD', :operand => criterion}
83
- end
84
-
85
- response = shared_criterion_srv.mutate(operations)
86
- if response and response[:value]
87
- response[:value].each do |shared_criterion|
88
- puts "Added shared criterion ID %d '%s' to shared set with ID %d." %
89
- [shared_criterion[:criterion][:id],
90
- shared_criterion[:criterion][:text],
91
- shared_criterion[:shared_set_id]]
92
- end
93
- else
94
- raise StandardError, 'No shared keyword was added'
95
- end
96
-
97
- # Attach the articles to the campaign.
98
- campaign_set = {
99
- :campaign_id => campaign_id,
100
- :shared_set_id => shared_set_id
101
- }
102
-
103
- response = campaign_shared_set_srv.mutate([
104
- {:operator => 'ADD', :operand => campaign_set}
105
- ])
106
- if response and response[:value]
107
- campaign_shared_set = response[:value].first
108
- puts 'Shared set ID %d was attached to campaign ID %d' %
109
- [campaign_shared_set[:shared_set_id], campaign_shared_set[:campaign_id]]
110
- else
111
- raise StandardError, 'No campaign shared set was added'
112
- end
113
- end
114
-
115
- if __FILE__ == $0
116
- API_VERSION = :v201302
117
-
118
- begin
119
- # Campaign ID to attach shared keyword set to.
120
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
121
-
122
- create_and_attach_shared_keyword_set(campaign_id)
123
-
124
- # Authorization error.
125
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
126
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
127
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
128
- "to retrieve and store OAuth2 tokens."
129
- puts "See this wiki page for more details:\n\n " +
130
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
131
-
132
- # HTTP errors.
133
- rescue AdsCommon::Errors::HttpError => e
134
- puts "HTTP Error: %s" % e
135
-
136
- # API errors.
137
- rescue AdwordsApi::Errors::ApiException => e
138
- puts "Message: %s" % e.message
139
- puts 'Errors:'
140
- e.errors.each_with_index do |error, index|
141
- puts "\tError [%d]:" % (index + 1)
142
- error.each do |field, value|
143
- puts "\t\t%s: %s" % [field, value]
144
- end
145
- end
146
- end
147
- end
@@ -1,181 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
- #
6
- # Copyright:: Copyright 2013, Google Inc. All Rights Reserved.
7
- #
8
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
- # implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- # This example demonstrates how to find shared sets, shared set criterions and
22
- # how to remove them.
23
- #
24
- # Note: Shared sets is a Beta feature.
25
- #
26
- # Tags: CampaignSharedSetService.get
27
- # Tags: SharedCriterionService.get, SharedCriterionService.mutate
28
-
29
- require 'adwords_api'
30
-
31
- def find_and_remove_criteria_from_shared_set(campaign_id)
32
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
- # when called without parameters.
34
- adwords = AdwordsApi::Api.new
35
-
36
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
- # the configuration file or provide your own logger:
38
- # adwords.logger = Logger.new('adwords_xml.log')
39
-
40
- campaign_shared_set_srv =
41
- adwords.service(:CampaignSharedSetService, API_VERSION)
42
- shared_criterion_srv = adwords.service(:SharedCriterionService, API_VERSION)
43
-
44
- shared_set_ids = []
45
- criterion_ids = []
46
-
47
- # First, retrieve all shared sets associated with the campaign.
48
-
49
- # Create selector for shared sets to:
50
- # - filter by campaign ID,
51
- # - filter by shared set type.
52
- selector = {
53
- :fields => ['SharedSetId', 'CampaignId', 'SharedSetName', 'SharedSetType',
54
- 'Status'],
55
- :predicates => [
56
- {:field => 'CampaignId', :operator => 'EQUALS', :values => [campaign_id]},
57
- {:field => 'SharedSetType', :operator => 'IN', :values =>
58
- ['NEGATIVE_KEYWORDS', 'NEGATIVE_PLACEMENTS']}
59
- ],
60
- :paging => {
61
- :start_index => 0,
62
- :number_results => PAGE_SIZE
63
- }
64
- }
65
-
66
- # Set initial values.
67
- offset, page = 0, {}
68
-
69
- begin
70
- page = campaign_shared_set_srv.get(selector)
71
- if page[:entries]
72
- page[:entries].each do |shared_set|
73
- puts "Campaign shared set ID %d and name '%s'" %
74
- [shared_set[:shared_set_id], shared_set[:shared_set_name]]
75
- shared_set_ids << shared_set[:shared_set_id]
76
- end
77
- # Increment values to request the next page.
78
- offset += PAGE_SIZE
79
- selector[:paging][:start_index] = offset
80
- end
81
- end while page[:total_num_entries] > offset
82
-
83
- # Next, Retrieve criterion IDs for all found shared sets.
84
- selector = {
85
- :fields => ['SharedSetId', 'Id', 'KeywordText', 'KeywordMatchType',
86
- 'PlacementUrl'],
87
- :predicates => [
88
- {:field => 'SharedSetId', :operator => 'IN', :values => shared_set_ids}
89
- ],
90
- :paging => {
91
- :start_index => 0,
92
- :number_results => PAGE_SIZE
93
- }
94
- }
95
-
96
- # Set initial values.
97
- offset, page = 0, {}
98
-
99
- begin
100
- page = shared_criterion_srv.get(selector)
101
- if page[:entries]
102
- page[:entries].each do |shared_criterion|
103
- if shared_criterion[:criterion][:type] == 'KEYWORD'
104
- puts "Shared negative keyword with ID %d and text '%s' was found." %
105
- [shared_criterion[:criterion][:id],
106
- shared_criterion[:criterion][:text]]
107
- elsif shared_criterion[:criterion][:type] == 'PLACEMENT'
108
- puts "Shared negative placement with ID %d and url '%s' was found." %
109
- [shared_criterion[:criterion][:id],
110
- shared_criterion[:criterion][:url]]
111
- else
112
- puts 'Shared criterion with ID %d was found.' %
113
- [shared_criterion[:criterion][:id]]
114
- end
115
- criterion_ids << {
116
- :shared_set_id => shared_criterion[:shared_set_id],
117
- :criterion_id => shared_criterion[:criterion][:id]
118
- }
119
- end
120
- # Increment values to request the next page.
121
- offset += PAGE_SIZE
122
- selector[:paging][:start_index] = offset
123
- end
124
- end while page[:total_num_entries] > offset
125
-
126
- # Finally, remove the criteria.
127
- operations = criterion_ids.map do |criterion|
128
- {
129
- :operator => 'REMOVE',
130
- :operand => {
131
- :criterion => {:id => criterion[:criterion_id]},
132
- :shared_set_id => criterion[:shared_set_id]
133
- }
134
- }
135
- end
136
-
137
- response = shared_criterion_srv.mutate(operations)
138
- if response and response[:value]
139
- response[:value].each do |criterion|
140
- puts "Criterion ID %d was successfully removed from shared set ID %d." %
141
- [criterion[:criterion][:id], criterion[:shared_set_id]]
142
- end
143
- else
144
- puts 'No shared criteria were removed.'
145
- end
146
- end
147
-
148
- if __FILE__ == $0
149
- API_VERSION = :v201302
150
- PAGE_SIZE = 500
151
-
152
- begin
153
- # ID of a campaign to remove shared criteria from.
154
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
155
-
156
- find_and_remove_criteria_from_shared_set(campaign_id)
157
-
158
- # Authorization error.
159
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
160
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
161
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
162
- "to retrieve and store OAuth2 tokens."
163
- puts "See this wiki page for more details:\n\n " +
164
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
165
-
166
- # HTTP errors.
167
- rescue AdsCommon::Errors::HttpError => e
168
- puts "HTTP Error: %s" % e
169
-
170
- # API errors.
171
- rescue AdwordsApi::Errors::ApiException => e
172
- puts "Message: %s" % e.message
173
- puts 'Errors:'
174
- e.errors.each_with_index do |error, index|
175
- puts "\tError [%d]:" % (index + 1)
176
- error.each do |field, value|
177
- puts "\t\t%s: %s" % [field, value]
178
- end
179
- end
180
- end
181
- end
@@ -1,106 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
- #
6
- # Copyright:: Copyright 2013, Google Inc. All Rights Reserved.
7
- #
8
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
- # implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- # This example illustrates how to retrieve ad group level bid modifiers for a
22
- # campaign.
23
- #
24
- # Tags: AdGroupBidModifierService.get
25
-
26
- require 'adwords_api'
27
-
28
- def get_ad_group_bid_modifiers(campaign_id)
29
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
30
- # when called without parameters.
31
- adwords = AdwordsApi::Api.new
32
-
33
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
- # the configuration file or provide your own logger:
35
- # adwords.logger = Logger.new('adwords_xml.log')
36
-
37
- bid_modifier_srv = adwords.service(:AdGroupBidModifierService, API_VERSION)
38
-
39
- # Get all ad group bid modifiers for the campaign.
40
- selector = {
41
- :fields => ['CampaignId', 'AdGroupId', 'Id', 'BidModifier'],
42
- :predicates => [
43
- {:field => 'CampaignId', :operator => 'EQUALS', :values => [campaign_id]}
44
- ],
45
- :paging => {
46
- :start_index => 0,
47
- :number_results => PAGE_SIZE
48
- }
49
- }
50
-
51
- # Set initial values.
52
- offset, page = 0, {}
53
-
54
- begin
55
- page = bid_modifier_srv.get(selector)
56
- if page[:entries]
57
- page[:entries].each do |modifier|
58
- value = modifier[:bid_modifier] || 'unset'
59
- puts ('Campaign ID %d, AdGroup ID %d, Criterion ID %d has ad group ' +
60
- 'level modifier: %s') %
61
- [modifier[:campaign_id], modifier[:ad_group_id],
62
- modifier[:criterion][:id], value]
63
- end
64
- # Increment values to request the next page.
65
- offset += PAGE_SIZE
66
- selector[:paging][:start_index] = offset
67
- else
68
- puts 'No ad group level bid overrides returned.'
69
- end
70
- end while page[:total_num_entries] > offset
71
- end
72
-
73
- if __FILE__ == $0
74
- API_VERSION = :v201302
75
- PAGE_SIZE = 500
76
-
77
- begin
78
- # ID of a campaign to pull overrides for.
79
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
80
-
81
- get_ad_group_bid_modifiers(campaign_id)
82
-
83
- # Authorization error.
84
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
85
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
86
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
87
- "to retrieve and store OAuth2 tokens."
88
- puts "See this wiki page for more details:\n\n " +
89
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
90
-
91
- # HTTP errors.
92
- rescue AdsCommon::Errors::HttpError => e
93
- puts "HTTP Error: %s" % e
94
-
95
- # API errors.
96
- rescue AdwordsApi::Errors::ApiException => e
97
- puts "Message: %s" % e.message
98
- puts 'Errors:'
99
- e.errors.each_with_index do |error, index|
100
- puts "\tError [%d]:" % (index + 1)
101
- error.each do |field, value|
102
- puts "\t\t%s: %s" % [field, value]
103
- end
104
- end
105
- end
106
- end
@@ -1,94 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
- #
6
- # Copyright:: Copyright 2013, Google Inc. All Rights Reserved.
7
- #
8
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
- # implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- # This example illustrates how to create a video call to action overlay.
22
- #
23
- # Note: AdWords for Video API is a Beta feature.
24
- #
25
- # Tags: VideoService.mutateCallToAction
26
-
27
- require 'adwords_api'
28
-
29
- def add_video_call_to_action(video_id)
30
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
31
- # when called without parameters.
32
- adwords = AdwordsApi::Api.new
33
-
34
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
35
- # the configuration file or provide your own logger:
36
- # adwords.logger = Logger.new('adwords_xml.log')
37
-
38
- video_srv = adwords.service(:VideoService, API_VERSION)
39
-
40
- # Create VideoCallToAction locally.
41
- video_call_to_action = {
42
- :id => video_id,
43
- :call_to_action => {
44
- :creative => {
45
- :headline => 'Mars cruises',
46
- :description_line1 => 'Astonishing views',
47
- :description_line2 => 'Mild climate',
48
- :display_url => 'www.example.com/mars',
49
- :destination_url => 'www.example.com/mars'
50
- }
51
- }
52
- }
53
-
54
- # Run a mutate request with ADD operator.
55
- response = video_srv.mutate_call_to_action([
56
- {:operator => 'SET', :operand => video_call_to_action}
57
- ])
58
-
59
- if response and response[:value]
60
- response[:value].each do |video_call_to_action|
61
- puts "CallToAction overlay was added to video ID '%s', headline '%s'." %
62
- [video_call_to_action[:id],
63
- video_call_to_action[:call_to_action][:creative][:headline]]
64
- end
65
- else
66
- raise new StandardError, 'No call to action overlays were added.'
67
- end
68
- end
69
-
70
- if __FILE__ == $0
71
- API_VERSION = :v201302
72
-
73
- begin
74
- # Video ID to add call to action to.
75
- video_id = 'INSERT_VIDEO_ID_HERE'
76
-
77
- add_video_call_to_action(video_id)
78
-
79
- # HTTP errors.
80
- rescue AdsCommon::Errors::HttpError => e
81
- puts "HTTP Error: %s" % e
82
-
83
- # API errors.
84
- rescue AdwordsApi::Errors::ApiException => e
85
- puts "Message: %s" % e.message
86
- puts 'Errors:'
87
- e.errors.each_with_index do |error, index|
88
- puts "\tError [%d]:" % (index + 1)
89
- error.each do |field, value|
90
- puts "\t\t%s: %s" % [field, value]
91
- end
92
- end
93
- end
94
- end