google-adwords-api 0.17.0 → 0.18.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 (170) hide show
  1. checksums.yaml +5 -13
  2. data/ChangeLog +5 -0
  3. data/README.md +3 -3
  4. data/adwords_api.yml +3 -0
  5. data/examples/v201509/{campaign_management → advanced_operations}/add_complete_campaigns_using_batch_job.rb +10 -16
  6. data/examples/v201509/advanced_operations/add_keywords_using_incremental_batch_job.rb +179 -0
  7. data/examples/v201509/reporting/stream_criteria_report_results.rb +97 -0
  8. data/lib/adwords_api/api_config.rb +0 -86
  9. data/lib/adwords_api/batch_job_utils.rb +124 -51
  10. data/lib/adwords_api/incremental_upload_helper.rb +71 -0
  11. data/lib/adwords_api/report_header_handler.rb +1 -1
  12. data/lib/adwords_api/report_stream.rb +64 -0
  13. data/lib/adwords_api/report_utils.rb +88 -8
  14. data/lib/adwords_api/version.rb +1 -1
  15. data/test/adwords_api/test_batch_job_utils.rb +15 -0
  16. metadata +18 -168
  17. data/examples/v201502/account_management/create_account.rb +0 -88
  18. data/examples/v201502/account_management/get_account_changes.rb +0 -139
  19. data/examples/v201502/account_management/get_account_hierarchy.rb +0 -94
  20. data/examples/v201502/advanced_operations/add_ad_customizers.rb +0 -184
  21. data/examples/v201502/advanced_operations/add_ad_group_bid_modifier.rb +0 -101
  22. data/examples/v201502/advanced_operations/add_click_to_download_ad.rb +0 -133
  23. data/examples/v201502/advanced_operations/add_text_ad_with_upgraded_urls.rb +0 -134
  24. data/examples/v201502/advanced_operations/create_and_attach_shared_keyword_set.rb +0 -133
  25. data/examples/v201502/advanced_operations/find_and_remove_criteria_from_shared_set.rb +0 -166
  26. data/examples/v201502/advanced_operations/get_ad_group_bid_modifiers.rb +0 -102
  27. data/examples/v201502/advanced_operations/upload_offline_conversions.rb +0 -113
  28. data/examples/v201502/advanced_operations/use_shared_bidding_strategy.rb +0 -147
  29. data/examples/v201502/basic_operations/add_ad_groups.rb +0 -140
  30. data/examples/v201502/basic_operations/add_campaigns.rb +0 -139
  31. data/examples/v201502/basic_operations/add_keywords.rb +0 -114
  32. data/examples/v201502/basic_operations/add_text_ads.rb +0 -109
  33. data/examples/v201502/basic_operations/get_ad_groups.rb +0 -102
  34. data/examples/v201502/basic_operations/get_campaigns.rb +0 -97
  35. data/examples/v201502/basic_operations/get_campaigns_with_awql.rb +0 -89
  36. data/examples/v201502/basic_operations/get_keywords.rb +0 -108
  37. data/examples/v201502/basic_operations/get_text_ads.rb +0 -110
  38. data/examples/v201502/basic_operations/pause_ad.rb +0 -88
  39. data/examples/v201502/basic_operations/remove_ad.rb +0 -89
  40. data/examples/v201502/basic_operations/remove_ad_group.rb +0 -85
  41. data/examples/v201502/basic_operations/remove_campaign.rb +0 -87
  42. data/examples/v201502/basic_operations/remove_keyword.rb +0 -94
  43. data/examples/v201502/basic_operations/update_ad_group.rb +0 -85
  44. data/examples/v201502/basic_operations/update_campaign.rb +0 -86
  45. data/examples/v201502/basic_operations/update_keyword.rb +0 -106
  46. data/examples/v201502/campaign_management/add_campaign_labels.rb +0 -82
  47. data/examples/v201502/campaign_management/add_experiment.rb +0 -162
  48. data/examples/v201502/campaign_management/add_keywords_in_bulk.rb +0 -153
  49. data/examples/v201502/campaign_management/get_all_disapproved_ads.rb +0 -97
  50. data/examples/v201502/campaign_management/get_all_disapproved_ads_with_awql.rb +0 -89
  51. data/examples/v201502/campaign_management/get_campaigns_by_label.rb +0 -108
  52. data/examples/v201502/campaign_management/promote_experiment.rb +0 -81
  53. data/examples/v201502/campaign_management/set_ad_parameters.rb +0 -118
  54. data/examples/v201502/campaign_management/set_criterion_bid_modifier.rb +0 -104
  55. data/examples/v201502/campaign_management/validate_text_ad.rb +0 -110
  56. data/examples/v201502/error_handling/handle_partial_failures.rb +0 -130
  57. data/examples/v201502/error_handling/handle_policy_violation_error.rb +0 -141
  58. data/examples/v201502/extensions/add_google_my_business_location_extensions.rb +0 -179
  59. data/examples/v201502/extensions/add_site_links.rb +0 -164
  60. data/examples/v201502/extensions/add_site_links_using_feeds.rb +0 -271
  61. data/examples/v201502/migration/migrate_to_extension_settings.rb +0 -386
  62. data/examples/v201502/migration/upgrade_ad_url.rb +0 -93
  63. data/examples/v201502/misc/create_ad_words_session_without_properties_file.rb +0 -92
  64. data/examples/v201502/misc/get_all_images_and_videos.rb +0 -104
  65. data/examples/v201502/misc/setup_oauth2.rb +0 -84
  66. data/examples/v201502/misc/upload_image.rb +0 -93
  67. data/examples/v201502/misc/use_oauth2_jwt.rb +0 -93
  68. data/examples/v201502/optimization/estimate_keyword_traffic.rb +0 -146
  69. data/examples/v201502/optimization/get_keyword_bid_simulations.rb +0 -95
  70. data/examples/v201502/optimization/get_keyword_ideas.rb +0 -126
  71. data/examples/v201502/remarketing/add_audience.rb +0 -118
  72. data/examples/v201502/remarketing/add_conversion_tracker.rb +0 -100
  73. data/examples/v201502/remarketing/add_rule_based_user_lists.rb +0 -167
  74. data/examples/v201502/reporting/download_criteria_report.rb +0 -85
  75. data/examples/v201502/reporting/download_criteria_report_with_awql.rb +0 -84
  76. data/examples/v201502/reporting/get_report_fields.rb +0 -75
  77. data/examples/v201502/reporting/parallel_report_download.rb +0 -166
  78. data/examples/v201502/shopping_campaigns/add_product_partition_tree.rb +0 -267
  79. data/examples/v201502/shopping_campaigns/add_product_scope.rb +0 -129
  80. data/examples/v201502/shopping_campaigns/add_shopping_campaign.rb +0 -129
  81. data/examples/v201502/shopping_campaigns/get_product_category_taxonomy.rb +0 -115
  82. data/examples/v201502/targeting/add_campaign_targeting_criteria.rb +0 -169
  83. data/examples/v201502/targeting/add_demographic_targeting_criteria.rb +0 -112
  84. data/examples/v201502/targeting/get_campaign_targeting_criteria.rb +0 -106
  85. data/examples/v201502/targeting/get_targetable_languages_and_carriers.rb +0 -89
  86. data/examples/v201502/targeting/lookup_location.rb +0 -108
  87. data/lib/adwords_api/v201502/account_label_service.rb +0 -46
  88. data/lib/adwords_api/v201502/account_label_service_registry.rb +0 -46
  89. data/lib/adwords_api/v201502/ad_customizer_feed_service.rb +0 -46
  90. data/lib/adwords_api/v201502/ad_customizer_feed_service_registry.rb +0 -46
  91. data/lib/adwords_api/v201502/ad_group_ad_service.rb +0 -70
  92. data/lib/adwords_api/v201502/ad_group_ad_service_registry.rb +0 -46
  93. data/lib/adwords_api/v201502/ad_group_bid_modifier_service.rb +0 -54
  94. data/lib/adwords_api/v201502/ad_group_bid_modifier_service_registry.rb +0 -46
  95. data/lib/adwords_api/v201502/ad_group_criterion_service.rb +0 -62
  96. data/lib/adwords_api/v201502/ad_group_criterion_service_registry.rb +0 -46
  97. data/lib/adwords_api/v201502/ad_group_extension_setting_service.rb +0 -54
  98. data/lib/adwords_api/v201502/ad_group_extension_setting_service_registry.rb +0 -46
  99. data/lib/adwords_api/v201502/ad_group_feed_service.rb +0 -54
  100. data/lib/adwords_api/v201502/ad_group_feed_service_registry.rb +0 -46
  101. data/lib/adwords_api/v201502/ad_group_service.rb +0 -62
  102. data/lib/adwords_api/v201502/ad_group_service_registry.rb +0 -46
  103. data/lib/adwords_api/v201502/ad_param_service.rb +0 -46
  104. data/lib/adwords_api/v201502/ad_param_service_registry.rb +0 -46
  105. data/lib/adwords_api/v201502/adwords_user_list_service.rb +0 -46
  106. data/lib/adwords_api/v201502/adwords_user_list_service_registry.rb +0 -46
  107. data/lib/adwords_api/v201502/bidding_strategy_service.rb +0 -54
  108. data/lib/adwords_api/v201502/bidding_strategy_service_registry.rb +0 -46
  109. data/lib/adwords_api/v201502/budget_order_service.rb +0 -54
  110. data/lib/adwords_api/v201502/budget_order_service_registry.rb +0 -46
  111. data/lib/adwords_api/v201502/budget_service.rb +0 -54
  112. data/lib/adwords_api/v201502/budget_service_registry.rb +0 -46
  113. data/lib/adwords_api/v201502/campaign_criterion_service.rb +0 -54
  114. data/lib/adwords_api/v201502/campaign_criterion_service_registry.rb +0 -46
  115. data/lib/adwords_api/v201502/campaign_extension_setting_service.rb +0 -54
  116. data/lib/adwords_api/v201502/campaign_extension_setting_service_registry.rb +0 -46
  117. data/lib/adwords_api/v201502/campaign_feed_service.rb +0 -54
  118. data/lib/adwords_api/v201502/campaign_feed_service_registry.rb +0 -46
  119. data/lib/adwords_api/v201502/campaign_service.rb +0 -62
  120. data/lib/adwords_api/v201502/campaign_service_registry.rb +0 -46
  121. data/lib/adwords_api/v201502/campaign_shared_set_service.rb +0 -46
  122. data/lib/adwords_api/v201502/campaign_shared_set_service_registry.rb +0 -46
  123. data/lib/adwords_api/v201502/constant_data_service.rb +0 -102
  124. data/lib/adwords_api/v201502/constant_data_service_registry.rb +0 -46
  125. data/lib/adwords_api/v201502/conversion_tracker_service.rb +0 -54
  126. data/lib/adwords_api/v201502/conversion_tracker_service_registry.rb +0 -46
  127. data/lib/adwords_api/v201502/customer_extension_setting_service.rb +0 -54
  128. data/lib/adwords_api/v201502/customer_extension_setting_service_registry.rb +0 -46
  129. data/lib/adwords_api/v201502/customer_feed_service.rb +0 -54
  130. data/lib/adwords_api/v201502/customer_feed_service_registry.rb +0 -46
  131. data/lib/adwords_api/v201502/customer_service.rb +0 -46
  132. data/lib/adwords_api/v201502/customer_service_registry.rb +0 -46
  133. data/lib/adwords_api/v201502/customer_sync_service.rb +0 -38
  134. data/lib/adwords_api/v201502/customer_sync_service_registry.rb +0 -47
  135. data/lib/adwords_api/v201502/data_service.rb +0 -78
  136. data/lib/adwords_api/v201502/data_service_registry.rb +0 -46
  137. data/lib/adwords_api/v201502/experiment_service.rb +0 -46
  138. data/lib/adwords_api/v201502/experiment_service_registry.rb +0 -46
  139. data/lib/adwords_api/v201502/feed_item_service.rb +0 -54
  140. data/lib/adwords_api/v201502/feed_item_service_registry.rb +0 -46
  141. data/lib/adwords_api/v201502/feed_mapping_service.rb +0 -54
  142. data/lib/adwords_api/v201502/feed_mapping_service_registry.rb +0 -46
  143. data/lib/adwords_api/v201502/feed_service.rb +0 -54
  144. data/lib/adwords_api/v201502/feed_service_registry.rb +0 -46
  145. data/lib/adwords_api/v201502/geo_location_service.rb +0 -38
  146. data/lib/adwords_api/v201502/geo_location_service_registry.rb +0 -46
  147. data/lib/adwords_api/v201502/label_service.rb +0 -54
  148. data/lib/adwords_api/v201502/label_service_registry.rb +0 -46
  149. data/lib/adwords_api/v201502/location_criterion_service.rb +0 -46
  150. data/lib/adwords_api/v201502/location_criterion_service_registry.rb +0 -46
  151. data/lib/adwords_api/v201502/managed_customer_service.rb +0 -78
  152. data/lib/adwords_api/v201502/managed_customer_service_registry.rb +0 -46
  153. data/lib/adwords_api/v201502/media_service.rb +0 -54
  154. data/lib/adwords_api/v201502/media_service_registry.rb +0 -46
  155. data/lib/adwords_api/v201502/mutate_job_service.rb +0 -54
  156. data/lib/adwords_api/v201502/mutate_job_service_registry.rb +0 -46
  157. data/lib/adwords_api/v201502/offline_conversion_feed_service.rb +0 -38
  158. data/lib/adwords_api/v201502/offline_conversion_feed_service_registry.rb +0 -46
  159. data/lib/adwords_api/v201502/report_definition_service.rb +0 -38
  160. data/lib/adwords_api/v201502/report_definition_service_registry.rb +0 -46
  161. data/lib/adwords_api/v201502/shared_criterion_service.rb +0 -46
  162. data/lib/adwords_api/v201502/shared_criterion_service_registry.rb +0 -46
  163. data/lib/adwords_api/v201502/shared_set_service.rb +0 -46
  164. data/lib/adwords_api/v201502/shared_set_service_registry.rb +0 -46
  165. data/lib/adwords_api/v201502/targeting_idea_service.rb +0 -38
  166. data/lib/adwords_api/v201502/targeting_idea_service_registry.rb +0 -46
  167. data/lib/adwords_api/v201502/traffic_estimator_service.rb +0 -38
  168. data/lib/adwords_api/v201502/traffic_estimator_service_registry.rb +0 -46
  169. data/test/templates/v201502/basic_operations_get_campaigns.def +0 -116
  170. data/test/templates/v201502/misc_use_oauth2_service_account.def +0 -131
