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
@@ -21,6 +21,6 @@
21
21
 
22
22
  module AdwordsApi
23
23
  module ApiConfig
24
- CLIENT_LIB_VERSION = '0.8.2'
24
+ CLIENT_LIB_VERSION = '0.9.0'
25
25
  end
26
26
  end
@@ -28,7 +28,6 @@ require 'adwords_api'
28
28
  module AdwordsApi
29
29
  class ReportUtils
30
30
  public :check_for_errors
31
- public :check_for_legacy_error
32
31
  public :check_for_xml_error
33
32
  public :add_report_definition_hash_order
34
33
  end
@@ -44,14 +43,6 @@ class ResponseStub
44
43
  end
45
44
  end
46
45
 
47
- # Typical reply types.
48
- REPLY_TYPES = [
49
- {:reply => '!!!2|||-1|||Improperly formatted report request???',
50
- :message => 'Improperly formatted report request'},
51
- {:reply => "!!!2|||-1|||ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT @ ; trigger:'bCampaignId'???",
52
- :message => "ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT @ ; trigger:'bCampaignId'"}
53
- ]
54
-
55
46
  XML_REPLY = {
56
47
  :reply => '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><reportDownloadError><ApiError><type>ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT</type><trigger>foo</trigger><fieldPath>bar</fieldPath></ApiError></reportDownloadError>',
57
48
  :type => 'ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT',
@@ -72,21 +63,6 @@ class TestReportUtils < Test::Unit::TestCase
72
63
  @report_utils = @api.report_utils(API_VERSION)
73
64
  end
74
65
 
75
- # Testing HTTP code 400.
76
- def test_check_for_errors_400_legacy()
77
- report_utils = @api.report_utils(:v201206)
78
- REPLY_TYPES.each do |reply_type|
79
- begin
80
- response = ResponseStub.new(400, reply_type[:reply])
81
- report_utils.check_for_errors(response)
82
- assert(false, 'No exception thrown for code 400')
83
- rescue AdwordsApi::Errors::ReportError => e
84
- assert_equal(400, e.http_code)
85
- assert(e.message.include?(reply_type[:message]))
86
- end
87
- end
88
- end
89
-
90
66
  # Testing HTTP code 400.
91
67
  def test_check_for_errors_400()
92
68
  begin
@@ -102,20 +78,6 @@ class TestReportUtils < Test::Unit::TestCase
102
78
  end
103
79
  end
104
80
 
105
- # Testing HTTP code 500.
106
- def test_check_for_errors_500_legacy()
107
- report_utils = @api.report_utils(:v201206)
108
- REPLY_TYPES.each do |reply_type|
109
- begin
110
- response = ResponseStub.new(500, nil)
111
- report_utils.check_for_errors(response)
112
- assert(false, 'No exception thrown for code 500')
113
- rescue AdwordsApi::Errors::ReportError => e
114
- assert_equal(500, e.http_code)
115
- end
116
- end
117
- end
118
-
119
81
  # Testing HTTP code 500.
120
82
  def test_check_for_errors_500()
121
83
  begin
@@ -127,29 +89,6 @@ class TestReportUtils < Test::Unit::TestCase
127
89
  end
128
90
  end
129
91
 
130
- # Testing unexpected legacy error for new version.
131
- def test_check_for_errors_unexpected_legacy()
132
- REPLY_TYPES.each do |reply_type|
133
- begin
134
- response = ResponseStub.new(400, reply_type[:reply])
135
- @report_utils.check_for_errors(response)
136
- assert(false, 'No exception thrown for legact error in new handler')
137
- rescue AdwordsApi::Errors::ReportError => e
138
- assert_equal(400, e.http_code)
139
- assert_not_nil(e.message)
140
- end
141
- end
142
- end
143
-
144
- # Testing HTTP code 200 with success.
145
- def test_check_for_errors_200_success_legacy()
146
- report_utils = @api.report_utils(:v201206)
147
- response = ResponseStub.new(200, VALID_REPORT)
148
- assert_nothing_raised do
149
- report_utils.check_for_errors(response)
150
- end
151
- end
152
-
153
92
  # Testing HTTP code 200 with success.
154
93
  def test_check_for_errors_200_success()
155
94
  response = ResponseStub.new(200, VALID_REPORT)
@@ -158,21 +97,6 @@ class TestReportUtils < Test::Unit::TestCase
158
97
  end
159
98
  end
160
99
 
161
- # Testing HTTP code 200 with failure.
162
- def test_check_for_errors_200_success_legacy()
163
- report_utils = @api.report_utils(:v201206)
164
- REPLY_TYPES.each do |reply_type|
165
- begin
166
- response = ResponseStub.new(200, reply_type[:reply])
167
- report_utils.check_for_errors(response)
168
- assert(false, 'No exception thrown for code 200')
169
- rescue AdwordsApi::Errors::ReportError => e
170
- assert_equal(200, e.http_code)
171
- assert(e.message.include?(reply_type[:message]))
172
- end
173
- end
174
- end
175
-
176
100
  # Testing correct gzipped reply.
177
101
  def test_gzipped_data()
178
102
  report = (RUBY_VERSION >= '1.9.1') ?
@@ -248,19 +172,6 @@ class TestReportUtils < Test::Unit::TestCase
248
172
  assert_equal(expected4, node[:selector][:predicates][:order!])
249
173
  end
250
174
 
251
- # Testing check_for_legacy_error.
252
- def test_check_for_legacy_error()
253
- REPLY_TYPES.each do |reply_type|
254
- begin
255
- @report_utils.check_for_legacy_error(reply_type[:reply], 42)
256
- assert(false, 'No exception thrown for code 42')
257
- rescue AdwordsApi::Errors::ReportError => e
258
- assert_equal(42, e.http_code)
259
- assert(e.message.include?(reply_type[:message]))
260
- end
261
- end
262
- end
263
-
264
175
  # Testing check_for_xml_error.
265
176
  def check_for_xml_error()
266
177
  begin
@@ -24,6 +24,8 @@ require 'test/unit'
24
24
 
25
25
  require 'advanced_operations/add_site_links'
26
26
  require 'advanced_operations/add_click_to_download_ad'
27
+ require 'advanced_operations/create_and_attach_shared_keyword_set'
28
+ require 'advanced_operations/find_and_remove_criteria_from_shared_set'
27
29
 
28
30
  PLACEHOLDER_SITELINKS = 1
29
31
  PLACEHOLDER_FIELD_SITELINK_LINK_TEXT = 1
@@ -51,4 +53,12 @@ class TestAdvancedOperationsV201302 < Test::Unit::TestCase
51
53
  assert_not_nil(ad_group[:id])
52
54
  add_click_to_download_ad(ad_group[:id])
53
55
  end
56
+
57
+ def test_add_and_remove_shared_criteria()
58
+ campaign = @utils.get_campaign()
59
+ assert_not_nil(campaign)
60
+ assert_not_nil(campaign[:id])
61
+ create_and_attach_shared_keyword_set(campaign[:id])
62
+ find_and_remove_criteria_from_shared_set(campaign[:id])
63
+ end
54
64
  end
@@ -22,7 +22,7 @@ def setup_mocks()
22
22
  {"env:Envelope"=>
23
23
  {"env:Header"=>
24
24
  {"wsdl:RequestHeader"=>
25
- {"userAgent"=>"ruby-tests (AwApi-Ruby/0.8.2, Common-Ruby/0.9.3, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
25
+ {"userAgent"=>"ruby-tests (AwApi-Ruby/0.9.0, Common-Ruby/0.9.3, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
26
26
  "developerToken"=>"dev_token123",
27
27
  "clientCustomerId"=>"123-456-7890",
28
28
  "authToken"=>"abcAuthbcd",
@@ -22,7 +22,7 @@ def setup_mocks()
22
22
  {"env:Envelope"=>
23
23
  {"env:Header"=>
24
24
  {"wsdl:RequestHeader"=>
25
- {"userAgent"=>"ruby-tests (AwApi-Ruby/0.8.2, Common-Ruby/0.9.3, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
25
+ {"userAgent"=>"ruby-tests (AwApi-Ruby/0.9.0, Common-Ruby/0.9.3, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
26
26
  "developerToken"=>"dev_token123",
27
27
  "clientCustomerId"=>"123-456-7890",
28
28
  "authToken"=>"abcAuthbcd",
@@ -0,0 +1,131 @@
1
+ def setup_mocks()
2
+ file_name = 'privatekey.p12'
3
+ file_contents = 'file contents'
4
+ key_secret = 'not-secret'
5
+
6
+ $api_config = {
7
+ :service => {:environment => 'PRODUCTION'},
8
+ :authentication => {
9
+ :method => 'OAUTH2_JWT',
10
+ :oauth2_issuer => 'not-valid@developer.gserviceaccount.com',
11
+ :oauth2_secret => key_secret,
12
+ :oauth2_keyfile => file_name,
13
+ :developer_token => 'dev_token123',
14
+ :client_customer_id => '123-456-7890',
15
+ :user_agent => 'ruby-tests'
16
+ }
17
+ }
18
+
19
+ stub(File).file?(file_name) { true }
20
+ stub.proxy(File).file?
21
+
22
+ stub(File).read(file_name) { file_contents }
23
+ stub.proxy(File).read
24
+
25
+ key = mock!.key { 'pkcs12 key' }
26
+ stub(OpenSSL::PKCS12).new.with(file_contents, key_secret) { key }
27
+
28
+ stub_request(:post, "https://accounts.google.com/o/oauth2/token").
29
+ with(:body => hash_including({"grant_type"=>"urn:ietf:params:oauth:grant-type:jwt-bearer"}),
30
+ :headers => {'Accept'=>'*/*', 'Cache-Control'=>'no-store', 'Content-Type'=>'application/x-www-form-urlencoded', 'User-Agent'=>'Ruby'}).
31
+ with(:body => /assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9/).
32
+ to_return(:status => 200,
33
+ :body => "{\n \"access_token\" : \"ab01.CBEF2GHi3JKlMnOpqRstUvW4X-YzaBcdEFG5IjKLMNPPqRStuV\",\n \"token_type\" : \"Bearer\",\n \"expires_in\" : 3600\n}",
34
+ :headers => {"Content-Type"=>"application/json"})
35
+
36
+ stub_request(:post, "https://adwords.google.com/api/adwords/cm/v201302/CampaignService").
37
+ with(
38
+ :body =>
39
+ # autogenerated code
40
+ {"env:Envelope"=>
41
+ {"env:Header"=>
42
+ {"wsdl:RequestHeader"=>
43
+ {"userAgent"=>"ruby-tests (AwApi-Ruby/0.9.0, Common-Ruby/0.9.3, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
44
+ "developerToken"=>"dev_token123",
45
+ "clientCustomerId"=>"123-456-7890",
46
+ "xmlns"=>"https://adwords.google.com/api/adwords/cm/v201302"}},
47
+ "env:Body"=>
48
+ {"get"=>
49
+ {"serviceSelector"=>
50
+ {"fields"=>["Id", "Name", "Status"],
51
+ "ordering"=>{"field"=>"Name", "sortOrder"=>"ASCENDING"}},
52
+ "xmlns"=>"https://adwords.google.com/api/adwords/cm/v201302"}},
53
+ "xmlns:xsd"=>"http://www.w3.org/2001/XMLSchema",
54
+ "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
55
+ "xmlns:wsdl"=>"https://adwords.google.com/api/adwords/cm/v201302",
56
+ "xmlns:env"=>"http://schemas.xmlsoap.org/soap/envelope/"}},
57
+ # end of auto-generated code.
58
+ :headers => {
59
+ 'SOAPAction' => '"get"',
60
+ 'Content-Type' => 'text/xml;charset=UTF-8',
61
+ 'Authorization' => 'Bearer ab01.CBEF2GHi3JKlMnOpqRstUvW4X-YzaBcdEFG5IjKLMNPPqRStuV'
62
+ }
63
+ ).
64
+ to_return(
65
+ :status => 200,
66
+ :body => '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
67
+ <soap:Header>
68
+ <ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/v201302">
69
+ <requestId>0004c</requestId>
70
+ <serviceName>CampaignService</serviceName>
71
+ <methodName>get</methodName>
72
+ <operations>42</operations>
73
+ <responseTime>84</responseTime>
74
+ <units>42</units>
75
+ </ResponseHeader>
76
+ </soap:Header>
77
+ <soap:Body>
78
+ <getResponse xmlns="https://adwords.google.com/api/adwords/cm/v201302">
79
+ <rval>
80
+ <totalNumEntries>2</totalNumEntries>
81
+ <Page.Type>CampaignPage</Page.Type>
82
+ <totalBudget>
83
+ <period>DAILY</period><amount><ComparableValue.Type>Money</ComparableValue.Type>
84
+ <microAmount>0</microAmount></amount>
85
+ </totalBudget>
86
+ <entries>
87
+ <id>15</id><name>Campaign name 1</name><status>PAUSED</status><campaignStats><network>ALL</network>
88
+ <Stats.Type>CampaignStats</Stats.Type></campaignStats><frequencyCap><impressions>0</impressions></frequencyCap>
89
+ </entries>
90
+ <entries>
91
+ <id>16</id><name>Campaign name 2</name><status>ACTIVE</status><campaignStats><network>ALL</network>
92
+ <Stats.Type>CampaignStats</Stats.Type></campaignStats><frequencyCap><impressions>150</impressions></frequencyCap>
93
+ </entries>
94
+ </rval>
95
+ </getResponse>
96
+ </soap:Body>
97
+ </soap:Envelope>',
98
+ :headers => {'content-type' => 'text/xml;'}
99
+ )
100
+ end
101
+
102
+ def run_asserts()
103
+ assert_equal(2, $latest_result[:total_num_entries])
104
+ assert_equal('CampaignPage', $latest_result[:page_type])
105
+ entries = $latest_result[:entries]
106
+ assert_equal(2, entries.size)
107
+
108
+ if entries[0][:id] == 15
109
+ assert_campaign_15(entries[0])
110
+ assert_campaign_16(entries[1])
111
+ else
112
+ assert_campaign_15(entries[1])
113
+ assert_campaign_16(entries[0])
114
+ end
115
+ end
116
+
117
+ def assert_campaign_15(entry)
118
+ assert_equal(15, entry[:id])
119
+ assert_equal('Campaign name 1', entry[:name])
120
+ assert_equal('PAUSED', entry[:status])
121
+ assert_equal({:network=>"ALL", :stats_type=>"CampaignStats"}, entry[:campaign_stats])
122
+ assert_equal({:impressions=>0}, entry[:frequency_cap])
123
+ end
124
+
125
+ def assert_campaign_16(entry)
126
+ assert_equal(16, entry[:id])
127
+ assert_equal('Campaign name 2', entry[:name])
128
+ assert_equal('ACTIVE', entry[:status])
129
+ assert_equal({:network=>"ALL", :stats_type=>"CampaignStats"}, entry[:campaign_stats])
130
+ assert_equal({:impressions=>150}, entry[:frequency_cap])
131
+ end
data/test/test_utils.rb CHANGED
@@ -24,11 +24,14 @@
24
24
  # correctly.
25
25
  require 'ads_common/savon_service'
26
26
  require 'adwords_api'
27
+ require 'rr'
27
28
  require 'webmock/test_unit'
28
29
 
29
30
  class ExampleRunner < Test::Unit::TestCase
30
31
  PAGE_SIZE = 5
31
32
 
33
+ include RR::Adapters::TestUnit
34
+
32
35
  def initialize(example_file)
33
36
  @version, template_file = extract_strings(example_file)
34
37
 
@@ -44,18 +47,19 @@ class ExampleRunner < Test::Unit::TestCase
44
47
 
45
48
  def engage(test)
46
49
  test.skip(@template_error) if @template_error
47
- reset_state()
48
50
  setup_mocks()
49
51
  self.instance_eval('API_VERSION = :%s' % @version)
50
52
  self.instance_eval('PAGE_SIZE = %d' % PAGE_SIZE)
51
53
  self.send(get_example_method())
52
54
  run_asserts()
55
+ reset_state()
53
56
  end
54
57
 
55
58
  private
56
59
 
57
60
  def reset_state()
58
- WebMock.reset!
61
+ RR.reset()
62
+ WebMock.reset!()
59
63
  $latest_result = nil
60
64
  end
61
65
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-adwords-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-05 00:00:00.000000000 Z
12
+ date: 2013-04-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-ads-common
@@ -77,8 +77,10 @@ files:
77
77
  - lib/adwords_api/v201302/campaign_ad_extension_service_registry.rb
78
78
  - lib/adwords_api/v201302/campaign_service_registry.rb
79
79
  - lib/adwords_api/v201302/feed_item_service_registry.rb
80
+ - lib/adwords_api/v201302/shared_set_service.rb
80
81
  - lib/adwords_api/v201302/user_list_service.rb
81
82
  - lib/adwords_api/v201302/location_criterion_service.rb
83
+ - lib/adwords_api/v201302/shared_set_service_registry.rb
82
84
  - lib/adwords_api/v201302/ad_group_service.rb
83
85
  - lib/adwords_api/v201302/ad_group_service_registry.rb
84
86
  - lib/adwords_api/v201302/campaign_feed_service.rb
@@ -111,13 +113,18 @@ files:
111
113
  - lib/adwords_api/v201209/mutate_job_service.rb
112
114
  - lib/adwords_api/v201209/conversion_tracker_service_registry.rb
113
115
  - lib/adwords_api/v201209/info_service_registry.rb
116
+ - lib/adwords_api/v201209/video_service.rb
114
117
  - lib/adwords_api/v201209/budget_service.rb
115
118
  - lib/adwords_api/v201209/ad_extension_override_service_registry.rb
119
+ - lib/adwords_api/v201209/video_targeting_group_criterion_service.rb
120
+ - lib/adwords_api/v201209/video_ad_service.rb
116
121
  - lib/adwords_api/v201209/customer_service.rb
117
122
  - lib/adwords_api/v201209/experiment_service_registry.rb
118
123
  - lib/adwords_api/v201209/alert_service_registry.rb
124
+ - lib/adwords_api/v201209/video_campaign_criterion_service.rb
119
125
  - lib/adwords_api/v201209/campaign_criterion_service.rb
120
126
  - lib/adwords_api/v201209/budget_order_service.rb
127
+ - lib/adwords_api/v201209/video_targeting_group_service_registry.rb
121
128
  - lib/adwords_api/v201209/ad_group_ad_service_registry.rb
122
129
  - lib/adwords_api/v201209/customer_sync_service_registry.rb
123
130
  - lib/adwords_api/v201209/budget_order_service_registry.rb
@@ -129,15 +136,20 @@ files:
129
136
  - lib/adwords_api/v201209/geo_location_service.rb
130
137
  - lib/adwords_api/v201209/ad_group_criterion_service.rb
131
138
  - lib/adwords_api/v201209/managed_customer_service.rb
139
+ - lib/adwords_api/v201209/video_targeting_group_criterion_service_registry.rb
140
+ - lib/adwords_api/v201209/video_campaign_service.rb
132
141
  - lib/adwords_api/v201209/user_list_service_registry.rb
142
+ - lib/adwords_api/v201209/video_service_registry.rb
133
143
  - lib/adwords_api/v201209/constant_data_service_registry.rb
134
144
  - lib/adwords_api/v201209/ad_group_ad_service.rb
135
145
  - lib/adwords_api/v201209/traffic_estimator_service_registry.rb
136
146
  - lib/adwords_api/v201209/campaign_service.rb
147
+ - lib/adwords_api/v201209/video_campaign_service_registry.rb
137
148
  - lib/adwords_api/v201209/conversion_tracker_service.rb
138
149
  - lib/adwords_api/v201209/media_service_registry.rb
139
150
  - lib/adwords_api/v201209/campaign_ad_extension_service_registry.rb
140
151
  - lib/adwords_api/v201209/campaign_service_registry.rb
152
+ - lib/adwords_api/v201209/video_campaign_criterion_service_registry.rb
141
153
  - lib/adwords_api/v201209/user_list_service.rb
142
154
  - lib/adwords_api/v201209/location_criterion_service.rb
143
155
  - lib/adwords_api/v201209/ad_group_service.rb
@@ -150,9 +162,11 @@ files:
150
162
  - lib/adwords_api/v201209/report_definition_service.rb
151
163
  - lib/adwords_api/v201209/ad_param_service_registry.rb
152
164
  - lib/adwords_api/v201209/budget_service_registry.rb
165
+ - lib/adwords_api/v201209/video_targeting_group_service.rb
153
166
  - lib/adwords_api/v201209/mutate_job_service_registry.rb
154
167
  - lib/adwords_api/v201209/constant_data_service.rb
155
168
  - lib/adwords_api/v201209/ad_group_criterion_service_registry.rb
169
+ - lib/adwords_api/v201209/video_ad_service_registry.rb
156
170
  - lib/adwords_api/v201209/customer_service_registry.rb
157
171
  - lib/adwords_api/v201209/campaign_ad_extension_service.rb
158
172
  - lib/adwords_api/v201209/campaign_criterion_service_registry.rb
@@ -162,60 +176,6 @@ files:
162
176
  - lib/adwords_api/v201209/geo_location_service_registry.rb
163
177
  - lib/adwords_api/v201209/targeting_idea_service_registry.rb
164
178
  - lib/adwords_api/v201209/data_service.rb
165
- - lib/adwords_api/v201206/mutate_job_service.rb
166
- - lib/adwords_api/v201206/conversion_tracker_service_registry.rb
167
- - lib/adwords_api/v201206/info_service_registry.rb
168
- - lib/adwords_api/v201206/ad_extension_override_service_registry.rb
169
- - lib/adwords_api/v201206/customer_service.rb
170
- - lib/adwords_api/v201206/experiment_service_registry.rb
171
- - lib/adwords_api/v201206/alert_service_registry.rb
172
- - lib/adwords_api/v201206/campaign_criterion_service.rb
173
- - lib/adwords_api/v201206/budget_order_service.rb
174
- - lib/adwords_api/v201206/ad_group_ad_service_registry.rb
175
- - lib/adwords_api/v201206/customer_sync_service_registry.rb
176
- - lib/adwords_api/v201206/budget_order_service_registry.rb
177
- - lib/adwords_api/v201206/experiment_service.rb
178
- - lib/adwords_api/v201206/alert_service.rb
179
- - lib/adwords_api/v201206/customer_sync_service.rb
180
- - lib/adwords_api/v201206/location_criterion_service_registry.rb
181
- - lib/adwords_api/v201206/targeting_idea_service.rb
182
- - lib/adwords_api/v201206/geo_location_service.rb
183
- - lib/adwords_api/v201206/ad_group_criterion_service.rb
184
- - lib/adwords_api/v201206/managed_customer_service.rb
185
- - lib/adwords_api/v201206/user_list_service_registry.rb
186
- - lib/adwords_api/v201206/constant_data_service_registry.rb
187
- - lib/adwords_api/v201206/ad_group_ad_service.rb
188
- - lib/adwords_api/v201206/traffic_estimator_service_registry.rb
189
- - lib/adwords_api/v201206/campaign_service.rb
190
- - lib/adwords_api/v201206/conversion_tracker_service.rb
191
- - lib/adwords_api/v201206/media_service_registry.rb
192
- - lib/adwords_api/v201206/campaign_ad_extension_service_registry.rb
193
- - lib/adwords_api/v201206/campaign_service_registry.rb
194
- - lib/adwords_api/v201206/bulk_mutate_job_service.rb
195
- - lib/adwords_api/v201206/user_list_service.rb
196
- - lib/adwords_api/v201206/location_criterion_service.rb
197
- - lib/adwords_api/v201206/ad_group_service.rb
198
- - lib/adwords_api/v201206/ad_group_service_registry.rb
199
- - lib/adwords_api/v201206/ad_param_service.rb
200
- - lib/adwords_api/v201206/traffic_estimator_service.rb
201
- - lib/adwords_api/v201206/info_service.rb
202
- - lib/adwords_api/v201206/data_service_registry.rb
203
- - lib/adwords_api/v201206/ad_extension_override_service.rb
204
- - lib/adwords_api/v201206/report_definition_service.rb
205
- - lib/adwords_api/v201206/ad_param_service_registry.rb
206
- - lib/adwords_api/v201206/mutate_job_service_registry.rb
207
- - lib/adwords_api/v201206/constant_data_service.rb
208
- - lib/adwords_api/v201206/ad_group_criterion_service_registry.rb
209
- - lib/adwords_api/v201206/customer_service_registry.rb
210
- - lib/adwords_api/v201206/campaign_ad_extension_service.rb
211
- - lib/adwords_api/v201206/campaign_criterion_service_registry.rb
212
- - lib/adwords_api/v201206/managed_customer_service_registry.rb
213
- - lib/adwords_api/v201206/report_definition_service_registry.rb
214
- - lib/adwords_api/v201206/media_service.rb
215
- - lib/adwords_api/v201206/geo_location_service_registry.rb
216
- - lib/adwords_api/v201206/targeting_idea_service_registry.rb
217
- - lib/adwords_api/v201206/bulk_mutate_job_service_registry.rb
218
- - lib/adwords_api/v201206/data_service.rb
219
179
  - lib/adwords_api.rb
220
180
  - test/suite_integration.rb
221
181
  - test/examples/v201302/utils.rb
@@ -239,16 +199,6 @@ files:
239
199
  - test/examples/v201209/test_reporting.rb
240
200
  - test/examples/v201209/test_basic_operations.rb
241
201
  - test/examples/v201209/test_campaign_management.rb
242
- - test/examples/v201206/utils.rb
243
- - test/examples/v201206/test_error_handling.rb
244
- - test/examples/v201206/test_targeting.rb
245
- - test/examples/v201206/test_misc.rb
246
- - test/examples/v201206/test_remarketing.rb
247
- - test/examples/v201206/test_account_management.rb
248
- - test/examples/v201206/test_optimization.rb
249
- - test/examples/v201206/test_reporting.rb
250
- - test/examples/v201206/test_basic_operations.rb
251
- - test/examples/v201206/test_campaign_management.rb
252
202
  - test/suite_exampletests_v201209.rb
253
203
  - test/bugs/test_issue_00000063.rb
254
204
  - test/bugs/test_issue_00000031.rb
@@ -259,9 +209,9 @@ files:
259
209
  - test/adwords_api/test_credential_handler.rb
260
210
  - test/adwords_api/test_api_config.rb
261
211
  - test/adwords_api/test_utils.rb
212
+ - test/templates/v201302/misc_use_oauth2_jwt.def
262
213
  - test/templates/v201302/basic_operations_get_campaigns.def
263
214
  - test/templates/v201209/basic_operations_get_campaigns.def
264
- - test/suite_exampletests_v201206.rb
265
215
  - test/suite_exampletests_v201302.rb
266
216
  - test/test_utils.rb
267
217
  - examples/v201302/reporting/download_criteria_report.rb
@@ -321,12 +271,21 @@ files:
321
271
  - examples/v201302/remarketing/add_conversion_tracker.rb
322
272
  - examples/v201302/remarketing/add_audience.rb
323
273
  - examples/v201302/advanced_operations/add_site_links.rb
274
+ - examples/v201302/advanced_operations/create_and_attach_shared_keyword_set.rb
275
+ - examples/v201302/advanced_operations/find_and_remove_criteria_from_shared_set.rb
324
276
  - examples/v201302/advanced_operations/add_click_to_download_ad.rb
325
277
  - examples/v201209/reporting/download_criteria_report.rb
326
278
  - examples/v201209/reporting/get_campaign_stats.rb
327
279
  - examples/v201209/reporting/parallel_report_download.rb
328
280
  - examples/v201209/reporting/get_report_fields.rb
329
281
  - examples/v201209/reporting/download_criteria_report_with_awql.rb
282
+ - examples/v201209/adwords_for_video/get_video_campaign_stats.rb
283
+ - examples/v201209/adwords_for_video/get_keyword_criteria.rb
284
+ - examples/v201209/adwords_for_video/find_videos.rb
285
+ - examples/v201209/adwords_for_video/add_video_campaign.rb
286
+ - examples/v201209/adwords_for_video/get_targeting_groups.rb
287
+ - examples/v201209/adwords_for_video/get_video_campaigns.rb
288
+ - examples/v201209/adwords_for_video/get_video_campaign_criteria.rb
330
289
  - examples/v201209/error_handling/handle_policy_violation_error.rb
331
290
  - examples/v201209/error_handling/handle_two_factor_authorization_error.rb
332
291
  - examples/v201209/error_handling/handle_captcha_challenge.rb
@@ -380,60 +339,6 @@ files:
380
339
  - examples/v201209/misc/use_oauth2.rb
381
340
  - examples/v201209/remarketing/add_conversion_tracker.rb
382
341
  - examples/v201209/remarketing/add_audience.rb
383
- - examples/v201206/reporting/download_criteria_report.rb
384
- - examples/v201206/reporting/get_campaign_stats.rb
385
- - examples/v201206/reporting/parallel_report_download.rb
386
- - examples/v201206/reporting/get_report_fields.rb
387
- - examples/v201206/reporting/download_criteria_report_with_awql.rb
388
- - examples/v201206/error_handling/handle_policy_violation_error.rb
389
- - examples/v201206/error_handling/handle_two_factor_authorization_error.rb
390
- - examples/v201206/error_handling/handle_captcha_challenge.rb
391
- - examples/v201206/error_handling/handle_partial_failures.rb
392
- - examples/v201206/targeting/lookup_location.rb
393
- - examples/v201206/targeting/get_targetable_languages_and_carriers.rb
394
- - examples/v201206/targeting/add_campaign_targeting_criteria.rb
395
- - examples/v201206/targeting/get_campaign_targeting_criteria.rb
396
- - examples/v201206/campaign_management/validate_text_ad.rb
397
- - examples/v201206/campaign_management/add_experiment.rb
398
- - examples/v201206/campaign_management/set_ad_parameters.rb
399
- - examples/v201206/campaign_management/get_all_disapproved_ads_with_awql.rb
400
- - examples/v201206/campaign_management/add_location_extension.rb
401
- - examples/v201206/campaign_management/add_keywords_in_bulk.rb
402
- - examples/v201206/campaign_management/promote_experiment.rb
403
- - examples/v201206/campaign_management/get_all_disapproved_ads.rb
404
- - examples/v201206/campaign_management/add_location_extension_override.rb
405
- - examples/v201206/account_management/get_account_hierarchy.rb
406
- - examples/v201206/account_management/get_account_changes.rb
407
- - examples/v201206/account_management/get_client_unit_usage.rb
408
- - examples/v201206/account_management/get_client_customer_id.rb
409
- - examples/v201206/account_management/get_account_alerts.rb
410
- - examples/v201206/account_management/create_account.rb
411
- - examples/v201206/optimization/estimate_keyword_traffic.rb
412
- - examples/v201206/optimization/get_keyword_bid_simulations.rb
413
- - examples/v201206/optimization/get_keyword_ideas.rb
414
- - examples/v201206/optimization/get_placement_ideas.rb
415
- - examples/v201206/basic_operations/update_campaign.rb
416
- - examples/v201206/basic_operations/get_campaigns.rb
417
- - examples/v201206/basic_operations/get_ad_groups.rb
418
- - examples/v201206/basic_operations/add_campaigns.rb
419
- - examples/v201206/basic_operations/delete_ad_group.rb
420
- - examples/v201206/basic_operations/delete_keyword.rb
421
- - examples/v201206/basic_operations/delete_ad.rb
422
- - examples/v201206/basic_operations/add_ad_groups.rb
423
- - examples/v201206/basic_operations/update_ad_group.rb
424
- - examples/v201206/basic_operations/get_keywords.rb
425
- - examples/v201206/basic_operations/delete_campaign.rb
426
- - examples/v201206/basic_operations/get_text_ads.rb
427
- - examples/v201206/basic_operations/add_keywords.rb
428
- - examples/v201206/basic_operations/add_text_ads.rb
429
- - examples/v201206/basic_operations/get_campaigns_with_awql.rb
430
- - examples/v201206/basic_operations/pause_ad.rb
431
- - examples/v201206/basic_operations/update_keyword.rb
432
- - examples/v201206/misc/upload_image.rb
433
- - examples/v201206/misc/get_all_images_and_videos.rb
434
- - examples/v201206/misc/use_oauth2.rb
435
- - examples/v201206/remarketing/add_conversion_tracker.rb
436
- - examples/v201206/remarketing/add_audience.rb
437
342
  - COPYING
438
343
  - README
439
344
  - ChangeLog