google-adwords-api 0.5.1 → 0.5.2

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 (70) hide show
  1. data/ChangeLog +4 -0
  2. data/README +2 -1
  3. data/examples/v201109/account_management/create_account.rb +2 -2
  4. data/examples/v201109/account_management/get_account_alerts.rb +3 -3
  5. data/examples/v201109/account_management/get_account_changes.rb +2 -2
  6. data/examples/v201109/account_management/get_account_hierarchy.rb +2 -2
  7. data/examples/v201109/account_management/get_client_customer_id.rb +6 -8
  8. data/examples/v201109/account_management/get_client_unit_usage.rb +6 -7
  9. data/examples/v201109/basic_operations/add_ad_groups.rb +111 -0
  10. data/examples/v201109/basic_operations/add_campaigns.rb +125 -0
  11. data/examples/v201109/basic_operations/add_keywords.rb +16 -11
  12. data/examples/v201109/basic_operations/add_text_ads.rb +23 -19
  13. data/examples/v201109/basic_operations/delete_ad.rb +7 -7
  14. data/examples/v201109/basic_operations/delete_ad_group.rb +7 -7
  15. data/examples/v201109/basic_operations/delete_campaign.rb +7 -7
  16. data/examples/v201109/basic_operations/delete_keyword.rb +7 -7
  17. data/examples/v201109/basic_operations/get_ad_groups.rb +7 -7
  18. data/examples/v201109/basic_operations/get_campaigns.rb +3 -3
  19. data/examples/v201109/basic_operations/get_keywords.rb +7 -7
  20. data/examples/v201109/basic_operations/get_text_ads.rb +7 -7
  21. data/examples/v201109/basic_operations/pause_ad.rb +7 -7
  22. data/examples/v201109/basic_operations/update_ad_group.rb +6 -6
  23. data/examples/v201109/basic_operations/update_campaign.rb +6 -6
  24. data/examples/v201109/basic_operations/update_keyword.rb +7 -7
  25. data/examples/v201109/campaign_management/add_experiment.rb +14 -9
  26. data/examples/v201109/campaign_management/add_keywords_in_bulk.rb +5 -5
  27. data/examples/v201109/campaign_management/add_location_extension.rb +13 -7
  28. data/examples/v201109/campaign_management/add_location_extension_override.rb +7 -7
  29. data/examples/v201109/campaign_management/get_all_disapproved_ads.rb +6 -6
  30. data/examples/v201109/campaign_management/promote_experiment.rb +5 -6
  31. data/examples/v201109/campaign_management/set_ad_parameters.rb +8 -8
  32. data/examples/v201109/campaign_management/validate_text_ad.rb +7 -9
  33. data/examples/v201109/error_handling/handle_captcha_challenge.rb +3 -4
  34. data/examples/v201109/error_handling/handle_partial_failures.rb +5 -6
  35. data/examples/v201109/error_handling/handle_policy_violation_error.rb +5 -6
  36. data/examples/v201109/error_handling/handle_two_factor_authorization_error.rb +2 -2
  37. data/examples/v201109/misc/get_all_images_and_videos.rb +3 -3
  38. data/examples/v201109/misc/upload_image.rb +2 -2
  39. data/examples/v201109/misc/use_oauth.rb +3 -3
  40. data/examples/v201109/optimization/estimate_keyword_traffic.rb +2 -2
  41. data/examples/v201109/optimization/get_keyword_bid_simulations.rb +6 -7
  42. data/examples/v201109/optimization/get_keyword_ideas.rb +6 -7
  43. data/examples/v201109/optimization/get_placement_ideas.rb +6 -7
  44. data/examples/v201109/remarketing/add_audience.rb +5 -3
  45. data/examples/v201109/remarketing/add_conversion_tracker.rb +12 -3
  46. data/examples/v201109/reporting/download_criteria_report.rb +7 -8
  47. data/examples/v201109/reporting/download_defined_report.rb +6 -7
  48. data/examples/v201109/reporting/get_campaign_stats.rb +105 -0
  49. data/examples/v201109/reporting/get_defined_reports.rb +2 -2
  50. data/examples/v201109/reporting/get_report_fields.rb +6 -7
  51. data/examples/v201109/reporting/parallel_report_download.rb +8 -8
  52. data/examples/v201109/targeting/add_campaign_targeting_criteria.rb +5 -6
  53. data/examples/v201109/targeting/get_campaign_targeting_criteria.rb +7 -8
  54. data/examples/v201109/targeting/get_targetable_languages_and_carriers.rb +2 -2
  55. data/examples/v201109/targeting/lookup_location.rb +2 -2
  56. data/lib/adwords_api/version.rb +1 -1
  57. data/test/examples/v201109/test_account_management.rb +60 -0
  58. data/test/examples/v201109/test_basic_operations.rb +172 -0
  59. data/test/examples/v201109/test_campaign_management.rb +116 -0
  60. data/test/examples/v201109/test_error_handling.rb +63 -0
  61. data/test/examples/v201109/test_misc.rb +45 -0
  62. data/test/examples/v201109/test_optimization.rb +63 -0
  63. data/test/examples/v201109/test_remarketing.rb +39 -0
  64. data/test/examples/v201109/test_reporting.rb +89 -0
  65. data/test/examples/v201109/test_targeting.rb +60 -0
  66. data/test/examples/v201109/utils.rb +239 -0
  67. data/test/suite_exampletests.rb +31 -0
  68. metadata +18 -6
  69. data/examples/v201109/basic_operations/add_ad_group.rb +0 -89
  70. data/examples/v201109/basic_operations/add_campaign.rb +0 -99
