google-adwords-api 0.8.2 → 0.9.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 (150) hide show
  1. data/ChangeLog +6 -0
  2. data/README +3 -3
  3. data/examples/{v201206/basic_operations/delete_ad_group.rb → v201209/adwords_for_video/add_video_campaign.rb} +41 -40
  4. data/examples/{v201206/basic_operations/pause_ad.rb → v201209/adwords_for_video/find_videos.rb} +33 -25
  5. data/examples/{v201206/basic_operations/get_keywords.rb → v201209/adwords_for_video/get_keyword_criteria.rb} +24 -27
  6. data/examples/{v201206/basic_operations/get_campaigns_with_awql.rb → v201209/adwords_for_video/get_targeting_groups.rb} +26 -18
  7. data/examples/{v201206/basic_operations/get_ad_groups.rb → v201209/adwords_for_video/get_video_campaign_criteria.rb} +22 -21
  8. data/examples/v201209/adwords_for_video/get_video_campaign_stats.rb +126 -0
  9. data/examples/{v201206/basic_operations/get_campaigns.rb → v201209/adwords_for_video/get_video_campaigns.rb} +16 -15
  10. data/examples/v201302/advanced_operations/create_and_attach_shared_keyword_set.rb +139 -0
  11. data/examples/v201302/advanced_operations/find_and_remove_criteria_from_shared_set.rb +173 -0
  12. data/lib/adwords_api/api_config.rb +17 -59
  13. data/lib/adwords_api/report_utils.rb +3 -19
  14. data/lib/adwords_api/{v201206/ad_param_service.rb → v201209/video_ad_service.rb} +8 -8
  15. data/lib/adwords_api/v201209/video_ad_service_registry.rb +46 -0
  16. data/lib/adwords_api/{v201206/campaign_ad_extension_service.rb → v201209/video_campaign_criterion_service.rb} +8 -8
  17. data/lib/adwords_api/v201209/video_campaign_criterion_service_registry.rb +47 -0
  18. data/lib/adwords_api/{v201206/bulk_mutate_job_service.rb → v201209/video_campaign_service.rb} +8 -8
  19. data/lib/adwords_api/v201209/video_campaign_service_registry.rb +46 -0
  20. data/lib/adwords_api/v201209/video_service.rb +42 -0
  21. data/lib/adwords_api/v201209/video_service_registry.rb +46 -0
  22. data/lib/adwords_api/{v201206/ad_group_ad_service.rb → v201209/video_targeting_group_criterion_service.rb} +8 -12
  23. data/lib/adwords_api/v201209/video_targeting_group_criterion_service_registry.rb +46 -0
  24. data/lib/adwords_api/{v201206/ad_extension_override_service.rb → v201209/video_targeting_group_service.rb} +8 -8
  25. data/lib/adwords_api/v201209/video_targeting_group_service_registry.rb +46 -0
  26. data/lib/adwords_api/v201302/ad_group_feed_service.rb +1 -1
  27. data/lib/adwords_api/v201302/ad_group_feed_service_registry.rb +2 -2
  28. data/lib/adwords_api/v201302/campaign_feed_service.rb +1 -1
  29. data/lib/adwords_api/v201302/campaign_feed_service_registry.rb +2 -2
  30. data/lib/adwords_api/v201302/feed_item_service.rb +1 -1
  31. data/lib/adwords_api/v201302/feed_item_service_registry.rb +3 -4
  32. data/lib/adwords_api/v201302/feed_service.rb +1 -1
  33. data/lib/adwords_api/v201302/feed_service_registry.rb +4 -5
  34. data/lib/adwords_api/{v201206/user_list_service.rb → v201302/shared_set_service.rb} +9 -9
  35. data/lib/adwords_api/v201302/shared_set_service_registry.rb +47 -0
  36. data/lib/adwords_api/version.rb +1 -1
  37. data/test/adwords_api/test_report_utils.rb +0 -89
  38. data/test/examples/v201302/test_advanced_operations.rb +10 -0
  39. data/test/templates/v201209/basic_operations_get_campaigns.def +1 -1
  40. data/test/templates/v201302/basic_operations_get_campaigns.def +1 -1
  41. data/test/templates/v201302/misc_use_oauth2_jwt.def +131 -0
  42. data/test/test_utils.rb +6 -2
  43. metadata +26 -121
  44. data/examples/v201206/account_management/create_account.rb +0 -87
  45. data/examples/v201206/account_management/get_account_alerts.rb +0 -114
  46. data/examples/v201206/account_management/get_account_changes.rb +0 -137
  47. data/examples/v201206/account_management/get_account_hierarchy.rb +0 -95
  48. data/examples/v201206/account_management/get_client_customer_id.rb +0 -88
  49. data/examples/v201206/account_management/get_client_unit_usage.rb +0 -90
  50. data/examples/v201206/basic_operations/add_ad_groups.rb +0 -136
  51. data/examples/v201206/basic_operations/add_campaigns.rb +0 -151
  52. data/examples/v201206/basic_operations/add_keywords.rb +0 -108
  53. data/examples/v201206/basic_operations/add_text_ads.rb +0 -105
  54. data/examples/v201206/basic_operations/delete_ad.rb +0 -85
  55. data/examples/v201206/basic_operations/delete_campaign.rb +0 -103
  56. data/examples/v201206/basic_operations/delete_keyword.rb +0 -90
  57. data/examples/v201206/basic_operations/get_text_ads.rb +0 -106
  58. data/examples/v201206/basic_operations/update_ad_group.rb +0 -81
  59. data/examples/v201206/basic_operations/update_campaign.rb +0 -84
  60. data/examples/v201206/basic_operations/update_keyword.rb +0 -99
  61. data/examples/v201206/campaign_management/add_experiment.rb +0 -158
  62. data/examples/v201206/campaign_management/add_keywords_in_bulk.rb +0 -150
  63. data/examples/v201206/campaign_management/add_location_extension.rb +0 -117
  64. data/examples/v201206/campaign_management/add_location_extension_override.rb +0 -83
  65. data/examples/v201206/campaign_management/get_all_disapproved_ads.rb +0 -93
  66. data/examples/v201206/campaign_management/get_all_disapproved_ads_with_awql.rb +0 -84
  67. data/examples/v201206/campaign_management/promote_experiment.rb +0 -77
  68. data/examples/v201206/campaign_management/set_ad_parameters.rb +0 -114
  69. data/examples/v201206/campaign_management/validate_text_ad.rb +0 -106
  70. data/examples/v201206/error_handling/handle_captcha_challenge.rb +0 -93
  71. data/examples/v201206/error_handling/handle_partial_failures.rb +0 -126
  72. data/examples/v201206/error_handling/handle_policy_violation_error.rb +0 -137
  73. data/examples/v201206/error_handling/handle_two_factor_authorization_error.rb +0 -88
  74. data/examples/v201206/misc/get_all_images_and_videos.rb +0 -100
  75. data/examples/v201206/misc/upload_image.rb +0 -89
  76. data/examples/v201206/misc/use_oauth2.rb +0 -97
  77. data/examples/v201206/optimization/estimate_keyword_traffic.rb +0 -129
  78. data/examples/v201206/optimization/get_keyword_bid_simulations.rb +0 -92
  79. data/examples/v201206/optimization/get_keyword_ideas.rb +0 -114
  80. data/examples/v201206/optimization/get_placement_ideas.rb +0 -104
  81. data/examples/v201206/remarketing/add_audience.rb +0 -115
  82. data/examples/v201206/remarketing/add_conversion_tracker.rb +0 -97
  83. data/examples/v201206/reporting/download_criteria_report.rb +0 -79
  84. data/examples/v201206/reporting/download_criteria_report_with_awql.rb +0 -78
  85. data/examples/v201206/reporting/get_campaign_stats.rb +0 -105
  86. data/examples/v201206/reporting/get_report_fields.rb +0 -71
  87. data/examples/v201206/reporting/parallel_report_download.rb +0 -162
  88. data/examples/v201206/targeting/add_campaign_targeting_criteria.rb +0 -118
  89. data/examples/v201206/targeting/get_campaign_targeting_criteria.rb +0 -102
  90. data/examples/v201206/targeting/get_targetable_languages_and_carriers.rb +0 -86
  91. data/examples/v201206/targeting/lookup_location.rb +0 -104
  92. data/lib/adwords_api/v201206/ad_extension_override_service_registry.rb +0 -46
  93. data/lib/adwords_api/v201206/ad_group_ad_service_registry.rb +0 -46
  94. data/lib/adwords_api/v201206/ad_group_criterion_service.rb +0 -42
  95. data/lib/adwords_api/v201206/ad_group_criterion_service_registry.rb +0 -46
  96. data/lib/adwords_api/v201206/ad_group_service.rb +0 -42
  97. data/lib/adwords_api/v201206/ad_group_service_registry.rb +0 -46
  98. data/lib/adwords_api/v201206/ad_param_service_registry.rb +0 -46
  99. data/lib/adwords_api/v201206/alert_service.rb +0 -34
  100. data/lib/adwords_api/v201206/alert_service_registry.rb +0 -46
  101. data/lib/adwords_api/v201206/budget_order_service.rb +0 -42
  102. data/lib/adwords_api/v201206/budget_order_service_registry.rb +0 -46
  103. data/lib/adwords_api/v201206/bulk_mutate_job_service_registry.rb +0 -46
  104. data/lib/adwords_api/v201206/campaign_ad_extension_service_registry.rb +0 -46
  105. data/lib/adwords_api/v201206/campaign_criterion_service.rb +0 -42
  106. data/lib/adwords_api/v201206/campaign_criterion_service_registry.rb +0 -46
  107. data/lib/adwords_api/v201206/campaign_service.rb +0 -42
  108. data/lib/adwords_api/v201206/campaign_service_registry.rb +0 -46
  109. data/lib/adwords_api/v201206/constant_data_service.rb +0 -62
  110. data/lib/adwords_api/v201206/constant_data_service_registry.rb +0 -46
  111. data/lib/adwords_api/v201206/conversion_tracker_service.rb +0 -38
  112. data/lib/adwords_api/v201206/conversion_tracker_service_registry.rb +0 -46
  113. data/lib/adwords_api/v201206/customer_service.rb +0 -34
  114. data/lib/adwords_api/v201206/customer_service_registry.rb +0 -46
  115. data/lib/adwords_api/v201206/customer_sync_service.rb +0 -34
  116. data/lib/adwords_api/v201206/customer_sync_service_registry.rb +0 -47
  117. data/lib/adwords_api/v201206/data_service.rb +0 -38
  118. data/lib/adwords_api/v201206/data_service_registry.rb +0 -46
  119. data/lib/adwords_api/v201206/experiment_service.rb +0 -38
  120. data/lib/adwords_api/v201206/experiment_service_registry.rb +0 -46
  121. data/lib/adwords_api/v201206/geo_location_service.rb +0 -34
  122. data/lib/adwords_api/v201206/geo_location_service_registry.rb +0 -46
  123. data/lib/adwords_api/v201206/info_service.rb +0 -34
  124. data/lib/adwords_api/v201206/info_service_registry.rb +0 -46
  125. data/lib/adwords_api/v201206/location_criterion_service.rb +0 -34
  126. data/lib/adwords_api/v201206/location_criterion_service_registry.rb +0 -46
  127. data/lib/adwords_api/v201206/managed_customer_service.rb +0 -38
  128. data/lib/adwords_api/v201206/managed_customer_service_registry.rb +0 -46
  129. data/lib/adwords_api/v201206/media_service.rb +0 -38
  130. data/lib/adwords_api/v201206/media_service_registry.rb +0 -46
  131. data/lib/adwords_api/v201206/mutate_job_service.rb +0 -42
  132. data/lib/adwords_api/v201206/mutate_job_service_registry.rb +0 -46
  133. data/lib/adwords_api/v201206/report_definition_service.rb +0 -34
  134. data/lib/adwords_api/v201206/report_definition_service_registry.rb +0 -46
  135. data/lib/adwords_api/v201206/targeting_idea_service.rb +0 -38
  136. data/lib/adwords_api/v201206/targeting_idea_service_registry.rb +0 -46
  137. data/lib/adwords_api/v201206/traffic_estimator_service.rb +0 -34
  138. data/lib/adwords_api/v201206/traffic_estimator_service_registry.rb +0 -46
  139. data/lib/adwords_api/v201206/user_list_service_registry.rb +0 -46
  140. data/test/examples/v201206/test_account_management.rb +0 -60
  141. data/test/examples/v201206/test_basic_operations.rb +0 -177
  142. data/test/examples/v201206/test_campaign_management.rb +0 -124
  143. data/test/examples/v201206/test_error_handling.rb +0 -63
  144. data/test/examples/v201206/test_misc.rb +0 -39
  145. data/test/examples/v201206/test_optimization.rb +0 -63
  146. data/test/examples/v201206/test_remarketing.rb +0 -39
  147. data/test/examples/v201206/test_reporting.rb +0 -84
  148. data/test/examples/v201206/test_targeting.rb +0 -60
  149. data/test/examples/v201206/utils.rb +0 -244
  150. data/test/suite_exampletests_v201206.rb +0 -37
