google-adwords-api 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. data/ChangeLog +6 -0
  2. data/README +3 -3
  3. data/examples/{v201206/basic_operations/delete_ad_group.rb → v201209/adwords_for_video/add_video_campaign.rb} +41 -40
  4. data/examples/{v201206/basic_operations/pause_ad.rb → v201209/adwords_for_video/find_videos.rb} +33 -25
  5. data/examples/{v201206/basic_operations/get_keywords.rb → v201209/adwords_for_video/get_keyword_criteria.rb} +24 -27
  6. data/examples/{v201206/basic_operations/get_campaigns_with_awql.rb → v201209/adwords_for_video/get_targeting_groups.rb} +26 -18
  7. data/examples/{v201206/basic_operations/get_ad_groups.rb → v201209/adwords_for_video/get_video_campaign_criteria.rb} +22 -21
  8. data/examples/v201209/adwords_for_video/get_video_campaign_stats.rb +126 -0
  9. data/examples/{v201206/basic_operations/get_campaigns.rb → v201209/adwords_for_video/get_video_campaigns.rb} +16 -15
  10. data/examples/v201302/advanced_operations/create_and_attach_shared_keyword_set.rb +139 -0
  11. data/examples/v201302/advanced_operations/find_and_remove_criteria_from_shared_set.rb +173 -0
  12. data/lib/adwords_api/api_config.rb +17 -59
  13. data/lib/adwords_api/report_utils.rb +3 -19
  14. data/lib/adwords_api/{v201206/ad_param_service.rb → v201209/video_ad_service.rb} +8 -8
  15. data/lib/adwords_api/v201209/video_ad_service_registry.rb +46 -0
  16. data/lib/adwords_api/{v201206/campaign_ad_extension_service.rb → v201209/video_campaign_criterion_service.rb} +8 -8
  17. data/lib/adwords_api/v201209/video_campaign_criterion_service_registry.rb +47 -0
  18. data/lib/adwords_api/{v201206/bulk_mutate_job_service.rb → v201209/video_campaign_service.rb} +8 -8
  19. data/lib/adwords_api/v201209/video_campaign_service_registry.rb +46 -0
  20. data/lib/adwords_api/v201209/video_service.rb +42 -0
  21. data/lib/adwords_api/v201209/video_service_registry.rb +46 -0
  22. data/lib/adwords_api/{v201206/ad_group_ad_service.rb → v201209/video_targeting_group_criterion_service.rb} +8 -12
  23. data/lib/adwords_api/v201209/video_targeting_group_criterion_service_registry.rb +46 -0
  24. data/lib/adwords_api/{v201206/ad_extension_override_service.rb → v201209/video_targeting_group_service.rb} +8 -8
  25. data/lib/adwords_api/v201209/video_targeting_group_service_registry.rb +46 -0
  26. data/lib/adwords_api/v201302/ad_group_feed_service.rb +1 -1
  27. data/lib/adwords_api/v201302/ad_group_feed_service_registry.rb +2 -2
  28. data/lib/adwords_api/v201302/campaign_feed_service.rb +1 -1
  29. data/lib/adwords_api/v201302/campaign_feed_service_registry.rb +2 -2
  30. data/lib/adwords_api/v201302/feed_item_service.rb +1 -1
  31. data/lib/adwords_api/v201302/feed_item_service_registry.rb +3 -4
  32. data/lib/adwords_api/v201302/feed_service.rb +1 -1
  33. data/lib/adwords_api/v201302/feed_service_registry.rb +4 -5
  34. data/lib/adwords_api/{v201206/user_list_service.rb → v201302/shared_set_service.rb} +9 -9
  35. data/lib/adwords_api/v201302/shared_set_service_registry.rb +47 -0
  36. data/lib/adwords_api/version.rb +1 -1
  37. data/test/adwords_api/test_report_utils.rb +0 -89
  38. data/test/examples/v201302/test_advanced_operations.rb +10 -0
  39. data/test/templates/v201209/basic_operations_get_campaigns.def +1 -1
  40. data/test/templates/v201302/basic_operations_get_campaigns.def +1 -1
  41. data/test/templates/v201302/misc_use_oauth2_jwt.def +131 -0
  42. data/test/test_utils.rb +6 -2
  43. metadata +26 -121
  44. data/examples/v201206/account_management/create_account.rb +0 -87
  45. data/examples/v201206/account_management/get_account_alerts.rb +0 -114
  46. data/examples/v201206/account_management/get_account_changes.rb +0 -137
  47. data/examples/v201206/account_management/get_account_hierarchy.rb +0 -95
  48. data/examples/v201206/account_management/get_client_customer_id.rb +0 -88
  49. data/examples/v201206/account_management/get_client_unit_usage.rb +0 -90
  50. data/examples/v201206/basic_operations/add_ad_groups.rb +0 -136
  51. data/examples/v201206/basic_operations/add_campaigns.rb +0 -151
  52. data/examples/v201206/basic_operations/add_keywords.rb +0 -108
  53. data/examples/v201206/basic_operations/add_text_ads.rb +0 -105
  54. data/examples/v201206/basic_operations/delete_ad.rb +0 -85
  55. data/examples/v201206/basic_operations/delete_campaign.rb +0 -103
  56. data/examples/v201206/basic_operations/delete_keyword.rb +0 -90
  57. data/examples/v201206/basic_operations/get_text_ads.rb +0 -106
  58. data/examples/v201206/basic_operations/update_ad_group.rb +0 -81
  59. data/examples/v201206/basic_operations/update_campaign.rb +0 -84
  60. data/examples/v201206/basic_operations/update_keyword.rb +0 -99
  61. data/examples/v201206/campaign_management/add_experiment.rb +0 -158
  62. data/examples/v201206/campaign_management/add_keywords_in_bulk.rb +0 -150
  63. data/examples/v201206/campaign_management/add_location_extension.rb +0 -117
  64. data/examples/v201206/campaign_management/add_location_extension_override.rb +0 -83
  65. data/examples/v201206/campaign_management/get_all_disapproved_ads.rb +0 -93
  66. data/examples/v201206/campaign_management/get_all_disapproved_ads_with_awql.rb +0 -84
  67. data/examples/v201206/campaign_management/promote_experiment.rb +0 -77
  68. data/examples/v201206/campaign_management/set_ad_parameters.rb +0 -114
  69. data/examples/v201206/campaign_management/validate_text_ad.rb +0 -106
  70. data/examples/v201206/error_handling/handle_captcha_challenge.rb +0 -93
  71. data/examples/v201206/error_handling/handle_partial_failures.rb +0 -126
  72. data/examples/v201206/error_handling/handle_policy_violation_error.rb +0 -137
  73. data/examples/v201206/error_handling/handle_two_factor_authorization_error.rb +0 -88
  74. data/examples/v201206/misc/get_all_images_and_videos.rb +0 -100
  75. data/examples/v201206/misc/upload_image.rb +0 -89
  76. data/examples/v201206/misc/use_oauth2.rb +0 -97
  77. data/examples/v201206/optimization/estimate_keyword_traffic.rb +0 -129
  78. data/examples/v201206/optimization/get_keyword_bid_simulations.rb +0 -92
  79. data/examples/v201206/optimization/get_keyword_ideas.rb +0 -114
  80. data/examples/v201206/optimization/get_placement_ideas.rb +0 -104
  81. data/examples/v201206/remarketing/add_audience.rb +0 -115
  82. data/examples/v201206/remarketing/add_conversion_tracker.rb +0 -97
  83. data/examples/v201206/reporting/download_criteria_report.rb +0 -79
  84. data/examples/v201206/reporting/download_criteria_report_with_awql.rb +0 -78
  85. data/examples/v201206/reporting/get_campaign_stats.rb +0 -105
  86. data/examples/v201206/reporting/get_report_fields.rb +0 -71
  87. data/examples/v201206/reporting/parallel_report_download.rb +0 -162
  88. data/examples/v201206/targeting/add_campaign_targeting_criteria.rb +0 -118
  89. data/examples/v201206/targeting/get_campaign_targeting_criteria.rb +0 -102
  90. data/examples/v201206/targeting/get_targetable_languages_and_carriers.rb +0 -86
  91. data/examples/v201206/targeting/lookup_location.rb +0 -104
  92. data/lib/adwords_api/v201206/ad_extension_override_service_registry.rb +0 -46
  93. data/lib/adwords_api/v201206/ad_group_ad_service_registry.rb +0 -46
  94. data/lib/adwords_api/v201206/ad_group_criterion_service.rb +0 -42
  95. data/lib/adwords_api/v201206/ad_group_criterion_service_registry.rb +0 -46
  96. data/lib/adwords_api/v201206/ad_group_service.rb +0 -42
  97. data/lib/adwords_api/v201206/ad_group_service_registry.rb +0 -46
  98. data/lib/adwords_api/v201206/ad_param_service_registry.rb +0 -46
  99. data/lib/adwords_api/v201206/alert_service.rb +0 -34
  100. data/lib/adwords_api/v201206/alert_service_registry.rb +0 -46
  101. data/lib/adwords_api/v201206/budget_order_service.rb +0 -42
  102. data/lib/adwords_api/v201206/budget_order_service_registry.rb +0 -46
  103. data/lib/adwords_api/v201206/bulk_mutate_job_service_registry.rb +0 -46
  104. data/lib/adwords_api/v201206/campaign_ad_extension_service_registry.rb +0 -46
  105. data/lib/adwords_api/v201206/campaign_criterion_service.rb +0 -42
  106. data/lib/adwords_api/v201206/campaign_criterion_service_registry.rb +0 -46
  107. data/lib/adwords_api/v201206/campaign_service.rb +0 -42
  108. data/lib/adwords_api/v201206/campaign_service_registry.rb +0 -46
  109. data/lib/adwords_api/v201206/constant_data_service.rb +0 -62
  110. data/lib/adwords_api/v201206/constant_data_service_registry.rb +0 -46
  111. data/lib/adwords_api/v201206/conversion_tracker_service.rb +0 -38
  112. data/lib/adwords_api/v201206/conversion_tracker_service_registry.rb +0 -46
  113. data/lib/adwords_api/v201206/customer_service.rb +0 -34
  114. data/lib/adwords_api/v201206/customer_service_registry.rb +0 -46
  115. data/lib/adwords_api/v201206/customer_sync_service.rb +0 -34
  116. data/lib/adwords_api/v201206/customer_sync_service_registry.rb +0 -47
  117. data/lib/adwords_api/v201206/data_service.rb +0 -38
  118. data/lib/adwords_api/v201206/data_service_registry.rb +0 -46
  119. data/lib/adwords_api/v201206/experiment_service.rb +0 -38
  120. data/lib/adwords_api/v201206/experiment_service_registry.rb +0 -46
  121. data/lib/adwords_api/v201206/geo_location_service.rb +0 -34
  122. data/lib/adwords_api/v201206/geo_location_service_registry.rb +0 -46
  123. data/lib/adwords_api/v201206/info_service.rb +0 -34
  124. data/lib/adwords_api/v201206/info_service_registry.rb +0 -46
  125. data/lib/adwords_api/v201206/location_criterion_service.rb +0 -34
  126. data/lib/adwords_api/v201206/location_criterion_service_registry.rb +0 -46
  127. data/lib/adwords_api/v201206/managed_customer_service.rb +0 -38
  128. data/lib/adwords_api/v201206/managed_customer_service_registry.rb +0 -46
  129. data/lib/adwords_api/v201206/media_service.rb +0 -38
  130. data/lib/adwords_api/v201206/media_service_registry.rb +0 -46
  131. data/lib/adwords_api/v201206/mutate_job_service.rb +0 -42
  132. data/lib/adwords_api/v201206/mutate_job_service_registry.rb +0 -46
  133. data/lib/adwords_api/v201206/report_definition_service.rb +0 -34
  134. data/lib/adwords_api/v201206/report_definition_service_registry.rb +0 -46
  135. data/lib/adwords_api/v201206/targeting_idea_service.rb +0 -38
  136. data/lib/adwords_api/v201206/targeting_idea_service_registry.rb +0 -46
  137. data/lib/adwords_api/v201206/traffic_estimator_service.rb +0 -34
  138. data/lib/adwords_api/v201206/traffic_estimator_service_registry.rb +0 -46
  139. data/lib/adwords_api/v201206/user_list_service_registry.rb +0 -46
  140. data/test/examples/v201206/test_account_management.rb +0 -60
  141. data/test/examples/v201206/test_basic_operations.rb +0 -177
  142. data/test/examples/v201206/test_campaign_management.rb +0 -124
  143. data/test/examples/v201206/test_error_handling.rb +0 -63
  144. data/test/examples/v201206/test_misc.rb +0 -39
  145. data/test/examples/v201206/test_optimization.rb +0 -63
  146. data/test/examples/v201206/test_remarketing.rb +0 -39
  147. data/test/examples/v201206/test_reporting.rb +0 -84
  148. data/test/examples/v201206/test_targeting.rb +0 -60
  149. data/test/examples/v201206/utils.rb +0 -244
  150. data/test/suite_exampletests_v201206.rb +0 -37