@@ -1,87 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
5
- #
6
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
- # implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- # This example removes a campaign by setting the status to 'REMOVED'. To get
20
- # campaigns, run get_campaigns.rb.
21
-
22
- require 'adwords_api'
23
-
24
- def remove_campaign(campaign_id)
25
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
26
- # when called without parameters.
27
- adwords = AdwordsApi::Api.new
28
-
29
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
30
- # the configuration file or provide your own logger:
31
- # adwords.logger = Logger.new('adwords_xml.log')
32
-
33
- campaign_srv = adwords.service(:CampaignService, API_VERSION)
34
-
35
- # Prepare for deleting campaign.
36
- operation = {
37
- :operator => 'SET',
38
- :operand => {
39
- :id => campaign_id,
40
- :status => 'REMOVED'
41
- }
42
- }
43
-
44
- # Remove campaign.
45
- response = campaign_srv.mutate([operation])
46
-
47
- if response and response[:value]
48
- campaign = response[:value].first
49
- puts "Campaign ID %d was removed." %
50
- [campaign[:id]]
51
- else
52
- puts 'No campaign was updated.'
53
- end
54
- end
55
-
56
- if __FILE__ == $0
57
- API_VERSION = :v201502
58
-
59
- begin
60
- # ID of a campaign to remove.
61
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
62
- remove_campaign(campaign_id)
63
-
64
- # Authorization error.
65
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
66
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
67
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
68
- "to retrieve and store OAuth2 tokens."
69
- puts "See this wiki page for more details:\n\n " +
70
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
71
-
72
- # HTTP errors.
73
- rescue AdsCommon::Errors::HttpError => e
74
- puts "HTTP Error: %s" % e
75
-
76
- # API errors.
77
- rescue AdwordsApi::Errors::ApiException => e
78
- puts "Message: %s" % e.message
79
- puts 'Errors:'
80
- e.errors.each_with_index do |error, index|
81
- puts "\tError [%d]:" % (index + 1)
82
- error.each do |field, value|
83
- puts "\t\t%s: %s" % [field, value]
84
- end
85
- end
86
- end
87
- end
@@ -1,94 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
5
- #
6
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
- # implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- # This example removes a keyword using the 'REMOVE' operator. To get list of
20
- # keywords, run get_keywords.rb.
21
-
22
- require 'adwords_api'
23
-
24
- def remove_keyword(ad_group_id, criterion_id)
25
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
26
- # when called without parameters.
27
- adwords = AdwordsApi::Api.new
28
-
29
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
30
- # the configuration file or provide your own logger:
31
- # adwords.logger = Logger.new('adwords_xml.log')
32
-
33
- ad_group_criterion_srv =
34
- adwords.service(:AdGroupCriterionService, API_VERSION)
35
-
36
- # Prepare for deleting keyword.
37
- operation = {
38
- :operator => 'REMOVE',
39
- :operand => {
40
- # The 'xsi_type' field allows you to specify the xsi:type of the object
41
- # being created. It's only necessary when you must provide an explicit
42
- # type that the client library can't infer.
43
- :xsi_type => 'BiddableAdGroupCriterion',
44
- :ad_group_id => ad_group_id,
45
- :criterion => {
46
- :id => criterion_id
47
- }
48
- }
49
- }
50
-
51
- # Remove keyword.
52
- response = ad_group_criterion_srv.mutate([operation])
53
- ad_group_criterion = response[:value].first
54
- if ad_group_criterion
55
- puts "Keyword ID %d was successfully removed." %
56
- ad_group_criterion[:criterion][:id]
57
- else
58
- puts 'No keywords were removed.'
59
- end
60
- end
61
-
62
- if __FILE__ == $0
63
- API_VERSION = :v201502
64
-
65
- begin
66
- # IDs of criterion to remove and its ad group.
67
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
68
- criterion_id = 'INSERT_CRITERION_ID_HERE'.to_i
69
- remove_keyword(ad_group_id, criterion_id)
70
-
71
- # Authorization error.
72
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
73
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
74
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
75
- "to retrieve and store OAuth2 tokens."
76
- puts "See this wiki page for more details:\n\n " +
77
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
78
-
79
- # HTTP errors.
80
- rescue AdsCommon::Errors::HttpError => e
81
- puts "HTTP Error: %s" % e
82
-
83
- # API errors.
84
- rescue AdwordsApi::Errors::ApiException => e
85
- puts "Message: %s" % e.message
86
- puts 'Errors:'
87
- e.errors.each_with_index do |error, index|
88
- puts "\tError [%d]:" % (index + 1)
89
- error.each do |field, value|
90
- puts "\t\t%s: %s" % [field, value]
91
- end
92
- end
93
- end
94
- end
@@ -1,85 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
5
- #
6
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
- # implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- # This example illustrates how to update an ad group, setting its status to
20
- # 'PAUSED'. To create an ad group, run add_ad_group.rb.
21
-
22
- require 'adwords_api'
23
-
24
- def update_ad_group(ad_group_id)
25
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
26
- # when called without parameters.
27
- adwords = AdwordsApi::Api.new
28
-
29
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
30
- # the configuration file or provide your own logger:
31
- # adwords.logger = Logger.new('adwords_xml.log')
32
-
33
- ad_group_srv = adwords.service(:AdGroupService, API_VERSION)
34
-
35
- # Prepare for updating ad group.
36
- operation = {
37
- :operator => 'SET',
38
- :operand => {
39
- :status => 'PAUSED',
40
- :id => ad_group_id
41
- }
42
- }
43
-
44
- # Update ad group.
45
- response = ad_group_srv.mutate([operation])
46
- if response and response[:value]
47
- ad_group = response[:value].first
48
- puts 'Ad group id %d was successfully updated.' % ad_group[:id]
49
- else
50
- puts 'No ad groups were updated.'
51
- end
52
- end
53
-
54
- if __FILE__ == $0
55
- API_VERSION = :v201502
56
-
57
- begin
58
- # ID of an ad group to update.
59
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
60
- update_ad_group(ad_group_id)
61
-
62
- # Authorization error.
63
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
64
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
65
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
66
- "to retrieve and store OAuth2 tokens."
67
- puts "See this wiki page for more details:\n\n " +
68
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
69
-
70
- # HTTP errors.
71
- rescue AdsCommon::Errors::HttpError => e
72
- puts "HTTP Error: %s" % e
73
-
74
- # API errors.
75
- rescue AdwordsApi::Errors::ApiException => e
76
- puts "Message: %s" % e.message
77
- puts 'Errors:'
78
- e.errors.each_with_index do |error, index|
79
- puts "\tError [%d]:" % (index + 1)
80
- error.each do |field, value|
81
- puts "\t\t%s: %s" % [field, value]
82
- end
83
- end
84
- end
85
- end
@@ -1,86 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
5
- #
6
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
- # implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- # This example illustrates how to update a campaign, setting its status to
20
- # 'PAUSED'. To create a campaign, run add_campaigns.rb.
21
-
22
- require 'adwords_api'
23
-
24
- def update_campaign(campaign_id)
25
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
26
- # when called without parameters.
27
- adwords = AdwordsApi::Api.new
28
-
29
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
30
- # the configuration file or provide your own logger:
31
- # adwords.logger = Logger.new('adwords_xml.log')
32
-
33
- campaign_srv = adwords.service(:CampaignService, API_VERSION)
34
-
35
- # Prepare for updating campaign.
36
- operation = {
37
- :operator => 'SET',
38
- :operand => {
39
- :id => campaign_id,
40
- :status => 'PAUSED'
41
- }
42
- }
43
-
44
- # Update campaign.
45
- response = campaign_srv.mutate([operation])
46
- if response and response[:value]
47
- campaign = response[:value].first
48
- puts "Campaign ID %d was successfully updated, status was set to '%s'." %
49
- [campaign[:id], campaign[:status]]
50
- else
51
- puts 'No campaigns were updated.'
52
- end
53
- end
54
-
55
- if __FILE__ == $0
56
- API_VERSION = :v201502
57
-
58
- begin
59
- # ID of a campaign to update.
60
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
61
- update_campaign(campaign_id)
62
-
63
- # Authorization error.
64
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
65
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
66
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
67
- "to retrieve and store OAuth2 tokens."
68
- puts "See this wiki page for more details:\n\n " +
69
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
70
-
71
- # HTTP errors.
72
- rescue AdsCommon::Errors::HttpError => e
73
- puts "HTTP Error: %s" % e
74
-
75
- # API errors.
76
- rescue AdwordsApi::Errors::ApiException => e
77
- puts "Message: %s" % e.message
78
- puts 'Errors:'
79
- e.errors.each_with_index do |error, index|
80
- puts "\tError [%d]:" % (index + 1)
81
- error.each do |field, value|
82
- puts "\t\t%s: %s" % [field, value]
83
- end
84
- end
85
- end
86
- end
@@ -1,106 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
5
- #
6
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
- # implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- # This example updates the bid of a keyword. To create a keyword, run
20
- # add_keywords.rb.
21
-
22
- require 'adwords_api'
23
-
24
- def update_keyword(ad_group_id, criterion_id)
25
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
26
- # when called without parameters.
27
- adwords = AdwordsApi::Api.new
28
-
29
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
30
- # the configuration file or provide your own logger:
31
- # adwords.logger = Logger.new('adwords_xml.log')
32
-
33
- ad_group_criterion_srv =
34
- adwords.service(:AdGroupCriterionService, API_VERSION)
35
-
36
- # Prepare for updating a keyword.
37
- operation = {
38
- :operator => 'SET',
39
- :operand => {
40
- # The 'xsi_type' field allows you to specify the xsi:type of the object
41
- # being created. It's only necessary when you must provide an explicit
42
- # type that the client library can't infer.
43
- :xsi_type => 'BiddableAdGroupCriterion',
44
- :ad_group_id => ad_group_id,
45
- :criterion => {
46
- :id => criterion_id
47
- },
48
- :bidding_strategy_configuration => {
49
- :bids => [
50
- {
51
- :xsi_type => 'CpcBid',
52
- :bid => {:micro_amount => 1000000}
53
- }
54
- ]
55
- }
56
- }
57
- }
58
-
59
- # Update criterion.
60
- response = ad_group_criterion_srv.mutate([operation])
61
- if response and response[:value]
62
- ad_group_criterion = response[:value].first
63
- puts "Keyword ID %d was successfully updated, current bids are:" %
64
- ad_group_criterion[:criterion][:id]
65
- ad_group_criterion[:bidding_strategy_configuration][:bids].each do |bid|
66
- puts "\tType: '%s', value: %d" %
67
- [bid[:bids_type], bid[:bid][:micro_amount]]
68
- end
69
- else
70
- puts 'No keywords were updated.'
71
- end
72
- end
73
-
74
- if __FILE__ == $0
75
- API_VERSION = :v201502
76
-
77
- begin
78
- # IDs of a criterion to update and its ad group.
79
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
80
- criterion_id = 'INSERT_CRITERION_ID_HERE'.to_i
81
- update_keyword(ad_group_id, criterion_id)
82
-
83
- # Authorization error.
84
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
85
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
86
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
87
- "to retrieve and store OAuth2 tokens."
88
- puts "See this wiki page for more details:\n\n " +
89
- 'http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2'
90
-
91
- # HTTP errors.
92
- rescue AdsCommon::Errors::HttpError => e
93
- puts "HTTP Error: %s" % e
94
-
95
- # API errors.
96
- rescue AdwordsApi::Errors::ApiException => e
97
- puts "Message: %s" % e.message
98
- puts 'Errors:'
99
- e.errors.each_with_index do |error, index|
100
- puts "\tError [%d]:" % (index + 1)
101
- error.each do |field, value|
102
- puts "\t\t%s: %s" % [field, value]
103
- end
104
- end
105
- end
106
- end