@@ -1,244 +0,0 @@
1
- # Encoding: utf-8
2
- #
3
- # Author:: api.dklimkin@gmail.com (Danial Klimkin)
4
- #
5
- # Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
6
- #
7
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
- # implied.
17
- # See the License for the specific language governing permissions and
18
- # limitations under the License.
19
- #
20
- # Utilities and constants for example tests.
21
-
22
- API_VERSION = :v201206
23
- PAGE_SIZE = 500
24
-
25
- class UtilsV201206
26
- def initialize(adwords)
27
- @adwords = adwords
28
- end
29
-
30
- def get_campaign
31
- @campaign ||= create_campaign()
32
- return @campaign
33
- end
34
-
35
- def get_ad_group
36
- @ad_group ||= create_ad_group()
37
- return @ad_group
38
- end
39
-
40
- def get_ad
41
- @ad ||= create_ad(get_ad_group()[:id])
42
- return @ad
43
- end
44
-
45
- def get_keyword
46
- @keyword ||= create_keyword(get_ad_group()[:id])
47
- return @keyword
48
- end
49
-
50
- def get_location_extension
51
- @location_extension ||= create_location_extension(get_campaign()[:id])
52
- return @location_extension
53
- end
54
-
55
- def get_experiment
56
- @experiment ||= create_experiment(
57
- get_campaign()[:id], get_ad_group()[:id], get_keyword[:criterion][:id])
58
- return @experiment
59
- end
60
-
61
- private
62
-
63
- def create_campaign
64
- campaign_srv = @adwords.service(:CampaignService, API_VERSION)
65
- campaign = {
66
- :name => "Example tests campaign #%d" % (Time.new.to_f * 1000).to_i,
67
- :status => 'PAUSED',
68
- :bidding_strategy => {:xsi_type => 'ManualCPC'},
69
- :budget => {
70
- :period => 'DAILY',
71
- :amount => {:micro_amount => 50000000},
72
- :delivery_method => 'STANDARD'
73
- },
74
- :network_setting => {
75
- :target_google_search => true,
76
- :target_search_network => true,
77
- :target_content_network => true
78
- },
79
- :settings => [
80
- {
81
- :xsi_type => 'KeywordMatchSetting',
82
- :opt_in => true
83
- }
84
- ]
85
- }
86
- operation = {:operator => 'ADD', :operand => campaign}
87
- response = campaign_srv.mutate([operation])
88
- return response[:value].first
89
- end
90
-
91
- def create_ad_group
92
- campaign = get_campaign()
93
- ad_group_srv = @adwords.service(:AdGroupService, API_VERSION)
94
- ad_group = {
95
- :name => "Example tests ad group #%d" % (Time.new.to_f * 1000).to_i,
96
- :status => 'ENABLED',
97
- :campaign_id => campaign[:id],
98
- :bids => {
99
- :xsi_type => 'ManualCPCAdGroupBids',
100
- :keyword_max_cpc => {:amount => {:micro_amount => 10000000}},
101
- }
102
- }
103
- operation = {:operator => 'ADD', :operand => ad_group}
104
- response = ad_group_srv.mutate([operation])
105
- return response[:value].first
106
- end
107
-
108
- def create_ad(ad_group_id)
109
- ad_group_ad_srv = @adwords.service(:AdGroupAdService, API_VERSION)
110
- text_ad = {
111
- :xsi_type => 'TextAd',
112
- :headline => 'Examples test ad %d' % (Time.new.to_f * 1000).to_i,
113
- :description1 => 'testing ruby examples',
114
- :description2 => 'all your base are belong to us',
115
- :url => 'http://www.example.com',
116
- :display_url => 'www.example.com'
117
- }
118
- operation = {:operator => 'ADD',
119
- :operand => {:ad_group_id => ad_group_id, :ad => text_ad}}
120
- response = ad_group_ad_srv.mutate([operation])
121
- return response[:value].first
122
- end
123
-
124
- def create_keyword(ad_group_id)
125
- ad_group_criterion_srv =
126
- @adwords.service(:AdGroupCriterionService, API_VERSION)
127
- keyword = {
128
- :xsi_type => 'BiddableAdGroupCriterion',
129
- :ad_group_id => ad_group_id,
130
- :criterion => {
131
- :xsi_type => 'Keyword',
132
- :text => 'mars cruise',
133
- :match_type => 'BROAD'
134
- }
135
- }
136
- operation = {:operator => 'ADD', :operand => keyword}
137
- response = ad_group_criterion_srv.mutate([operation])
138
- return response[:value].first
139
- end
140
-
141
- def create_location_extension(campaign_id)
142
- campaign_ad_ext_srv =
143
- @adwords.service(:CampaignAdExtensionService, API_VERSION)
144
- geo_location_srv = @adwords.service(:GeoLocationService, API_VERSION)
145
-
146
- selector = {
147
- :addresses => [
148
- {
149
- :street_address => '1600 Amphitheatre Parkway',
150
- :city_name => 'Mountain View',
151
- :province_code => 'CA',
152
- :postal_code => '94043',
153
- :country_code => 'US'
154
- }
155
- ]
156
- }
157
-
158
- locations = geo_location_srv.get(selector)
159
- raise StandardError, 'Unable to retrieve geo locations.' if locations.nil?
160
-
161
- operations = locations.map do |location|
162
- {
163
- :operator => 'ADD',
164
- :operand => {
165
- :campaign_id => campaign_id,
166
- :status => 'ACTIVE',
167
- :ad_extension => {
168
- :xsi_type => 'LocationExtension',
169
- :address => location[:address],
170
- :geo_point => location[:geo_point],
171
- :encoded_location => location[:encoded_location],
172
- :source => 'ADWORDS_FRONTEND'
173
- }
174
- }
175
- }
176
- end
177
-
178
- response = campaign_ad_ext_srv.mutate(operations)
179
- extension = response[:value].first
180
- return extension
181
- end
182
-
183
- def create_experiment(campaign_id, ad_group_id, criterion_id)
184
- experiment_srv = @adwords.service(:ExperimentService, API_VERSION)
185
- ad_group_srv = @adwords.service(:AdGroupService, API_VERSION)
186
- ad_group_criterion_srv =
187
- @adwords.service(:AdGroupCriterionService, API_VERSION)
188
-
189
- operation = {
190
- :operator => 'ADD',
191
- :operand => {
192
- :campaign_id => campaign_id,
193
- :name => "Examples test experiment #%d" % (Time.new.to_f * 1000).to_i,
194
- :query_percentage => 10,
195
- :start_date_time => Time.now.strftime('%Y%m%d %H%M%S'),
196
- }
197
- }
198
- response = experiment_srv.mutate([operation])
199
- experiment = response[:value].first
200
-
201
- raise StandardError, 'Failed to create experiment' if experiment.nil?
202
-
203
- ad_group = {
204
- :id => ad_group_id,
205
- :experiment_data => {
206
- :experiment_id => experiment[:id],
207
- :experiment_delta_status => 'MODIFIED',
208
- :experiment_bid_multipliers => {
209
- :xsi_type => 'ManualCPCAdGroupExperimentBidMultipliers',
210
- :max_cpc_multiplier => {:multiplier => 1.5}
211
- }
212
- }
213
- }
214
-
215
- operation = {:operator => 'SET', :operand => ad_group}
216
- response = ad_group_srv.mutate([operation])
217
- ad_group = response[:value].first
218
-
219
- raise StandardError, 'Failed to assign experiment' if ad_group.nil?
220
-
221
- ad_group_criterion = {
222
- :xsi_type => 'BiddableAdGroupCriterion',
223
- :ad_group_id => ad_group_id,
224
- :criterion => {:id => criterion_id},
225
- :experiment_data => {
226
- :xsi_type => 'BiddableAdGroupCriterionExperimentData',
227
- :experiment_id => experiment[:id],
228
- :experiment_delta_status => 'MODIFIED',
229
- :experiment_bid_multiplier => {
230
- :xsi_type => 'ManualCPCAdGroupCriterionExperimentBidMultiplier',
231
- :max_cpc_multiplier => {:multiplier => 1.5}
232
- }
233
- }
234
- }
235
-
236
- operation = {:operator => 'SET', :operand => ad_group_criterion}
237
- response = ad_group_criterion_srv.mutate([operation])
238
- criterion = response[:value].first
239
-
240
- raise StandardError, 'Failed to assign criterion' if criterion.nil?
241
-
242
- return experiment
243
- end
244
- end
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
- #
6
- # Copyright:: Copyright 2012, 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
- # Test suite for v201206 example tests.
22
-
23
- require 'test/unit'
24
-
25
- $:.unshift File.expand_path('../../lib/', __FILE__)
26
- $:.unshift File.expand_path('../../', __FILE__)
27
-
28
- version = 'v201206'
29
-
30
- examples_path =
31
- File.expand_path(File.join('..', '..', 'examples', version), __FILE__)
32
- $:.unshift(examples_path)
33
-
34
- tests_path = File.join(File.dirname(__FILE__), 'examples', version)
35
- require File.join(tests_path, 'utils.rb')
36
- tests_mask = File.join(tests_path, 'test_*.rb')
37
- Dir.glob(tests_mask).each {|file| require file}