@@ -1,117 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
- #
6
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
- #
8
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
- # implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- # This example illustrates how to create a location ad extension for an existing
22
- # campaign. To create a campaign, run add_campaign.rb.
23
- #
24
- # Tags: GeoLocationService.get, CampaignAdExtensionService.mutate
25
-
26
- require 'adwords_api'
27
-
28
- def add_location_extension(campaign_id)
29
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
30
- # when called without parameters.
31
- adwords = AdwordsApi::Api.new
32
-
33
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
- # the configuration file or provide your own logger:
35
- # adwords.logger = Logger.new('adwords_xml.log')
36
-
37
- campaign_ad_ext_srv =
38
- adwords.service(:CampaignAdExtensionService, API_VERSION)
39
- geo_location_srv = adwords.service(:GeoLocationService, API_VERSION)
40
-
41
- selector = {
42
- :addresses => [
43
- {
44
- :street_address => '1600 Amphitheatre Parkway',
45
- :city_name => 'Mountain View',
46
- :province_code => 'CA',
47
- :postal_code => '94043',
48
- :country_code => 'US'
49
- },
50
- {
51
- :street_address => "38 Avenue de l'Opéra",
52
- :city_name => 'Paris',
53
- :postal_code => '75002',
54
- :country_code => 'FR'
55
- }
56
- ]
57
- }
58
-
59
- # Get the geo location info for the various addresses and build a list of
60
- # operations with that information.
61
- locations = geo_location_srv.get(selector)
62
- raise StandardError, 'Unable to retrieve geo locations.' if locations.nil?
63
-
64
- operations = locations.map do |location|
65
- {:operator => 'ADD',
66
- :operand => {
67
- :campaign_id => campaign_id,
68
- :status => 'ACTIVE',
69
- :ad_extension => {
70
- # The 'xsi_type' field allows you to specify the xsi:type of the
71
- # object being created. It's only necessary when you must provide an
72
- # explicit type that the client library can't infer.
73
- :xsi_type => 'LocationExtension',
74
- :address => location[:address],
75
- :geo_point => location[:geo_point],
76
- :encoded_location => location[:encoded_location],
77
- :source => 'ADWORDS_FRONTEND',
78
- # Optional fields:
79
- #:company_name => 'ACME Inc.',
80
- #:phone_number => '+1-650-253-0000'
81
- }
82
- }
83
- }
84
- end
85
-
86
- # Add location ad extensions.
87
- response = campaign_ad_ext_srv.mutate(operations)
88
- response[:value].each do |extension|
89
- puts "Location extension ID %d and status '%s' successfully added." %
90
- [extension[:ad_extension][:id], extension[:status]]
91
- end
92
- end
93
-
94
- if __FILE__ == $0
95
- API_VERSION = :v201206
96
-
97
- begin
98
- # ID of campaign to add location extension to.
99
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
100
- add_location_extension(campaign_id)
101
-
102
- # HTTP errors.
103
- rescue AdsCommon::Errors::HttpError => e
104
- puts "HTTP Error: %s" % e
105
-
106
- # API errors.
107
- rescue AdwordsApi::Errors::ApiException => e
108
- puts "Message: %s" % e.message
109
- puts 'Errors:'
110
- e.errors.each_with_index do |error, index|
111
- puts "\tError [%d]:" % (index + 1)
112
- error.each do |field, value|
113
- puts "\t\t%s: %s" % [field, value]
114
- end
115
- end
116
- end
117
- end
@@ -1,83 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
- #
6
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
- #
8
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
- # implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- # This example illustrates override an ad extension for a specific ad, by
22
- # creating a location extension override. To create a campaign, run
23
- # add_campaign.rb, to create an ad, run add_text_ads.rb.
24
- #
25
- # Tags: AdExtensionOverrideService.mutate
26
-
27
- require 'adwords_api'
28
-
29
- def add_location_extension_override(ad_id, location_extension_id)
30
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
31
- # when called without parameters.
32
- adwords = AdwordsApi::Api.new
33
-
34
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
35
- # the configuration file or provide your own logger:
36
- # adwords.logger = Logger.new('adwords_xml.log')
37
-
38
- ad_ext_override_srv =
39
- adwords.service(:AdExtensionOverrideService, API_VERSION)
40
-
41
- # Create operation.
42
- operation = {
43
- :operator => 'ADD',
44
- :operand => {
45
- :ad_id => ad_id,
46
- :ad_extension => {
47
- :id => location_extension_id
48
- }
49
- }
50
- }
51
-
52
- # Add override.
53
- response = ad_ext_override_srv.mutate([operation])
54
- location_extension_override = response[:value].first
55
- puts "Location extension override with ID %d was successfully added." %
56
- location_extension_override[:ad_extension][:id]
57
- end
58
-
59
- if __FILE__ == $0
60
- API_VERSION = :v201206
61
-
62
- begin
63
- # IDs of ad and location extension override to add.
64
- ad_id = 'INSERT_AD_ID_HERE'.to_i
65
- location_extension_id = 'INSERT_LOCATION_EXTENSION_ID_HERE'.to_i
66
- add_location_extension_override(ad_id, location_extension_id)
67
-
68
- # HTTP errors.
69
- rescue AdsCommon::Errors::HttpError => e
70
- puts "HTTP Error: %s" % e
71
-
72
- # API errors.
73
- rescue AdwordsApi::Errors::ApiException => e
74
- puts "Message: %s" % e.message
75
- puts 'Errors:'
76
- e.errors.each_with_index do |error, index|
77
- puts "\tError [%d]:" % (index + 1)
78
- error.each do |field, value|
79
- puts "\t\t%s: %s" % [field, value]
80
- end
81
- end
82
- end
83
- end
@@ -1,93 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.sgomes@gmail.com (Sérgio Gomes)
5
- #
6
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
- #
8
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
- # implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- # This example illustrates how to retrieve all the disapproved ads in a given
22
- # ad group. To add ads, run add_text_ads.rb.
23
- #
24
- # Tags: AdGroupAdService.get
25
-
26
- require 'adwords_api'
27
-
28
- def get_all_disapproved_ads(ad_group_id)
29
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
30
- # when called without parameters.
31
- adwords = AdwordsApi::Api.new
32
-
33
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
- # the configuration file or provide your own logger:
35
- # adwords.logger = Logger.new('adwords_xml.log')
36
-
37
- ad_group_ad_srv = adwords.service(:AdGroupAdService, API_VERSION)
38
-
39
- # Get all the disapproved ads for this campaign.
40
- selector = {
41
- :fields => ['Id', 'DisapprovalReasons'],
42
- :ordering => [{:field => 'Id', :sort_order => 'ASCENDING'}],
43
- :predicates => [
44
- {:field => 'AdGroupId', :operator => 'IN', :values => [ad_group_id]},
45
- {
46
- :field => 'CreativeApprovalStatus',
47
- :operator => 'IN',
48
- :values => ['DISAPPROVED']
49
- }
50
- ]
51
- }
52
- response = ad_group_ad_srv.get(selector)
53
- if response and response[:entries]
54
- ad_group_ads = response[:entries]
55
- puts "Ad group ##{ad_group_id} has #{ad_group_ads.length} " +
56
- "disapproved ad(s)."
57
- ad_group_ads.each do |ad_group_ad|
58
- puts " Ad with id #{ad_group_ad[:ad][:id]} and type " +
59
- "#{ad_group_ad[:ad][:xsi_type]} was disapproved for the following " +
60
- "reasons:"
61
- ad_group_ad[:ad][:disapproval_reasons].each do |reason|
62
- puts " #{reason}"
63
- end
64
- end
65
- else
66
- puts "No disapproved ads found for ad group ##{ad_group_id}."
67
- end
68
- end
69
-
70
- if __FILE__ == $0
71
- API_VERSION = :v201206
72
-
73
- begin
74
- # ID of an ad group to get disapproved ads for.
75
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
76
- get_all_disapproved_ads(ad_group_id)
77
-
78
- # HTTP errors.
79
- rescue AdsCommon::Errors::HttpError => e
80
- puts "HTTP Error: %s" % e
81
-
82
- # API errors.
83
- rescue AdwordsApi::Errors::ApiException => e
84
- puts "Message: %s" % e.message
85
- puts 'Errors:'
86
- e.errors.each_with_index do |error, index|
87
- puts "\tError [%d]:" % (index + 1)
88
- error.each do |field, value|
89
- puts "\t\t%s: %s" % [field, value]
90
- end
91
- end
92
- end
93
- 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
- # This example illustrates how to retrieve all the disapproved ads in a given
22
- # ad group with AWQL. To add ads, run add_text_ads.rb.
23
- #
24
- # Tags: AdGroupAdService.query
25
-
26
- require 'adwords_api'
27
-
28
- def get_all_disapproved_ads_with_awql(ad_group_id)
29
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
30
- # when called without parameters.
31
- adwords = AdwordsApi::Api.new
32
-
33
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
- # the configuration file or provide your own logger:
35
- # adwords.logger = Logger.new('adwords_xml.log')
36
-
37
- ad_group_ad_srv = adwords.service(:AdGroupAdService, API_VERSION)
38
-
39
- # Get all the disapproved ads for this campaign.
40
- query = ('SELECT Id, DisapprovalReasons ' +
41
- 'WHERE AdGroupId = %d AND CreativeApprovalStatus = DISAPPROVED ' +
42
- 'ORDER BY Id') % ad_group_id
43
-
44
- response = ad_group_ad_srv.query(query)
45
- if response and response[:entries]
46
- ad_group_ads = response[:entries]
47
- puts 'Ad group ID %d has %d disapproved ad(s).' %
48
- [ad_group_id, ad_group_ads.length]
49
- ad_group_ads.each do |ad_group_ad|
50
- puts ("\tAd with ID %d and type '%s' was disapproved for the following " +
51
- + 'reasons:') % [ad_group_ad[:ad][:id], ad_group_ad[:ad][:xsi_type]]
52
- ad_group_ad[:ad][:disapproval_reasons].each do |reason|
53
- puts "\t\t%s" % reason
54
- end
55
- end
56
- else
57
- puts 'No disapproved ads found for ad group ID %d.' % ad_group_id
58
- end
59
- end
60
-
61
- if __FILE__ == $0
62
- API_VERSION = :v201206
63
-
64
- begin
65
- # ID of an ad group to get disapproved ads for.
66
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
67
- get_all_disapproved_ads_with_awql(ad_group_id)
68
-
69
- # HTTP errors.
70
- rescue AdsCommon::Errors::HttpError => e
71
- puts 'HTTP Error: %s' % e
72
-
73
- # API errors.
74
- rescue AdwordsApi::Errors::ApiException => e
75
- puts 'Message: %s' % e.message
76
- puts 'Errors:'
77
- e.errors.each_with_index do |error, index|
78
- puts "\tError [%d]:" % (index + 1)
79
- error.each do |field, value|
80
- puts "\t\t%s: %s" % [field, value]
81
- end
82
- end
83
- end
84
- end
@@ -1,77 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.sgomes@gmail.com (Sérgio Gomes)
5
- #
6
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
- #
8
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
- # implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- # This example promotes an experiment, which permanently applies all the
22
- # experiment changes made to its related ad groups, criteria and ads.
23
- #
24
- # Tags: ExperimentService.mutate
25
-
26
- require 'adwords_api'
27
-
28
- def promote_experiment(experiment_id)
29
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
30
- # when called without parameters.
31
- adwords = AdwordsApi::Api.new
32
-
33
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
- # the configuration file or provide your own logger:
35
- # adwords.logger = Logger.new('adwords_xml.log')
36
-
37
- experiment_srv = adwords.service(:ExperimentService, API_VERSION)
38
-
39
- # Prepare for updating experiment.
40
- operation = {
41
- :operator => 'SET',
42
- :operand => {
43
- :id => experiment_id,
44
- :status => 'PROMOTED',
45
- }
46
- }
47
-
48
- # Update experiment.
49
- response = experiment_srv.mutate([operation])
50
- experiment = response[:value].first
51
- puts "Experiment with name '%s' and ID %d was promoted." %
52
- [experiment[:name], experiment[:id]]
53
- end
54
-
55
- if __FILE__ == $0
56
- API_VERSION = :v201206
57
-
58
- begin
59
- experiment_id = 'INSERT_EXPERIMENT_ID_HERE'.to_i
60
- promote_experiment(experiment_id)
61
-
62
- # HTTP errors.
63
- rescue AdsCommon::Errors::HttpError => e
64
- puts "HTTP Error: %s" % e
65
-
66
- # API errors.
67
- rescue AdwordsApi::Errors::ApiException => e
68
- puts "Message: %s" % e.message
69
- puts 'Errors:'
70
- e.errors.each_with_index do |error, index|
71
- puts "\tError [%d]:" % (index + 1)
72
- error.each do |field, value|
73
- puts "\t\t%s: %s" % [field, value]
74
- end
75
- end
76
- end
77
- end