google-adwords-api 0.11.1 → 0.12.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 (152) hide show
  1. data/ChangeLog +3 -0
  2. data/{README → README.md} +0 -0
  3. data/lib/adwords_api/api_config.rb +0 -76
  4. data/lib/adwords_api/version.rb +1 -1
  5. data/test/templates/v201309/basic_operations_get_campaigns.def +1 -1
  6. data/test/templates/v201309/misc_use_oauth2_jwt.def +1 -1
  7. metadata +3 -148
  8. data/examples/v201306/account_management/create_account.rb +0 -95
  9. data/examples/v201306/account_management/get_account_alerts.rb +0 -122
  10. data/examples/v201306/account_management/get_account_changes.rb +0 -145
  11. data/examples/v201306/account_management/get_account_hierarchy.rb +0 -103
  12. data/examples/v201306/advanced_operations/add_ad_group_bid_modifier.rb +0 -105
  13. data/examples/v201306/advanced_operations/add_click_to_download_ad.rb +0 -137
  14. data/examples/v201306/advanced_operations/add_site_links.rb +0 -244
  15. data/examples/v201306/advanced_operations/create_and_attach_shared_keyword_set.rb +0 -147
  16. data/examples/v201306/advanced_operations/find_and_remove_criteria_from_shared_set.rb +0 -181
  17. data/examples/v201306/advanced_operations/get_ad_group_bid_modifiers.rb +0 -106
  18. data/examples/v201306/basic_operations/add_ad_groups.rb +0 -143
  19. data/examples/v201306/basic_operations/add_campaigns.rb +0 -162
  20. data/examples/v201306/basic_operations/add_keywords.rb +0 -116
  21. data/examples/v201306/basic_operations/add_text_ads.rb +0 -113
  22. data/examples/v201306/basic_operations/delete_ad.rb +0 -93
  23. data/examples/v201306/basic_operations/delete_ad_group.rb +0 -110
  24. data/examples/v201306/basic_operations/delete_campaign.rb +0 -111
  25. data/examples/v201306/basic_operations/delete_keyword.rb +0 -98
  26. data/examples/v201306/basic_operations/get_ad_groups.rb +0 -106
  27. data/examples/v201306/basic_operations/get_campaigns.rb +0 -101
  28. data/examples/v201306/basic_operations/get_campaigns_with_awql.rb +0 -93
  29. data/examples/v201306/basic_operations/get_keywords.rb +0 -112
  30. data/examples/v201306/basic_operations/get_text_ads.rb +0 -114
  31. data/examples/v201306/basic_operations/pause_ad.rb +0 -92
  32. data/examples/v201306/basic_operations/update_ad_group.rb +0 -89
  33. data/examples/v201306/basic_operations/update_campaign.rb +0 -90
  34. data/examples/v201306/basic_operations/update_keyword.rb +0 -110
  35. data/examples/v201306/campaign_management/add_experiment.rb +0 -166
  36. data/examples/v201306/campaign_management/add_keywords_in_bulk.rb +0 -158
  37. data/examples/v201306/campaign_management/add_location_extension.rb +0 -125
  38. data/examples/v201306/campaign_management/add_location_extension_override.rb +0 -91
  39. data/examples/v201306/campaign_management/get_all_disapproved_ads.rb +0 -101
  40. data/examples/v201306/campaign_management/get_all_disapproved_ads_with_awql.rb +0 -92
  41. data/examples/v201306/campaign_management/promote_experiment.rb +0 -85
  42. data/examples/v201306/campaign_management/set_ad_parameters.rb +0 -122
  43. data/examples/v201306/campaign_management/set_criterion_bid_modifier.rb +0 -110
  44. data/examples/v201306/campaign_management/validate_text_ad.rb +0 -114
  45. data/examples/v201306/error_handling/handle_captcha_challenge.rb +0 -93
  46. data/examples/v201306/error_handling/handle_partial_failures.rb +0 -134
  47. data/examples/v201306/error_handling/handle_policy_violation_error.rb +0 -145
  48. data/examples/v201306/error_handling/handle_two_factor_authorization_error.rb +0 -88
  49. data/examples/v201306/migration/upgrade_legacy_sitelinks.rb +0 -313
  50. data/examples/v201306/misc/get_all_images_and_videos.rb +0 -108
  51. data/examples/v201306/misc/setup_oauth2.rb +0 -88
  52. data/examples/v201306/misc/upload_image.rb +0 -97
  53. data/examples/v201306/misc/use_oauth2_jwt.rb +0 -97
  54. data/examples/v201306/optimization/estimate_keyword_traffic.rb +0 -137
  55. data/examples/v201306/optimization/get_keyword_bid_simulations.rb +0 -100
  56. data/examples/v201306/optimization/get_keyword_ideas.rb +0 -130
  57. data/examples/v201306/optimization/get_placement_ideas.rb +0 -112
  58. data/examples/v201306/remarketing/add_audience.rb +0 -123
  59. data/examples/v201306/remarketing/add_conversion_tracker.rb +0 -104
  60. data/examples/v201306/reporting/download_criteria_report.rb +0 -87
  61. data/examples/v201306/reporting/download_criteria_report_with_awql.rb +0 -86
  62. data/examples/v201306/reporting/get_campaign_stats.rb +0 -113
  63. data/examples/v201306/reporting/get_report_fields.rb +0 -79
  64. data/examples/v201306/reporting/parallel_report_download.rb +0 -171
  65. data/examples/v201306/targeting/add_campaign_targeting_criteria.rb +0 -123
  66. data/examples/v201306/targeting/add_demographic_targeting_criteria.rb +0 -116
  67. data/examples/v201306/targeting/get_campaign_targeting_criteria.rb +0 -110
  68. data/examples/v201306/targeting/get_targetable_languages_and_carriers.rb +0 -94
  69. data/examples/v201306/targeting/lookup_location.rb +0 -112
  70. data/examples/v201402/advanced_operations/add_places_location_extensions.rb~ +0 -159
  71. data/examples/v201402/basic_operations/add_ad_groups.rb~ +0 -147
  72. data/examples/v201402/misc/create_ad_words_session_without_properties_file.rb~ +0 -94
  73. data/examples/v201402/remarketing/add_conversion_tracker.rb~ +0 -109
  74. data/examples/v201402/shopping_campaigns/add_product_partition_tree.rb~ +0 -269
  75. data/examples/v201402/shopping_campaigns/add_shopping_campaign.rb~ +0 -136
  76. data/examples/v201402/shopping_campaigns/get_product_category_taxonomy.rb~ +0 -128
  77. data/examples/v201402/shopping_campaigns/set_product_sales_channel.rb~ +0 -98
  78. data/lib/adwords_api/v201306/ad_extension_override_service.rb +0 -38
  79. data/lib/adwords_api/v201306/ad_extension_override_service_registry.rb +0 -46
  80. data/lib/adwords_api/v201306/ad_group_ad_service.rb +0 -42
  81. data/lib/adwords_api/v201306/ad_group_ad_service_registry.rb +0 -46
  82. data/lib/adwords_api/v201306/ad_group_bid_modifier_service.rb +0 -38
  83. data/lib/adwords_api/v201306/ad_group_bid_modifier_service_registry.rb +0 -46
  84. data/lib/adwords_api/v201306/ad_group_criterion_service.rb +0 -42
  85. data/lib/adwords_api/v201306/ad_group_criterion_service_registry.rb +0 -46
  86. data/lib/adwords_api/v201306/ad_group_feed_service.rb +0 -38
  87. data/lib/adwords_api/v201306/ad_group_feed_service_registry.rb +0 -46
  88. data/lib/adwords_api/v201306/ad_group_service.rb +0 -42
  89. data/lib/adwords_api/v201306/ad_group_service_registry.rb +0 -46
  90. data/lib/adwords_api/v201306/ad_param_service.rb +0 -38
  91. data/lib/adwords_api/v201306/ad_param_service_registry.rb +0 -46
  92. data/lib/adwords_api/v201306/adwords_user_list_service.rb +0 -38
  93. data/lib/adwords_api/v201306/adwords_user_list_service_registry.rb +0 -46
  94. data/lib/adwords_api/v201306/alert_service.rb +0 -34
  95. data/lib/adwords_api/v201306/alert_service_registry.rb +0 -46
  96. data/lib/adwords_api/v201306/bidding_strategy_service.rb +0 -38
  97. data/lib/adwords_api/v201306/bidding_strategy_service_registry.rb +0 -46
  98. data/lib/adwords_api/v201306/budget_order_service.rb +0 -42
  99. data/lib/adwords_api/v201306/budget_order_service_registry.rb +0 -46
  100. data/lib/adwords_api/v201306/budget_service.rb +0 -38
  101. data/lib/adwords_api/v201306/budget_service_registry.rb +0 -46
  102. data/lib/adwords_api/v201306/campaign_ad_extension_service.rb +0 -38
  103. data/lib/adwords_api/v201306/campaign_ad_extension_service_registry.rb +0 -46
  104. data/lib/adwords_api/v201306/campaign_criterion_service.rb +0 -42
  105. data/lib/adwords_api/v201306/campaign_criterion_service_registry.rb +0 -46
  106. data/lib/adwords_api/v201306/campaign_feed_service.rb +0 -38
  107. data/lib/adwords_api/v201306/campaign_feed_service_registry.rb +0 -46
  108. data/lib/adwords_api/v201306/campaign_service.rb +0 -42
  109. data/lib/adwords_api/v201306/campaign_service_registry.rb +0 -46
  110. data/lib/adwords_api/v201306/campaign_shared_set_service.rb +0 -38
  111. data/lib/adwords_api/v201306/campaign_shared_set_service_registry.rb +0 -47
  112. data/lib/adwords_api/v201306/constant_data_service.rb +0 -62
  113. data/lib/adwords_api/v201306/constant_data_service_registry.rb +0 -46
  114. data/lib/adwords_api/v201306/conversion_tracker_service.rb +0 -38
  115. data/lib/adwords_api/v201306/conversion_tracker_service_registry.rb +0 -46
  116. data/lib/adwords_api/v201306/customer_service.rb +0 -34
  117. data/lib/adwords_api/v201306/customer_service_registry.rb +0 -46
  118. data/lib/adwords_api/v201306/customer_sync_service.rb +0 -34
  119. data/lib/adwords_api/v201306/customer_sync_service_registry.rb +0 -47
  120. data/lib/adwords_api/v201306/data_service.rb +0 -38
  121. data/lib/adwords_api/v201306/data_service_registry.rb +0 -46
  122. data/lib/adwords_api/v201306/experiment_service.rb +0 -38
  123. data/lib/adwords_api/v201306/experiment_service_registry.rb +0 -46
  124. data/lib/adwords_api/v201306/feed_item_service.rb +0 -38
  125. data/lib/adwords_api/v201306/feed_item_service_registry.rb +0 -46
  126. data/lib/adwords_api/v201306/feed_mapping_service.rb +0 -38
  127. data/lib/adwords_api/v201306/feed_mapping_service_registry.rb +0 -46
  128. data/lib/adwords_api/v201306/feed_service.rb +0 -38
  129. data/lib/adwords_api/v201306/feed_service_registry.rb +0 -46
  130. data/lib/adwords_api/v201306/geo_location_service.rb +0 -34
  131. data/lib/adwords_api/v201306/geo_location_service_registry.rb +0 -46
  132. data/lib/adwords_api/v201306/location_criterion_service.rb +0 -34
  133. data/lib/adwords_api/v201306/location_criterion_service_registry.rb +0 -46
  134. data/lib/adwords_api/v201306/managed_customer_service.rb +0 -50
  135. data/lib/adwords_api/v201306/managed_customer_service_registry.rb +0 -46
  136. data/lib/adwords_api/v201306/media_service.rb +0 -38
  137. data/lib/adwords_api/v201306/media_service_registry.rb +0 -46
  138. data/lib/adwords_api/v201306/mutate_job_service.rb +0 -42
  139. data/lib/adwords_api/v201306/mutate_job_service_registry.rb +0 -46
  140. data/lib/adwords_api/v201306/report_definition_service.rb +0 -34
  141. data/lib/adwords_api/v201306/report_definition_service_registry.rb +0 -46
  142. data/lib/adwords_api/v201306/shared_criterion_service.rb +0 -38
  143. data/lib/adwords_api/v201306/shared_criterion_service_registry.rb +0 -47
  144. data/lib/adwords_api/v201306/shared_set_service.rb +0 -38
  145. data/lib/adwords_api/v201306/shared_set_service_registry.rb +0 -47
  146. data/lib/adwords_api/v201306/targeting_idea_service.rb +0 -38
  147. data/lib/adwords_api/v201306/targeting_idea_service_registry.rb +0 -46
  148. data/lib/adwords_api/v201306/traffic_estimator_service.rb +0 -34
  149. data/lib/adwords_api/v201306/traffic_estimator_service_registry.rb +0 -46
  150. data/test/adwords_api/test_adwords_api.rb~ +0 -127
  151. data/test/templates/v201306/basic_operations_get_campaigns.def +0 -114
  152. data/test/templates/v201306/misc_use_oauth2_jwt.def +0 -131