@@ -24,9 +24,7 @@
24
24
 
25
25
  require 'adwords_api'
26
26
 
27
- API_VERSION = :v201109
28
-
29
- def get_report_fields()
27
+ def get_report_fields(report_type)
30
28
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
31
29
  # when called without parameters.
32
30
  adwords = AdwordsApi::Api.new
@@ -37,12 +35,10 @@ def get_report_fields()
37
35
 
38
36
  report_def_srv = adwords.service(:ReportDefinitionService, API_VERSION)
39
37
 
40
- report_type = 'INSERT_REPORT_TYPE_HERE'
41
-
42
38
  # Get report fields.
43
39
  fields = report_def_srv.get_report_fields(report_type)
44
40
  if fields
45
- puts 'Report type \'%s\' contains the following fields:' % report_type
41
+ puts "Report type '%s' contains the following fields:" % report_type
46
42
  fields.each do |field|
47
43
  puts ' - %s (%s)' % [field[:field_name], field[:field_type]]
48
44
  puts ' := [%s]' % field[:enum_values].join(', ') if field[:enum_values]
@@ -51,8 +47,11 @@ def get_report_fields()
51
47
  end
52
48
 
53
49
  if __FILE__ == $0
50
+ API_VERSION = :v201109
51
+
54
52
  begin
55
- get_report_fields()
53
+ report_type = 'INSERT_REPORT_TYPE_HERE'
54
+ get_report_fields(report_type)
56
55
 
57
56
  # HTTP errors.
58
57
  rescue AdsCommon::Errors::HttpError => e
@@ -25,14 +25,6 @@ require 'thread'
25
25
  require 'adwords_api'
26
26
  require 'adwords_api/utils'
27
27
 
28
- API_VERSION = :v201109
29
- # Number of parallel threads to spawn.
30
- THREADS = 10
31
- # Maximum number of retries for 500 errors.
32
- MAX_RETRIES = 5
33
- # Timeout between retries in seconds.
34
- BACKOFF_FACTOR = 5
35
-
36
28
  def parallel_report_download()
37
29
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
38
30
  # when called without parameters.
@@ -145,6 +137,14 @@ def parallel_report_download()
145
137
  end
146
138
 
147
139
  if __FILE__ == $0
