google-adwords-api 0.9.3 → 0.10.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 (213) hide show
  1. data/ChangeLog +4 -0
  2. data/README +4 -4
  3. data/examples/{v201209 → v201309}/account_management/create_account.rb +9 -1
  4. data/examples/{v201209 → v201309}/account_management/get_account_alerts.rb +9 -1
  5. data/examples/{v201209 → v201309}/account_management/get_account_changes.rb +9 -1
  6. data/examples/{v201209 → v201309}/account_management/get_account_hierarchy.rb +9 -1
  7. data/examples/v201309/advanced_operations/add_ad_group_bid_modifier.rb +105 -0
  8. data/examples/v201309/advanced_operations/add_click_to_download_ad.rb +137 -0
  9. data/examples/v201309/advanced_operations/add_site_links.rb +244 -0
  10. data/examples/v201309/advanced_operations/create_and_attach_shared_keyword_set.rb +147 -0
  11. data/examples/v201309/advanced_operations/find_and_remove_criteria_from_shared_set.rb +181 -0
  12. data/examples/{v201209/adwords_for_video/get_video_campaign_criteria.rb → v201309/advanced_operations/get_ad_group_bid_modifiers.rb} +30 -23
  13. data/examples/v201309/advanced_operations/upload_offline_conversions.rb +117 -0
  14. data/examples/v201309/advanced_operations/use_shared_bidding_strategy.rb +163 -0
  15. data/examples/{v201209 → v201309}/basic_operations/add_ad_groups.rb +28 -21
  16. data/examples/{v201209 → v201309}/basic_operations/add_campaigns.rb +18 -15
  17. data/examples/{v201209 → v201309}/basic_operations/add_keywords.rb +9 -1
  18. data/examples/{v201209 → v201309}/basic_operations/add_text_ads.rb +9 -1
  19. data/examples/{v201209 → v201309}/basic_operations/delete_ad.rb +9 -1
  20. data/examples/{v201209 → v201309}/basic_operations/delete_ad_group.rb +9 -1
  21. data/examples/{v201209 → v201309}/basic_operations/delete_campaign.rb +9 -1
  22. data/examples/{v201209 → v201309}/basic_operations/delete_keyword.rb +9 -1
  23. data/examples/{v201209 → v201309}/basic_operations/get_ad_groups.rb +9 -1
  24. data/examples/{v201209 → v201309}/basic_operations/get_campaigns.rb +9 -1
  25. data/examples/{v201209 → v201309}/basic_operations/get_campaigns_with_awql.rb +9 -1
  26. data/examples/{v201209 → v201309}/basic_operations/get_keywords.rb +9 -1
  27. data/examples/{v201209 → v201309}/basic_operations/get_text_ads.rb +9 -1
  28. data/examples/{v201209 → v201309}/basic_operations/pause_ad.rb +9 -1
  29. data/examples/{v201209 → v201309}/basic_operations/update_ad_group.rb +9 -1
  30. data/examples/{v201209 → v201309}/basic_operations/update_campaign.rb +9 -1
  31. data/examples/{v201209 → v201309}/basic_operations/update_keyword.rb +21 -10
  32. data/examples/{v201209 → v201309}/campaign_management/add_experiment.rb +9 -1
  33. data/examples/{v201209 → v201309}/campaign_management/add_keywords_in_bulk.rb +10 -2
  34. data/examples/{v201209 → v201309}/campaign_management/add_location_extension.rb +9 -1
  35. data/examples/{v201209 → v201309}/campaign_management/add_location_extension_override.rb +9 -1
  36. data/examples/{v201209 → v201309}/campaign_management/get_all_disapproved_ads.rb +21 -13
  37. data/examples/{v201209 → v201309}/campaign_management/get_all_disapproved_ads_with_awql.rb +17 -8
  38. data/examples/{v201209 → v201309}/campaign_management/promote_experiment.rb +9 -1
  39. data/examples/{v201209 → v201309}/campaign_management/set_ad_parameters.rb +9 -1
  40. data/examples/{v201209 → v201309}/campaign_management/set_criterion_bid_modifier.rb +11 -5
  41. data/examples/{v201209 → v201309}/campaign_management/validate_text_ad.rb +9 -1
  42. data/examples/{v201209 → v201309}/error_handling/handle_captcha_challenge.rb +1 -1
  43. data/examples/{v201209 → v201309}/error_handling/handle_partial_failures.rb +9 -1
  44. data/examples/{v201209 → v201309}/error_handling/handle_policy_violation_error.rb +9 -1
  45. data/examples/{v201209 → v201309}/error_handling/handle_two_factor_authorization_error.rb +1 -1
  46. data/examples/{v201209 → v201309}/misc/get_all_images_and_videos.rb +9 -1
  47. data/examples/{v201209/misc/use_oauth2.rb → v201309/misc/setup_oauth2.rb} +17 -26
  48. data/examples/{v201209 → v201309}/misc/upload_image.rb +9 -1
  49. data/examples/{v201209 → v201309}/misc/use_oauth2_jwt.rb +1 -1
  50. data/examples/{v201209 → v201309}/optimization/estimate_keyword_traffic.rb +9 -1
  51. data/examples/{v201209 → v201309}/optimization/get_keyword_bid_simulations.rb +9 -1
  52. data/examples/{v201209 → v201309}/optimization/get_keyword_ideas.rb +17 -1
  53. data/examples/{v201209 → v201309}/optimization/get_placement_ideas.rb +9 -1
  54. data/examples/{v201209 → v201309}/remarketing/add_audience.rb +11 -3
  55. data/examples/{v201209 → v201309}/remarketing/add_conversion_tracker.rb +9 -2
  56. data/examples/{v201209 → v201309}/reporting/download_criteria_report.rb +9 -1
  57. data/examples/{v201209 → v201309}/reporting/download_criteria_report_with_awql.rb +9 -1
  58. data/examples/{v201209 → v201309}/reporting/get_campaign_stats.rb +9 -1
  59. data/examples/{v201209 → v201309}/reporting/get_report_fields.rb +9 -1
  60. data/examples/{v201209 → v201309}/reporting/parallel_report_download.rb +9 -1
  61. data/examples/{v201209 → v201309}/targeting/add_campaign_targeting_criteria.rb +10 -5
  62. data/examples/{v201209 → v201309}/targeting/add_demographic_targeting_criteria.rb +9 -1
  63. data/examples/{v201209 → v201309}/targeting/get_campaign_targeting_criteria.rb +9 -1
  64. data/examples/{v201209 → v201309}/targeting/get_targetable_languages_and_carriers.rb +9 -1
  65. data/examples/{v201209 → v201309}/targeting/lookup_location.rb +9 -1
  66. data/lib/adwords_api/api_config.rb +57 -55
  67. data/lib/adwords_api/{v201209 → v201309}/ad_group_ad_service.rb +7 -7
  68. data/lib/adwords_api/v201309/ad_group_ad_service_registry.rb +46 -0
  69. data/lib/adwords_api/{v201209 → v201309}/ad_group_bid_modifier_service.rb +6 -6
  70. data/lib/adwords_api/v201309/ad_group_bid_modifier_service_registry.rb +46 -0
  71. data/lib/adwords_api/{v201209 → v201309}/ad_group_criterion_service.rb +7 -7
  72. data/lib/adwords_api/v201309/ad_group_criterion_service_registry.rb +46 -0
  73. data/lib/adwords_api/v201309/ad_group_feed_service.rb +38 -0
  74. data/lib/adwords_api/v201309/ad_group_feed_service_registry.rb +46 -0
  75. data/lib/adwords_api/{v201209 → v201309}/ad_group_service.rb +7 -7
  76. data/lib/adwords_api/v201309/ad_group_service_registry.rb +46 -0
  77. data/lib/adwords_api/{v201209 → v201309}/ad_param_service.rb +7 -7
  78. data/lib/adwords_api/v201309/ad_param_service_registry.rb +46 -0
  79. data/lib/adwords_api/v201309/adwords_user_list_service.rb +38 -0
  80. data/lib/adwords_api/v201309/adwords_user_list_service_registry.rb +46 -0
  81. data/lib/adwords_api/{v201209 → v201309}/alert_service.rb +7 -7
  82. data/lib/adwords_api/v201309/alert_service_registry.rb +46 -0
  83. data/lib/adwords_api/{v201209/managed_customer_service.rb → v201309/bidding_strategy_service.rb} +9 -9
  84. data/lib/adwords_api/v201309/bidding_strategy_service_registry.rb +46 -0
  85. data/lib/adwords_api/{v201209 → v201309}/budget_order_service.rb +7 -7
  86. data/lib/adwords_api/v201309/budget_order_service_registry.rb +46 -0
  87. data/lib/adwords_api/{v201209 → v201309}/budget_service.rb +7 -7
  88. data/lib/adwords_api/v201309/budget_service_registry.rb +46 -0
  89. data/lib/adwords_api/{v201209 → v201309}/campaign_ad_extension_service.rb +7 -7
  90. data/lib/adwords_api/v201309/campaign_ad_extension_service_registry.rb +46 -0
  91. data/lib/adwords_api/{v201209 → v201309}/campaign_criterion_service.rb +7 -7
  92. data/lib/adwords_api/v201309/campaign_criterion_service_registry.rb +46 -0
  93. data/lib/adwords_api/v201309/campaign_feed_service.rb +38 -0
  94. data/lib/adwords_api/v201309/campaign_feed_service_registry.rb +46 -0
  95. data/lib/adwords_api/{v201209 → v201309}/campaign_service.rb +7 -7
  96. data/lib/adwords_api/v201309/campaign_service_registry.rb +46 -0
  97. data/lib/adwords_api/v201309/campaign_shared_set_service.rb +38 -0
  98. data/lib/adwords_api/v201309/campaign_shared_set_service_registry.rb +47 -0
  99. data/lib/adwords_api/{v201209 → v201309}/constant_data_service.rb +7 -7
  100. data/lib/adwords_api/v201309/constant_data_service_registry.rb +46 -0
  101. data/lib/adwords_api/{v201209 → v201309}/conversion_tracker_service.rb +7 -7
  102. data/lib/adwords_api/v201309/conversion_tracker_service_registry.rb +46 -0
  103. data/lib/adwords_api/{v201209 → v201309}/customer_service.rb +7 -7
  104. data/lib/adwords_api/v201309/customer_service_registry.rb +46 -0
  105. data/lib/adwords_api/{v201209 → v201309}/customer_sync_service.rb +7 -7
  106. data/lib/adwords_api/v201309/customer_sync_service_registry.rb +47 -0
  107. data/lib/adwords_api/{v201209 → v201309}/data_service.rb +7 -7
  108. data/lib/adwords_api/v201309/data_service_registry.rb +46 -0
  109. data/lib/adwords_api/{v201209 → v201309}/experiment_service.rb +7 -7
  110. data/lib/adwords_api/v201309/experiment_service_registry.rb +46 -0
  111. data/lib/adwords_api/{v201209/user_list_service.rb → v201309/feed_item_service.rb} +9 -9
  112. data/lib/adwords_api/v201309/feed_item_service_registry.rb +46 -0
  113. data/lib/adwords_api/v201309/feed_mapping_service.rb +38 -0
  114. data/lib/adwords_api/v201309/feed_mapping_service_registry.rb +46 -0
  115. data/lib/adwords_api/v201309/feed_service.rb +38 -0
  116. data/lib/adwords_api/v201309/feed_service_registry.rb +46 -0
  117. data/lib/adwords_api/{v201209 → v201309}/geo_location_service.rb +7 -7
  118. data/lib/adwords_api/v201309/geo_location_service_registry.rb +46 -0
  119. data/lib/adwords_api/{v201209 → v201309}/location_criterion_service.rb +7 -7
  120. data/lib/adwords_api/v201309/location_criterion_service_registry.rb +46 -0
  121. data/lib/adwords_api/v201309/managed_customer_service.rb +50 -0
  122. data/lib/adwords_api/v201309/managed_customer_service_registry.rb +46 -0
  123. data/lib/adwords_api/{v201209 → v201309}/media_service.rb +7 -7
  124. data/lib/adwords_api/v201309/media_service_registry.rb +46 -0
  125. data/lib/adwords_api/{v201209 → v201309}/mutate_job_service.rb +7 -7
  126. data/lib/adwords_api/v201309/mutate_job_service_registry.rb +46 -0
  127. data/lib/adwords_api/v201309/offline_conversion_feed_service.rb +34 -0
  128. data/lib/adwords_api/v201309/offline_conversion_feed_service_registry.rb +46 -0
  129. data/lib/adwords_api/{v201209 → v201309}/report_definition_service.rb +7 -7
  130. data/lib/adwords_api/v201309/report_definition_service_registry.rb +46 -0
  131. data/lib/adwords_api/v201309/shared_criterion_service.rb +38 -0
  132. data/lib/adwords_api/v201309/shared_criterion_service_registry.rb +47 -0
  133. data/lib/adwords_api/v201309/shared_set_service.rb +38 -0
  134. data/lib/adwords_api/v201309/shared_set_service_registry.rb +47 -0
  135. data/lib/adwords_api/{v201209 → v201309}/targeting_idea_service.rb +7 -7
  136. data/lib/adwords_api/v201309/targeting_idea_service_registry.rb +46 -0
  137. data/lib/adwords_api/{v201209 → v201309}/traffic_estimator_service.rb +7 -7
  138. data/lib/adwords_api/{v201209 → v201309}/traffic_estimator_service_registry.rb +5 -5
  139. data/lib/adwords_api/version.rb +1 -1
  140. data/test/adwords_api/test_adwords_api.rb +1 -1
  141. data/test/adwords_api/test_api_config.rb +8 -8
  142. data/test/adwords_api/test_report_utils.rb +1 -1
  143. data/test/bugs/test_issue_00000031.rb +2 -2
  144. data/test/bugs/test_issue_00000063.rb +6 -6
  145. data/test/templates/v201302/basic_operations_get_campaigns.def +1 -1
  146. data/test/templates/v201302/misc_use_oauth2_jwt.def +1 -1
  147. data/test/templates/v201306/basic_operations_get_campaigns.def +1 -1
  148. data/test/templates/v201306/misc_use_oauth2_jwt.def +1 -1
  149. data/test/templates/{v201209 → v201309}/basic_operations_get_campaigns.def +7 -7
  150. data/test/templates/v201309/misc_use_oauth2_jwt.def +131 -0
  151. metadata +416 -430
  152. data/examples/v201209/account_management/get_client_customer_id.rb +0 -88
  153. data/examples/v201209/account_management/get_client_unit_usage.rb +0 -90
  154. data/examples/v201209/adwords_for_video/add_video_campaign.rb +0 -103
  155. data/examples/v201209/adwords_for_video/find_videos.rb +0 -92
  156. data/examples/v201209/adwords_for_video/get_keyword_criteria.rb +0 -101
  157. data/examples/v201209/adwords_for_video/get_targeting_groups.rb +0 -93
  158. data/examples/v201209/adwords_for_video/get_video_campaign_stats.rb +0 -126
  159. data/examples/v201209/adwords_for_video/get_video_campaigns.rb +0 -94
  160. data/examples/v201209/campaign_management/set_campaign_enhanced.rb +0 -89
  161. data/lib/adwords_api/v201209/ad_extension_override_service.rb +0 -38
  162. data/lib/adwords_api/v201209/ad_extension_override_service_registry.rb +0 -46
  163. data/lib/adwords_api/v201209/ad_group_ad_service_registry.rb +0 -46
  164. data/lib/adwords_api/v201209/ad_group_bid_modifier_service_registry.rb +0 -46
  165. data/lib/adwords_api/v201209/ad_group_criterion_service_registry.rb +0 -46
  166. data/lib/adwords_api/v201209/ad_group_service_registry.rb +0 -46
  167. data/lib/adwords_api/v201209/ad_param_service_registry.rb +0 -46
  168. data/lib/adwords_api/v201209/alert_service_registry.rb +0 -46
  169. data/lib/adwords_api/v201209/budget_order_service_registry.rb +0 -46
  170. data/lib/adwords_api/v201209/budget_service_registry.rb +0 -46
  171. data/lib/adwords_api/v201209/campaign_ad_extension_service_registry.rb +0 -46
  172. data/lib/adwords_api/v201209/campaign_criterion_service_registry.rb +0 -46
  173. data/lib/adwords_api/v201209/campaign_service_registry.rb +0 -46
  174. data/lib/adwords_api/v201209/constant_data_service_registry.rb +0 -46
  175. data/lib/adwords_api/v201209/conversion_tracker_service_registry.rb +0 -46
  176. data/lib/adwords_api/v201209/customer_service_registry.rb +0 -46
  177. data/lib/adwords_api/v201209/customer_sync_service_registry.rb +0 -47
  178. data/lib/adwords_api/v201209/data_service_registry.rb +0 -46
  179. data/lib/adwords_api/v201209/experiment_service_registry.rb +0 -46
  180. data/lib/adwords_api/v201209/geo_location_service_registry.rb +0 -46
  181. data/lib/adwords_api/v201209/info_service.rb +0 -34
  182. data/lib/adwords_api/v201209/info_service_registry.rb +0 -46
  183. data/lib/adwords_api/v201209/location_criterion_service_registry.rb +0 -46
  184. data/lib/adwords_api/v201209/managed_customer_service_registry.rb +0 -46
  185. data/lib/adwords_api/v201209/media_service_registry.rb +0 -46
  186. data/lib/adwords_api/v201209/mutate_job_service_registry.rb +0 -46
  187. data/lib/adwords_api/v201209/report_definition_service_registry.rb +0 -46
  188. data/lib/adwords_api/v201209/targeting_idea_service_registry.rb +0 -46
  189. data/lib/adwords_api/v201209/user_list_service_registry.rb +0 -46
  190. data/lib/adwords_api/v201209/video_ad_service.rb +0 -38
  191. data/lib/adwords_api/v201209/video_ad_service_registry.rb +0 -46
  192. data/lib/adwords_api/v201209/video_campaign_criterion_service.rb +0 -38
  193. data/lib/adwords_api/v201209/video_campaign_criterion_service_registry.rb +0 -47
  194. data/lib/adwords_api/v201209/video_campaign_service.rb +0 -38
  195. data/lib/adwords_api/v201209/video_campaign_service_registry.rb +0 -46
  196. data/lib/adwords_api/v201209/video_service.rb +0 -42
  197. data/lib/adwords_api/v201209/video_service_registry.rb +0 -46
  198. data/lib/adwords_api/v201209/video_targeting_group_criterion_service.rb +0 -38
  199. data/lib/adwords_api/v201209/video_targeting_group_criterion_service_registry.rb +0 -46
  200. data/lib/adwords_api/v201209/video_targeting_group_service.rb +0 -38
  201. data/lib/adwords_api/v201209/video_targeting_group_service_registry.rb +0 -46
  202. data/test/examples/v201209/test_account_management.rb +0 -60
  203. data/test/examples/v201209/test_basic_operations.rb +0 -177
  204. data/test/examples/v201209/test_campaign_management.rb +0 -124
  205. data/test/examples/v201209/test_error_handling.rb +0 -63
  206. data/test/examples/v201209/test_misc.rb +0 -39
  207. data/test/examples/v201209/test_optimization.rb +0 -63
  208. data/test/examples/v201209/test_remarketing.rb +0 -39
  209. data/test/examples/v201209/test_reporting.rb +0 -84
  210. data/test/examples/v201209/test_targeting.rb +0 -60
  211. data/test/examples/v201209/utils.rb +0 -261
  212. data/test/suite_exampletests_v201209.rb +0 -37
  213. data/test/suite_exampletests_v201306.rb +0 -37