@@ -1,158 +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 code sample illustrates how to add many keywords using asynchronous
22
- # requests and MutateJobService.
23
- #
24
- # Tags: MutateJobService.mutate, MutateJobService.get
25
- # Tags: MutateJobService.getResult
26
-
27
- require 'adwords_api'
28
-
29
- def add_keywords_in_bulk()
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
- mutate_job_srv = adwords.service(:MutateJobService, API_VERSION)
39
-
40
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
41
-
42
- # Create AdGroupCriterionOperations to add keywords.
43
- operations = (1..KEYWORD_NUMBER).map do |index|
44
- {:xsi_type => 'AdGroupCriterionOperation',
45
- :operator => 'ADD',
46
- :operand => {
47
- :xsi_type => 'BiddableAdGroupCriterion',
48
- :ad_group_id => ad_group_id,
49
- :criterion => {
50
- :xsi_type => 'Keyword',
51
- :match_type => 'BROAD',
52
- :text => "mars%d" % index}}}
53
- end
54
-
55
- # You can specify up to 3 job IDs that must successfully complete before
56
- # this job can be processed.
57
- policy = {:prerequisite_job_ids => []}
58
-
59
- # Call mutate to create a new job.
60
- response = mutate_job_srv.mutate(operations, policy)
61
-
62
- raise StandardError, 'Failed to submit a job; aborting.' unless response
63
-
64
- job_id = response[:id]
65
- puts "Job ID %d was successfully created." % job_id
66
-
67
- # Creating selector to retrive hob status and wait for it to complete.
68
- selector = {
69
- :xsi_type => 'BulkMutateJobSelector',
70
- :job_ids => [job_id]
71
- }
72
-
73
- status = nil
74
-
75
- # Poll for job status until it's finished.
76
- puts 'Retrieving job status...'
77
- RETRIES_COUNT.times do |retry_attempt|
78
- job_status_response = mutate_job_srv.get(selector)
79
- if job_status_response
80
- status = job_status_response.first[:status]
81
- case status
82
- when 'FAILED'
83
- raise StandardError, "Job failed with reason: '%s'" %
84
- job_status_response.first[:failure_reason]
85
- when 'COMPLETED'
86
- puts "[%d] Job finished with status '%s'" % [retry_attempt, status]
87
- break
88
- else
89
- puts "[%d] Current status is '%s', waiting %d seconds to retry..." %
90
- [retry_attempt, status, RETRY_INTERVAL]
91
- sleep(RETRY_INTERVAL)
92
- end
93
- else
94
- raise StandardError, 'Error retrieving job status; aborting.'
95
- end
96
- end
97
-
98
- if status == 'COMPLETED'
99
- # Get the job result. Here we re-use the same selector.
100
- result_response = mutate_job_srv.get_result(selector)
101
-
102
- if result_response and result_response[:simple_mutate_result]
103
- results = result_response[:simple_mutate_result][:results]
104
- if results
105
- results.each_with_index do |result, index|
106
- result_message = result.include?(:place_holder) ?
107
- 'FAILED' : 'SUCCEEDED'
108
- puts "Operation [%d] - %s" % [index, result_message]
109
- end
110
- end
111
- errors = result_response[:simple_mutate_result][:errors]
112
- if errors
113
- errors.each do |error|
114
- puts "Error, reason: '%s', trigger: '%s', field path: '%s'" %
115
- [error[:reason], error[:trigger], error[:field_path]]
116
- end
117
- end
118
- else
119
- raise StandardError, 'Error retrieving job results; aborting.'
120
- end
121
- else
122
- puts "Job failed to complete after %d retries." % RETRY_COUNT
123
- end
124
- end
125
-
126
- if __FILE__ == $0
127
- API_VERSION = :v201306
128
- RETRY_INTERVAL = 30
129
- RETRIES_COUNT = 30
130
- KEYWORD_NUMBER = 100
131
-
132
- begin
133
- add_keywords_in_bulk()
134
-
135
- # Authorization error.
136
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
137
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
138
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
139
- "to retrieve and store OAuth2 tokens."
140
- puts "See this wiki page for more details:\n\n " +
141
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
142
-
143
- # HTTP errors.
144
- rescue AdsCommon::Errors::HttpError => e
145
- puts "HTTP Error: %s" % e
146
-
147
- # API errors.
148
- rescue AdwordsApi::Errors::ApiException => e
149
- puts "Message: %s" % e.message
150
- puts 'Errors:'
151
- e.errors.each_with_index do |error, index|
152
- puts "\tError [%d]:" % (index + 1)
153
- error.each do |field, value|
154
- puts "\t\t%s: %s" % [field, value]
155
- end
156
- end
157
- end
158
- end
@@ -1,125 +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 = :v201306
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
- # Authorization error.
103
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
104
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
105
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
106
- "to retrieve and store OAuth2 tokens."
107
- puts "See this wiki page for more details:\n\n " +
108
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
109
-
110
- # HTTP errors.
111
- rescue AdsCommon::Errors::HttpError => e
112
- puts "HTTP Error: %s" % e
113
-
114
- # API errors.
115
- rescue AdwordsApi::Errors::ApiException => e
116
- puts "Message: %s" % e.message
117
- puts 'Errors:'
118
- e.errors.each_with_index do |error, index|
119
- puts "\tError [%d]:" % (index + 1)
120
- error.each do |field, value|
121
- puts "\t\t%s: %s" % [field, value]
122
- end
123
- end
124
- end
125
- end
@@ -1,91 +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 = :v201306
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
- # Authorization error.
69
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
70
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
71
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
72
- "to retrieve and store OAuth2 tokens."
73
- puts "See this wiki page for more details:\n\n " +
74
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
75
-
76
- # HTTP errors.
77
- rescue AdsCommon::Errors::HttpError => e
78
- puts "HTTP Error: %s" % e
79
-
80
- # API errors.
81
- rescue AdwordsApi::Errors::ApiException => e
82
- puts "Message: %s" % e.message
83
- puts 'Errors:'
84
- e.errors.each_with_index do |error, index|
85
- puts "\tError [%d]:" % (index + 1)
86
- error.each do |field, value|
87
- puts "\t\t%s: %s" % [field, value]
88
- end
89
- end
90
- end
91
- end
@@ -1,101 +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 => 'AdGroupCreativeApprovalStatus',
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 = :v201306
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
- # Authorization error.
79
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
80
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
81
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
82
- "to retrieve and store OAuth2 tokens."
83
- puts "See this wiki page for more details:\n\n " +
84
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
85
-
86
- # HTTP errors.
87
- rescue AdsCommon::Errors::HttpError => e
88
- puts "HTTP Error: %s" % e
89
-
90
- # API errors.
91
- rescue AdwordsApi::Errors::ApiException => e
92
- puts "Message: %s" % e.message
93
- puts 'Errors:'
94
- e.errors.each_with_index do |error, index|
95
- puts "\tError [%d]:" % (index + 1)
96
- error.each do |field, value|
97
- puts "\t\t%s: %s" % [field, value]
98
- end
99
- end
100
- end
101
- end