140
+ API_VERSION = :v201109
141
+ # Number of parallel threads to spawn.
142
+ THREADS = 10
143
+ # Maximum number of retries for 500 errors.
144
+ MAX_RETRIES = 5
145
+ # Timeout between retries in seconds.
146
+ BACKOFF_FACTOR = 5
147
+
148
148
  begin
149
149
  parallel_report_download()
150
150
 
@@ -25,9 +25,7 @@
25
25
 
26
26
  require 'adwords_api'
27
27
 
28
- API_VERSION = :v201109
29
-
30
- def add_campaign_targeting_criteria()
28
+ def add_campaign_targeting_criteria(campaign_id)
31
29
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
32
30
  # when called without parameters.
33
31
  adwords = AdwordsApi::Api.new
@@ -39,8 +37,6 @@ def add_campaign_targeting_criteria()
39
37
  campaign_criterion_srv =
40
38
  adwords.service(:CampaignCriterionService, API_VERSION)
41
39
 
42
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'
43
-
44
40
  # Create campaign criteria.
45
41
  campaign_criteria = [
46
42
  # Location criteria. The IDs can be found in the documentation or retrieved
@@ -98,8 +94,11 @@ def add_campaign_targeting_criteria()
98
94
  end
99
95
 
100
96
  if __FILE__ == $0
97
+ API_VERSION = :v201109
98
+
101
99
  begin
102
- add_campaign_targeting_criteria()
100
+ campaign_id = 'INSERT_CAMPAIGN_ID_HERE'
101
+ add_campaign_targeting_criteria(campaign_id)
103
102
 
104
103
  # HTTP errors.
105
104
  rescue AdsCommon::Errors::HttpError => e
@@ -25,10 +25,7 @@
25
25
 
26
26
  require 'adwords_api'
27
27
 
28
- API_VERSION = :v201109
29
- PAGE_SIZE = 500
30
-
31
- def get_campaign_targeting_criteria()
28
+ def get_campaign_targeting_criteria(campaign_id)
32
29
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
30
  # when called without parameters.
34
31
  adwords = AdwordsApi::Api.new
@@ -40,9 +37,6 @@ def get_campaign_targeting_criteria()
40
37
  campaign_criterion_srv =
41
38
  adwords.service(:CampaignCriterionService, API_VERSION)
42
39
 
43
- # Specify campaign ID to get targeting for.
44
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
45
-
46
40
  # Selector to get all the targeting for this campaign.
47
41
  selector = {
48
42
  :fields => ['Id', 'CriteriaType', 'KeywordText'],
@@ -82,8 +76,13 @@ def get_campaign_targeting_criteria()
82
76
  end
83
77
 
84
78
  if __FILE__ == $0
79
+ API_VERSION = :v201109
80
+ PAGE_SIZE = 500
81
+
85
82
  begin
86
- get_campaign_targeting_criteria()
83
+ # Specify campaign ID to get targeting for.
84
+ campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
85
+ get_campaign_targeting_criteria(campaign_id)
87
86
 
88
87
  # HTTP errors.
89
88
  rescue AdsCommon::Errors::HttpError => e
@@ -26,8 +26,6 @@
26
26
 
27
27
  require 'adwords_api'
28
28
 
29
- API_VERSION = :v201109
30
-
31
29
  def get_targetable_languages_and_carriers()
32
30
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
31
  # when called without parameters.
@@ -65,6 +63,8 @@ def get_targetable_languages_and_carriers()
65
63
  end
66
64
 
67
65
  if __FILE__ == $0
66
+ API_VERSION = :v201109
67
+
68
68
  begin
69
69
  get_targetable_languages_and_carriers()
70
70
 
@@ -24,8 +24,6 @@
24
24
 
25
25
  require 'adwords_api'
26
26
 
27
- API_VERSION = :v201109
28
-
29
27
  def lookup_location()
30
28
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
31
29
  # when called without parameters.
@@ -82,6 +80,8 @@ def lookup_location()
82
80
  end
83
81
 
84
82
  if __FILE__ == $0
83
+ API_VERSION = :v201109
84
+
85
85
  begin
86
86
  lookup_location()
87
87
 
@@ -21,6 +21,6 @@
21
21
 
22
22
  module AdwordsApi
23
23
  module ApiConfig
24
- CLIENT_LIB_VERSION = '0.5.1'
24
+ CLIENT_LIB_VERSION = '0.5.2'
25
25
  end
26
26
  end
@@ -0,0 +1,60 @@
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 account managements examples.
22
+
23
+ require 'test/unit'
24
+
25
+ require 'account_management/create_account'
26
+ require 'account_management/get_account_alerts'
27
+ require 'account_management/get_account_changes'
28
+ require 'account_management/get_account_hierarchy'
29
+ require 'account_management/get_client_customer_id'
30
+ require 'account_management/get_client_unit_usage'
31
+
32
+ class TestAccountManagementV201109 < Test::Unit::TestCase
33
+ def setup
34
+ end
35
+
36
+ # This test is disabled to avoid creating too many accounts.
37
+ def disabled_test_create_account
38
+ create_account()
39
+ end
40
+
41
+ def test_get_account_alerts
42
+ get_account_alerts()
43
+ end
44
+
45
+ def test_get_account_changes
46
+ get_account_changes()
47
+ end
48
+
49
+ def test_get_account_hierarchy
50
+ get_account_hierarchy()
51
+ end
52
+
53
+ def test_get_client_customer_id
54
+ get_client_customer_id('user@example.com')
55
+ end
56
+
57
+ def test_get_client_unit_usage
58
+ get_client_unit_usage(1234567890)
59
+ end
60
+ end
@@ -0,0 +1,172 @@
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 basic operations examples.
22
+
23
+ require 'test/unit'
24
+
25
+ require 'basic_operations/add_ad_groups'
26
+ require 'basic_operations/add_campaigns'
27
+ require 'basic_operations/add_keywords'
28
+ require 'basic_operations/add_text_ads'
29
+ require 'basic_operations/delete_ad_group'
30
+ require 'basic_operations/delete_ad'
31
+ require 'basic_operations/delete_campaign'
32
+ require 'basic_operations/delete_keyword'
33
+ require 'basic_operations/get_ad_groups'
34
+ require 'basic_operations/get_campaigns'
35
+ require 'basic_operations/get_keywords'
36
+ require 'basic_operations/get_text_ads'
37
+ require 'basic_operations/pause_ad'
38
+ require 'basic_operations/update_ad_group'
39
+ require 'basic_operations/update_campaign'
40
+ require 'basic_operations/update_keyword'
41
+
42
+ class TestBasicOperationsV201109 < Test::Unit::TestCase
43
+ def setup
44
+ @logger = Logger.new(STDOUT)
45
+ @logger.level = Logger::ERROR
46
+ @adwords = AdwordsApi::Api.new
47
+ @adwords.logger = @logger
48
+ @utils = UtilsV201109.new(@adwords)
49
+ end
50
+
51
+ def test_add_campaigns
52
+ add_campaigns()
53
+ end
54
+
55
+ def test_get_campaigns
56
+ get_campaigns()
57
+ end
58
+
59
+ def test_add_ad_groups
60
+ campaign = @utils.get_campaign()
61
+ assert_not_nil(campaign)
62
+ assert_not_nil(campaign[:id])
63
+ add_ad_groups(campaign[:id])
64
+ end
65
+
66
+ def test_add_keywords
67
+ ad_group = @utils.get_ad_group()
68
+ assert_not_nil(ad_group)
69
+ assert_not_nil(ad_group[:id])
70
+ add_keywords(ad_group[:id])
71
+ end
72
+
73
+ def test_get_keywords
74
+ ad_group = @utils.get_ad_group()
75
+ assert_not_nil(ad_group)
76
+ assert_not_nil(ad_group[:id])
77
+ get_keywords(ad_group[:id])
78
+ end
79
+
80
+ def test_add_text_ads
81
+ ad_group = @utils.get_ad_group()
82
+ assert_not_nil(ad_group)
83
+ assert_not_nil(ad_group[:id])
84
+ add_text_ads(ad_group[:id])
85
+ end
86
+
87
+ def test_get_text_ads
88
+ ad_group = @utils.get_ad_group()
89
+ assert_not_nil(ad_group)
90
+ assert_not_nil(ad_group[:id])
91
+ get_text_ads(ad_group[:id])
92
+ end
93
+
94
+ def test_pause_ad
95
+ ad_group = @utils.get_ad_group()
96
+ assert_not_nil(ad_group)
97
+ assert_not_nil(ad_group[:id])
98
+ ad = @utils.get_ad()
99
+ assert_not_nil(ad)
100
+ assert_not_nil(ad[:ad])
101
+ assert_not_nil(ad[:ad][:id])
102
+ pause_ad(ad_group[:id], ad[:ad][:id])
103
+ end
104
+
105
+ def test_update_ad_group
106
+ ad_group = @utils.get_ad_group()
107
+ assert_not_nil(ad_group)
108
+ assert_not_nil(ad_group[:id])
109
+ update_ad_group(ad_group[:id])
110
+ end
111
+
112
+ def test_update_campaign
113
+ campaign = @utils.get_campaign()
114
+ assert_not_nil(campaign)
115
+ assert_not_nil(campaign[:id])
116
+ update_campaign(campaign[:id])
117
+ end
118
+
119
+ def test_update_keyword
120
+ ad_group = @utils.get_ad_group()
121
+ assert_not_nil(ad_group)
122
+ assert_not_nil(ad_group[:id])
123
+ keyword = @utils.get_keyword()
124
+ assert_not_nil(keyword)
125
+ assert_not_nil(keyword[:criterion])
126
+ assert_not_nil(keyword[:criterion][:id])
127
+ update_keyword(ad_group[:id], keyword[:criterion][:id])
128
+ end
129
+
130
+ def test_delete_keyword
131
+ ad_group = @utils.get_ad_group()
132
+ assert_not_nil(ad_group)
133
+ assert_not_nil(ad_group[:id])
134
+ keyword = @utils.get_keyword()
135
+ assert_not_nil(keyword)
136
+ assert_not_nil(keyword[:criterion])
137
+ assert_not_nil(keyword[:criterion][:id])
138
+ delete_keyword(ad_group[:id], keyword[:criterion][:id])
139
+ end
140
+
141
+ def test_delete_ad
142
+ ad_group = @utils.get_ad_group()
143
+ assert_not_nil(ad_group)
144
+ assert_not_nil(ad_group[:id])
145
+ ad = @utils.get_ad()
146
+ assert_not_nil(ad)
147
+ assert_not_nil(ad[:ad])
148
+ assert_not_nil(ad[:ad][:id])
149
+ delete_ad(ad_group[:id], ad[:ad][:id])
150
+ end
151
+
152
+ def test_delete_ad_group
153
+ ad_group = @utils.get_ad_group()
154
+ assert_not_nil(ad_group)
155
+ assert_not_nil(ad_group[:id])
156
+ delete_ad_group(ad_group[:id])
157
+ end
158
+
159
+ def test_delete_campaign
160
+ campaign = @utils.get_campaign()
161
+ assert_not_nil(campaign)
162
+ assert_not_nil(campaign[:id])
163
+ delete_campaign(campaign[:id])
164
+ end
165
+
166
+ def test_get_ad_groups
167
+ campaign = @utils.get_campaign()
168
+ assert_not_nil(campaign)
169
+ assert_not_nil(campaign[:id])
170
+ get_ad_groups(campaign[:id])
171
+ end
172
+ end
@@ -0,0 +1,116 @@
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 campaign management examples.
22
+
23
+ require 'test/unit'
24
+
25
+ require 'campaign_management/add_experiment'
26
+ require 'campaign_management/add_keywords_in_bulk'
27
+ require 'campaign_management/add_location_extension'
28
+ require 'campaign_management/add_location_extension_override'
29
+ require 'campaign_management/get_all_disapproved_ads'
30
+ require 'campaign_management/promote_experiment'
31
+ require 'campaign_management/set_ad_parameters'
32
+ require 'campaign_management/validate_text_ad'
33
+
34
+ RETRY_INTERVAL = 5
35
+ RETRIES_COUNT = 3
36
+ KEYWORD_NUMBER = 3
37
+
38
+ class TestCampaignManagementV201109 < Test::Unit::TestCase
39
+ def setup
40
+ @logger = Logger.new(STDOUT)
41
+ @logger.level = Logger::ERROR
42
+ @adwords = AdwordsApi::Api.new
43
+ @adwords.logger = @logger
44
+ @utils = UtilsV201109.new(@adwords)
45
+ end
46
+
47
+ def test_add_experiment
48
+ campaign = @utils.get_campaign()
49
+ ad_group = @utils.get_ad_group()
50
+ criterion = @utils.get_keyword()
51
+ assert_not_nil(campaign)
52
+ assert_not_nil(campaign[:id])
53
+ assert_not_nil(ad_group)
54
+ assert_not_nil(ad_group[:id])
55
+ assert_not_nil(criterion)
56
+ assert_not_nil(criterion[:criterion])
57
+ assert_not_nil(criterion[:criterion][:id])
58
+ add_experiment(campaign[:id], ad_group[:id], criterion[:criterion][:id])
59
+ end
60
+
61
+ def test_add_keywords_in_bulk
62
+ add_keywords_in_bulk()
63
+ end
64
+
65
+ def test_add_location_extension
66
+ campaign = @utils.get_campaign()
67
+ assert_not_nil(campaign)
68
+ assert_not_nil(campaign[:id])
69
+ add_location_extension(campaign[:id])
70
+ end
71
+
72
+ def test_add_location_extension_override
73
+ ad = @utils.get_ad()
74
+ location_extension = @utils.get_location_extension()
75
+ assert_not_nil(ad)
76
+ assert_not_nil(ad[:ad])
77
+ assert_not_nil(ad[:ad][:id])
78
+ assert_not_nil(location_extension)
79
+ assert_not_nil(location_extension[:ad_extension])
80
+ assert_not_nil(location_extension[:ad_extension][:id])
81
+ add_location_extension_override(
82
+ ad[:ad][:id], location_extension[:ad_extension][:id])
83
+ end
84
+
85
+ def test_get_all_disapproved_ads
86
+ ad_group = @utils.get_ad_group()
87
+ assert_not_nil(ad_group)
88
+ assert_not_nil(ad_group[:id])
89
+ get_all_disapproved_ads(ad_group[:id])
90
+ end
91
+
92
+ def test_promote_experiment
93
+ experiment = @utils.get_experiment()
94
+ assert_not_nil(experiment)
95
+ assert_not_nil(experiment[:id])
96
+ promote_experiment(experiment[:id])
97
+ end
98
+
99
+ def test_set_ad_parameters
100
+ ad_group = @utils.get_ad_group()
101
+ assert_not_nil(ad_group)
102
+ assert_not_nil(ad_group[:id])
103
+ criterion = @utils.get_keyword()
104
+ assert_not_nil(criterion)
105
+ assert_not_nil(criterion[:criterion])
106
+ assert_not_nil(criterion[:criterion][:id])
107
+ set_ad_parameters(ad_group[:id], criterion[:criterion][:id])
108
+ end
109
+
110
+ def test_validate_text_ad
111
+ ad_group = @utils.get_ad_group()
112
+ assert_not_nil(ad_group)
113
+ assert_not_nil(ad_group[:id])
114
+ validate_text_ad(ad_group[:id])
115
+ end
116
+ end