@@ -1,39 +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
- # Tests the remarketing examples.
22
-
23
- require 'test/unit'
24
-
25
- require 'remarketing/add_audience'
26
- require 'remarketing/add_conversion_tracker'
27
-
28
- class TestRemarketingV201209 < Test::Unit::TestCase
29
- def setup
30
- end
31
-
32
- def test_add_audience
33
- add_audience()
34
- end
35
-
36
- def test_add_conversion_tracker
37
- add_conversion_tracker()
38
- end
39
- end
@@ -1,84 +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
- # Tests the reporting examples.
22
-
23
- require 'test/unit'
24
- require 'tempfile'
25
-
26
- require 'reporting/download_criteria_report'
27
- require 'reporting/download_criteria_report_with_awql'
28
- require 'reporting/get_campaign_stats'
29
- require 'reporting/get_report_fields'
30
- require 'reporting/parallel_report_download'
31
-
32
- THREADS = 3
33
- MAX_RETRIES = 3
34
- BACKOFF_FACTOR = 3
35
-
36
- class TestReportingV201209 < Test::Unit::TestCase
37
- def setup()
38
- @logger = Logger.new(STDOUT)
39
- @logger.level = Logger::ERROR
40
- @adwords = AdwordsApi::Api.new()
41
- @adwords.logger = @logger
42
- @utils = UtilsV201209.new(@adwords)
43
- end
44
-
45
- def test_download_criteria_report()
46
- file = Tempfile.new('ruby-examples')
47
- begin
48
- file.close()
49
- download_criteria_report(file.path)
50
- ensure
51
- file.unlink()
52
- end
53
- end
54
-
55
- def test_download_criteria_report_with_awql()
56
- file = Tempfile.new('ruby-examples')
57
- begin
58
- file.close()
59
- download_criteria_report_with_awql(file.path, 'CSV')
60
- ensure
61
- file.unlink()
62
- end
63
- end
64
-
65
- def test_get_campaign_stats()
66
- get_campaign_stats()
67
- end
68
-
69
- def test_get_report_fields()
70
- report_type = 'ACCOUNT_PERFORMANCE_REPORT'
71
- get_report_fields(report_type)
72
- end
73
-
74
- def test_parallel_report_download()
75
- old_dir = Dir.pwd
76
- Dir.chdir('/tmp')
77
- begin
78
- parallel_report_download()
79
- ensure
80
- Dir.chdir(old_dir)
81
- end
82
- end
83
- end
84
-
@@ -1,60 +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
- # Tests the targeting examples.
22
-
23
- require 'test/unit'
24
-
25
- require 'targeting/add_campaign_targeting_criteria'
26
- require 'targeting/get_campaign_targeting_criteria'
27
- require 'targeting/get_targetable_languages_and_carriers'
28
- require 'targeting/lookup_location'
29
-
30
- class TestTargetingV201209 < Test::Unit::TestCase
31
- def setup
32
- @logger = Logger.new(STDOUT)
33
- @logger.level = Logger::ERROR
34
- @adwords = AdwordsApi::Api.new
35
- @adwords.logger = @logger
36
- @utils = UtilsV201209.new(@adwords)
37
- end
38
-
39
- def test_add_campaign_targeting_criteria
40
- campaign = @utils.get_campaign()
41
- assert_not_nil(campaign)
42
- assert_not_nil(campaign[:id])
43
- add_campaign_targeting_criteria(campaign[:id])
44
- end
45
-
46
- def test_get_campaign_targeting_criteria
47
- campaign = @utils.get_campaign()
48
- assert_not_nil(campaign)
49
- assert_not_nil(campaign[:id])
50
- get_campaign_targeting_criteria(campaign[:id])
51
- end
52
-
53
- def test_get_targetable_languages_and_carriers
54
- get_targetable_languages_and_carriers()
55
- end
56
-
57
- def test_lookup_location
58
- lookup_location()
59
- end
60
- end
@@ -1,261 +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 = :v201209
23
- PAGE_SIZE = 500
24
-
25
- class UtilsV201209
26
- def initialize(adwords)
27
- @adwords = adwords
28
- end
29
-
30
- def get_budget
31
- @budget ||= create_budget()
32
- return @budget
33
- end
34
-
35
- def get_campaign
36
- @campaign ||= create_campaign()
37
- return @campaign
38
- end
39
-
40
- def get_ad_group
41
- @ad_group ||= create_ad_group()
42
- return @ad_group
43
- end
44
-
45
- def get_ad
46
- @ad ||= create_ad(get_ad_group()[:id])
47
- return @ad
48
- end
49
-
50
- def get_keyword
51
- @keyword ||= create_keyword(get_ad_group()[:id])
52
- return @keyword
53
- end
54
-
55
- def get_location_extension
56
- @location_extension ||= create_location_extension(get_campaign()[:id])
57
- return @location_extension
58
- end
59
-
60
- def get_experiment
61
- @experiment ||= create_experiment(
62
- get_campaign()[:id], get_ad_group()[:id], get_keyword[:criterion][:id])
63
- return @experiment
64
- end
65
-
66
- private
67
-
68
- def create_campaign()
69
- budget = get_budget()
70
- budget_id = budget[:budget_id]
71
-
72
- campaign_srv = @adwords.service(:CampaignService, API_VERSION)
73
- campaign = {
74
- :name => "Example tests campaign #%d" % (Time.new.to_f * 1000).to_i,
75
- :status => 'PAUSED',
76
- :bidding_strategy => {:xsi_type => 'ManualCPC'},
77
- :budget => {:budget_id => budget_id},
78
- :network_setting => {
79
- :target_google_search => true,
80
- :target_search_network => true,
81
- :target_content_network => true
82
- },
83
- :settings => [
84
- {
85
- :xsi_type => 'KeywordMatchSetting',
86
- :opt_in => true
87
- }
88
- ]
89
- }
90
- operation = {:operator => 'ADD', :operand => campaign}
91
- response = campaign_srv.mutate([operation])
92
- return response[:value].first
93
- end
94
-
95
- def create_budget()
96
- budget_srv = @adwords.service(:BudgetService, API_VERSION)
97
- budget = {
98
- :name => 'Example tests budget #%d' % (Time.new.to_f * 1000).to_i,
99
- :amount => {:micro_amount => 50000000},
100
- :delivery_method => 'STANDARD',
101
- :period => 'DAILY'
102
- }
103
- operation = {:operator => 'ADD', :operand => budget}
104
- response = budget_srv.mutate([operation])
105
- return response[:value].first
106
- end
107
-
108
- def create_ad_group()
109
- campaign = get_campaign()
110
- ad_group_srv = @adwords.service(:AdGroupService, API_VERSION)
111
- ad_group = {
112
- :name => "Example tests ad group #%d" % (Time.new.to_f * 1000).to_i,
113
- :status => 'ENABLED',
114
- :campaign_id => campaign[:id],
115
- :bids => {
116
- :xsi_type => 'ManualCPCAdGroupBids',
117
- :keyword_max_cpc => {:amount => {:micro_amount => 10000000}},
118
- }
119
- }
120
- operation = {:operator => 'ADD', :operand => ad_group}
121
- response = ad_group_srv.mutate([operation])
122
- return response[:value].first
123
- end
124
-
125
- def create_ad(ad_group_id)
126
- ad_group_ad_srv = @adwords.service(:AdGroupAdService, API_VERSION)
127
- text_ad = {
128
- :xsi_type => 'TextAd',
129
- :headline => 'Examples test ad %d' % (Time.new.to_f * 1000).to_i,
130
- :description1 => 'testing ruby examples',
131
- :description2 => 'all your base are belong to us',
132
- :url => 'http://www.example.com',
133
- :display_url => 'www.example.com'
134
- }
135
- operation = {:operator => 'ADD',
136
- :operand => {:ad_group_id => ad_group_id, :ad => text_ad}}
137
- response = ad_group_ad_srv.mutate([operation])
138
- return response[:value].first
139
- end
140
-
141
- def create_keyword(ad_group_id)
142
- ad_group_criterion_srv =
143
- @adwords.service(:AdGroupCriterionService, API_VERSION)
144
- keyword = {
145
- :xsi_type => 'BiddableAdGroupCriterion',
146
- :ad_group_id => ad_group_id,
147
- :criterion => {
148
- :xsi_type => 'Keyword',
149
- :text => 'mars cruise',
150
- :match_type => 'BROAD'
151
- }
152
- }
153
- operation = {:operator => 'ADD', :operand => keyword}
154
- response = ad_group_criterion_srv.mutate([operation])
155
- return response[:value].first
156
- end
157
-
158
- def create_location_extension(campaign_id)
159
- campaign_ad_ext_srv =
160
- @adwords.service(:CampaignAdExtensionService, API_VERSION)
161
- geo_location_srv = @adwords.service(:GeoLocationService, API_VERSION)
162
-
163
- selector = {
164
- :addresses => [
165
- {
166
- :street_address => '1600 Amphitheatre Parkway',
167
- :city_name => 'Mountain View',
168
- :province_code => 'CA',
169
- :postal_code => '94043',
170
- :country_code => 'US'
171
- }
172
- ]
173
- }
174
-
175
- locations = geo_location_srv.get(selector)
176
- raise StandardError, 'Unable to retrieve geo locations.' if locations.nil?
177
-
178
- operations = locations.map do |location|
179
- {
180
- :operator => 'ADD',
181
- :operand => {
182
- :campaign_id => campaign_id,
183
- :status => 'ACTIVE',
184
- :ad_extension => {
185
- :xsi_type => 'LocationExtension',
186
- :address => location[:address],
187
- :geo_point => location[:geo_point],
188
- :encoded_location => location[:encoded_location],
189
- :source => 'ADWORDS_FRONTEND'
190
- }
191
- }
192
- }
193
- end
194
-
195
- response = campaign_ad_ext_srv.mutate(operations)
196
- extension = response[:value].first
197
- return extension
198
- end
199
-
200
- def create_experiment(campaign_id, ad_group_id, criterion_id)
201
- experiment_srv = @adwords.service(:ExperimentService, API_VERSION)
202
- ad_group_srv = @adwords.service(:AdGroupService, API_VERSION)
203
- ad_group_criterion_srv =
204
- @adwords.service(:AdGroupCriterionService, API_VERSION)
205
-
206
- operation = {
207
- :operator => 'ADD',
208
- :operand => {
209
- :campaign_id => campaign_id,
210
- :name => "Examples test experiment #%d" % (Time.new.to_f * 1000).to_i,
211
- :query_percentage => 10,
212
- :start_date_time => Time.now.strftime('%Y%m%d %H%M%S'),
213
- }
214
- }
215
- response = experiment_srv.mutate([operation])
216
- experiment = response[:value].first
217
-
218
- raise StandardError, 'Failed to create experiment' if experiment.nil?
219
-
220
- ad_group = {
221
- :id => ad_group_id,
222
- :experiment_data => {
223
- :experiment_id => experiment[:id],
224
- :experiment_delta_status => 'MODIFIED',
225
- :experiment_bid_multipliers => {
226
- :xsi_type => 'ManualCPCAdGroupExperimentBidMultipliers',
227
- :max_cpc_multiplier => {:multiplier => 1.5}
228
- }
229
- }
230
- }
231
-
232
- operation = {:operator => 'SET', :operand => ad_group}
233
- response = ad_group_srv.mutate([operation])
234
- ad_group = response[:value].first
235
-
236
- raise StandardError, 'Failed to assign experiment' if ad_group.nil?
237
-
238
- ad_group_criterion = {
239
- :xsi_type => 'BiddableAdGroupCriterion',
240
- :ad_group_id => ad_group_id,
241
- :criterion => {:id => criterion_id},
242
- :experiment_data => {
243
- :xsi_type => 'BiddableAdGroupCriterionExperimentData',
244
- :experiment_id => experiment[:id],
245
- :experiment_delta_status => 'MODIFIED',
246
- :experiment_bid_multiplier => {
247
- :xsi_type => 'ManualCPCAdGroupCriterionExperimentBidMultiplier',
248
- :max_cpc_multiplier => {:multiplier => 1.5}
249
- }
250
- }
251
- }
252
-
253
- operation = {:operator => 'SET', :operand => ad_group_criterion}
254
- response = ad_group_criterion_srv.mutate([operation])
255
- criterion = response[:value].first
256
-
257
- raise StandardError, 'Failed to assign criterion' if criterion.nil?
258
-
259
- return experiment
260
- end
261
- 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 v201209 example tests.
22
-
23
- require 'test/unit'
24
-
25
- $:.unshift File.expand_path('../../lib/', __FILE__)
26
- $:.unshift File.expand_path('../../', __FILE__)
27
-
28
- version = 'v201209'
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}