Permalink
Browse files

Removing sunset AdWords API v201206

  • Loading branch information...
1 parent 42b1a56 commit 4727da275807850209aeceda277b7d57cd0e7aa8 @dklimkin dklimkin committed Apr 1, 2013
Showing with 11 additions and 9,045 deletions.
  1. +2 −1 adwords_api/ChangeLog
  2. +2 −2 adwords_api/README
  3. +0 −87 adwords_api/examples/v201206/account_management/create_account.rb
  4. +0 −114 adwords_api/examples/v201206/account_management/get_account_alerts.rb
  5. +0 −137 adwords_api/examples/v201206/account_management/get_account_changes.rb
  6. +0 −95 adwords_api/examples/v201206/account_management/get_account_hierarchy.rb
  7. +0 −88 adwords_api/examples/v201206/account_management/get_client_customer_id.rb
  8. +0 −90 adwords_api/examples/v201206/account_management/get_client_unit_usage.rb
  9. +0 −136 adwords_api/examples/v201206/basic_operations/add_ad_groups.rb
  10. +0 −151 adwords_api/examples/v201206/basic_operations/add_campaigns.rb
  11. +0 −108 adwords_api/examples/v201206/basic_operations/add_keywords.rb
  12. +0 −105 adwords_api/examples/v201206/basic_operations/add_text_ads.rb
  13. +0 −85 adwords_api/examples/v201206/basic_operations/delete_ad.rb
  14. +0 −102 adwords_api/examples/v201206/basic_operations/delete_ad_group.rb
  15. +0 −103 adwords_api/examples/v201206/basic_operations/delete_campaign.rb
  16. +0 −90 adwords_api/examples/v201206/basic_operations/delete_keyword.rb
  17. +0 −98 adwords_api/examples/v201206/basic_operations/get_ad_groups.rb
  18. +0 −93 adwords_api/examples/v201206/basic_operations/get_campaigns.rb
  19. +0 −85 adwords_api/examples/v201206/basic_operations/get_campaigns_with_awql.rb
  20. +0 −104 adwords_api/examples/v201206/basic_operations/get_keywords.rb
  21. +0 −106 adwords_api/examples/v201206/basic_operations/get_text_ads.rb
  22. +0 −84 adwords_api/examples/v201206/basic_operations/pause_ad.rb
  23. +0 −81 adwords_api/examples/v201206/basic_operations/update_ad_group.rb
  24. +0 −84 adwords_api/examples/v201206/basic_operations/update_campaign.rb
  25. +0 −99 adwords_api/examples/v201206/basic_operations/update_keyword.rb
  26. +0 −158 adwords_api/examples/v201206/campaign_management/add_experiment.rb
  27. +0 −150 adwords_api/examples/v201206/campaign_management/add_keywords_in_bulk.rb
  28. +0 −117 adwords_api/examples/v201206/campaign_management/add_location_extension.rb
  29. +0 −83 adwords_api/examples/v201206/campaign_management/add_location_extension_override.rb
  30. +0 −93 adwords_api/examples/v201206/campaign_management/get_all_disapproved_ads.rb
  31. +0 −84 adwords_api/examples/v201206/campaign_management/get_all_disapproved_ads_with_awql.rb
  32. +0 −77 adwords_api/examples/v201206/campaign_management/promote_experiment.rb
  33. +0 −114 adwords_api/examples/v201206/campaign_management/set_ad_parameters.rb
  34. +0 −106 adwords_api/examples/v201206/campaign_management/validate_text_ad.rb
  35. +0 −93 adwords_api/examples/v201206/error_handling/handle_captcha_challenge.rb
  36. +0 −126 adwords_api/examples/v201206/error_handling/handle_partial_failures.rb
  37. +0 −137 adwords_api/examples/v201206/error_handling/handle_policy_violation_error.rb
  38. +0 −88 adwords_api/examples/v201206/error_handling/handle_two_factor_authorization_error.rb
  39. +0 −100 adwords_api/examples/v201206/misc/get_all_images_and_videos.rb
  40. +0 −89 adwords_api/examples/v201206/misc/upload_image.rb
  41. +0 −97 adwords_api/examples/v201206/misc/use_oauth2.rb
  42. +0 −129 adwords_api/examples/v201206/optimization/estimate_keyword_traffic.rb
  43. +0 −92 adwords_api/examples/v201206/optimization/get_keyword_bid_simulations.rb
  44. +0 −114 adwords_api/examples/v201206/optimization/get_keyword_ideas.rb
  45. +0 −104 adwords_api/examples/v201206/optimization/get_placement_ideas.rb
  46. +0 −115 adwords_api/examples/v201206/remarketing/add_audience.rb
  47. +0 −97 adwords_api/examples/v201206/remarketing/add_conversion_tracker.rb
  48. +0 −79 adwords_api/examples/v201206/reporting/download_criteria_report.rb
  49. +0 −78 adwords_api/examples/v201206/reporting/download_criteria_report_with_awql.rb
  50. +0 −105 adwords_api/examples/v201206/reporting/get_campaign_stats.rb
  51. +0 −71 adwords_api/examples/v201206/reporting/get_report_fields.rb
  52. +0 −162 adwords_api/examples/v201206/reporting/parallel_report_download.rb
  53. +0 −118 adwords_api/examples/v201206/targeting/add_campaign_targeting_criteria.rb
  54. +0 −102 adwords_api/examples/v201206/targeting/get_campaign_targeting_criteria.rb
  55. +0 −86 adwords_api/examples/v201206/targeting/get_targetable_languages_and_carriers.rb
  56. +0 −104 adwords_api/examples/v201206/targeting/lookup_location.rb
  57. +0 −58 adwords_api/lib/adwords_api/api_config.rb
  58. +3 −19 adwords_api/lib/adwords_api/report_utils.rb
  59. +0 −38 adwords_api/lib/adwords_api/v201206/ad_extension_override_service.rb
  60. +0 −46 adwords_api/lib/adwords_api/v201206/ad_extension_override_service_registry.rb
  61. +0 −42 adwords_api/lib/adwords_api/v201206/ad_group_ad_service.rb
  62. +0 −46 adwords_api/lib/adwords_api/v201206/ad_group_ad_service_registry.rb
  63. +0 −42 adwords_api/lib/adwords_api/v201206/ad_group_criterion_service.rb
  64. +0 −46 adwords_api/lib/adwords_api/v201206/ad_group_criterion_service_registry.rb
  65. +0 −42 adwords_api/lib/adwords_api/v201206/ad_group_service.rb
  66. +0 −46 adwords_api/lib/adwords_api/v201206/ad_group_service_registry.rb
  67. +0 −38 adwords_api/lib/adwords_api/v201206/ad_param_service.rb
  68. +0 −46 adwords_api/lib/adwords_api/v201206/ad_param_service_registry.rb
  69. +0 −34 adwords_api/lib/adwords_api/v201206/alert_service.rb
  70. +0 −46 adwords_api/lib/adwords_api/v201206/alert_service_registry.rb
  71. +0 −42 adwords_api/lib/adwords_api/v201206/budget_order_service.rb
  72. +0 −46 adwords_api/lib/adwords_api/v201206/budget_order_service_registry.rb
  73. +0 −38 adwords_api/lib/adwords_api/v201206/bulk_mutate_job_service.rb
  74. +0 −46 adwords_api/lib/adwords_api/v201206/bulk_mutate_job_service_registry.rb
  75. +0 −38 adwords_api/lib/adwords_api/v201206/campaign_ad_extension_service.rb
  76. +0 −46 adwords_api/lib/adwords_api/v201206/campaign_ad_extension_service_registry.rb
  77. +0 −42 adwords_api/lib/adwords_api/v201206/campaign_criterion_service.rb
  78. +0 −46 adwords_api/lib/adwords_api/v201206/campaign_criterion_service_registry.rb
  79. +0 −42 adwords_api/lib/adwords_api/v201206/campaign_service.rb
  80. +0 −46 adwords_api/lib/adwords_api/v201206/campaign_service_registry.rb
  81. +0 −62 adwords_api/lib/adwords_api/v201206/constant_data_service.rb
  82. +0 −46 adwords_api/lib/adwords_api/v201206/constant_data_service_registry.rb
  83. +0 −38 adwords_api/lib/adwords_api/v201206/conversion_tracker_service.rb
  84. +0 −46 adwords_api/lib/adwords_api/v201206/conversion_tracker_service_registry.rb
  85. +0 −34 adwords_api/lib/adwords_api/v201206/customer_service.rb
  86. +0 −46 adwords_api/lib/adwords_api/v201206/customer_service_registry.rb
  87. +0 −34 adwords_api/lib/adwords_api/v201206/customer_sync_service.rb
  88. +0 −47 adwords_api/lib/adwords_api/v201206/customer_sync_service_registry.rb
  89. +0 −38 adwords_api/lib/adwords_api/v201206/data_service.rb
  90. +0 −46 adwords_api/lib/adwords_api/v201206/data_service_registry.rb
  91. +0 −38 adwords_api/lib/adwords_api/v201206/experiment_service.rb
  92. +0 −46 adwords_api/lib/adwords_api/v201206/experiment_service_registry.rb
  93. +0 −34 adwords_api/lib/adwords_api/v201206/geo_location_service.rb
  94. +0 −46 adwords_api/lib/adwords_api/v201206/geo_location_service_registry.rb
  95. +0 −34 adwords_api/lib/adwords_api/v201206/info_service.rb
  96. +0 −46 adwords_api/lib/adwords_api/v201206/info_service_registry.rb
  97. +0 −34 adwords_api/lib/adwords_api/v201206/location_criterion_service.rb
  98. +0 −46 adwords_api/lib/adwords_api/v201206/location_criterion_service_registry.rb
  99. +0 −38 adwords_api/lib/adwords_api/v201206/managed_customer_service.rb
  100. +0 −46 adwords_api/lib/adwords_api/v201206/managed_customer_service_registry.rb
  101. +0 −38 adwords_api/lib/adwords_api/v201206/media_service.rb
  102. +0 −46 adwords_api/lib/adwords_api/v201206/media_service_registry.rb
  103. +0 −42 adwords_api/lib/adwords_api/v201206/mutate_job_service.rb
  104. +0 −46 adwords_api/lib/adwords_api/v201206/mutate_job_service_registry.rb
  105. +0 −34 adwords_api/lib/adwords_api/v201206/report_definition_service.rb
  106. +0 −46 adwords_api/lib/adwords_api/v201206/report_definition_service_registry.rb
  107. +0 −38 adwords_api/lib/adwords_api/v201206/targeting_idea_service.rb
  108. +0 −46 adwords_api/lib/adwords_api/v201206/targeting_idea_service_registry.rb
  109. +0 −34 adwords_api/lib/adwords_api/v201206/traffic_estimator_service.rb
  110. +0 −46 adwords_api/lib/adwords_api/v201206/traffic_estimator_service_registry.rb
  111. +0 −38 adwords_api/lib/adwords_api/v201206/user_list_service.rb
  112. +0 −46 adwords_api/lib/adwords_api/v201206/user_list_service_registry.rb
  113. +1 −1 adwords_api/lib/adwords_api/version.rb
  114. +0 −89 adwords_api/test/adwords_api/test_report_utils.rb
  115. +0 −60 adwords_api/test/examples/v201206/test_account_management.rb
  116. +0 −177 adwords_api/test/examples/v201206/test_basic_operations.rb
  117. +0 −124 adwords_api/test/examples/v201206/test_campaign_management.rb
  118. +0 −63 adwords_api/test/examples/v201206/test_error_handling.rb
  119. +0 −39 adwords_api/test/examples/v201206/test_misc.rb
  120. +0 −63 adwords_api/test/examples/v201206/test_optimization.rb
  121. +0 −39 adwords_api/test/examples/v201206/test_remarketing.rb
  122. +0 −84 adwords_api/test/examples/v201206/test_reporting.rb
  123. +0 −60 adwords_api/test/examples/v201206/test_targeting.rb
  124. +0 −244 adwords_api/test/examples/v201206/utils.rb
  125. +0 −37 adwords_api/test/suite_exampletests_v201206.rb
  126. +1 −1 adwords_api/test/templates/v201209/basic_operations_get_campaigns.def
  127. +1 −1 adwords_api/test/templates/v201302/basic_operations_get_campaigns.def
  128. +1 −1 adwords_api/test/templates/v201302/misc_use_oauth2_jwt.def
@@ -1,6 +1,7 @@
-0.8.3:
+0.9.0:
- Shared set support and examples (beta feature).
- Updated feed services auto-generated code.
+ - Removed deprecated API version v201206.
0.8.2:
- Support and examples for v201302.
View
@@ -3,8 +3,8 @@
Welcome to the next generation Google-developed Ruby client library for the
AdWords and DoubleClick Ad Exchange Buyer API!
-It contains full support for v201206, v201209 and v201302, with full stubs, and
-a simplified programming interface that lets you handle everything in native
+It contains full support for v201209 and v201302, with full stubs, and a
+simplified programming interface that lets you handle everything in native
Ruby collections.
@@ -1,87 +0,0 @@
-#!/usr/bin/env ruby
-# Encoding: utf-8
-#
-# Author:: api.dklimkin@gmail.com (Danial Klimkin)
-#
-# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
-#
-# License:: Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# This example illustrates how to create an account. Note by default this
-# account will only be accessible via parent MCC.
-#
-# Note: This code example uses MCC-level calls and won't work with Test
-# Accounts, see: https://developers.google.com/adwords/api/docs/test-accounts
-#
-# Tags: ManagedCustomerService.mutate
-
-require 'adwords_api'
-require 'adwords_api/utils'
-
-def create_account()
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
- # when called without parameters.
- adwords = AdwordsApi::Api.new
-
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
- # the configuration file or provide your own logger:
- # adwords.logger = Logger.new('adwords_xml.log')
-
- managed_customer_srv = adwords.service(:ManagedCustomerService, API_VERSION)
-
- # Create a local Customer object.
- customer = {
- :name => 'Account created with ManagedCustomerService',
- :currency_code => 'EUR',
- :date_time_zone => 'Europe/London'
- }
-
- # Prepare operation to create an account.
- operation = {
- :operator => 'ADD',
- :operand => customer
- }
-
- # Create the account. It is possible to create multiple accounts with one
- # request by sending an array of operations.
- response = managed_customer_srv.mutate([operation])
-
- response[:value].each do |new_account|
- puts "Account with customer ID '%s' was successfully created." %
- AdwordsApi::Utils.format_id(new_account[:customer_id])
- end
-end
-
-if __FILE__ == $0
- API_VERSION = :v201206
-
- begin
- create_account()
-
- # HTTP errors.
- rescue AdsCommon::Errors::HttpError => e
- puts "HTTP Error: %s" % e
-
- # API errors.
- rescue AdwordsApi::Errors::ApiException => e
- puts "Message: %s" % e.message
- puts 'Errors:'
- e.errors.each_with_index do |error, index|
- puts "\tError [%d]:" % (index + 1)
- error.each do |field, value|
- puts "\t\t%s: %s" % [field, value]
- end
- end
- end
-end
@@ -1,114 +0,0 @@
-#!/usr/bin/env ruby
-# Encoding: utf-8
-#
-# Author:: api.dklimkin@gmail.com (Danial Klimkin)
-#
-# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
-#
-# License:: Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# This example gets all alerts for all clients of an MCC account. The effective
-# user (clientCustomerId, or authToken) must be an MCC user to get results.
-#
-# Note: This code example uses MCC-level calls and won't work with Test
-# Accounts, see: https://developers.google.com/adwords/api/docs/test-accounts
-#
-# Tags: AlertService.get
-
-require 'adwords_api'
-require 'adwords_api/utils'
-
-def get_account_alerts()
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
- # when called without parameters.
- adwords = AdwordsApi::Api.new
-
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
- # the configuration file or provide your own logger:
- # adwords.logger = Logger.new('adwords_xml.log')
-
- alert_srv = adwords.service(:AlertService, API_VERSION)
-
- # Create the selector.
- selector = {
- :query => {
- :filter_spec => 'ALL',
- :client_spec => 'ALL',
- :trigger_time_spec => 'ALL_TIME',
- :severities => ['GREEN', 'YELLOW', 'RED'],
- :types => [
- 'ACCOUNT_BUDGET_BURN_RATE', 'ACCOUNT_BUDGET_ENDING',
- 'ACCOUNT_ON_TARGET', 'CAMPAIGN_ENDED', 'CAMPAIGN_ENDING',
- 'CREDIT_CARD_EXPIRING', 'DECLINED_PAYMENT', 'MANAGER_LINK_PENDING',
- 'MISSING_BANK_REFERENCE_NUMBER', 'PAYMENT_NOT_ENTERED',
- 'TV_ACCOUNT_BUDGET_ENDING', 'TV_ACCOUNT_ON_TARGET',
- 'TV_ZERO_DAILY_SPENDING_LIMIT', 'USER_INVITE_ACCEPTED',
- 'USER_INVITE_PENDING', 'ZERO_DAILY_SPENDING_LIMIT'
- ]
- },
- :paging => {
- :start_index => 0,
- :number_results => PAGE_SIZE
- }
- }
-
- # Set initial values.
- offset, page = 0, {}
-
- # Get alerts.
- begin
- page = alert_srv.get(selector)
- if page[:entries]
- page[:entries].each_with_index do |alert, index|
- puts "%d) Customer ID is '%s', alert type is '%s', severity is '%s'."
- [AdwordsApi::Utils.format_id(alert[:client_customer_id]),
- alert[:alert_type], alert[:alert_severity]]
- alert[:details].each do |detail|
- puts "\t- triggered at %s" % detail[:trigger_time]
- end
- end
- # Increment values to request the next page.
- offset += PAGE_SIZE
- selector[:paging][:start_index] = offset
- end
- end while page[:total_num_entries] > offset
-
- if page.include?(:total_num_entries)
- puts "\tTotal number of alerts: %d." % page[:total_num_entries]
- end
-end
-
-if __FILE__ == $0
- API_VERSION = :v201206
- PAGE_SIZE = 500
-
- begin
- get_account_alerts()
-
- # HTTP errors.
- rescue AdsCommon::Errors::HttpError => e
- puts "HTTP Error: %s" % e
-
- # API errors.
- rescue AdwordsApi::Errors::ApiException => e
- puts "Message: %s" % e.message
- puts 'Errors:'
- e.errors.each_with_index do |error, index|
- puts "\tError [%d]:" % (index + 1)
- error.each do |field, value|
- puts "\t\t%s: %s" % [field, value]
- end
- end
- end
-end
@@ -1,137 +0,0 @@
-#!/usr/bin/env ruby
-# Encoding: utf-8
-#
-# Author:: api.dklimkin@gmail.com (Danial Klimkin)
-#
-# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
-#
-# License:: Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# This example gets all account changes that happened within the last 24 hours,
-# for all your campaigns.
-#
-# Tags: CustomerSyncService.get
-
-require 'adwords_api'
-require 'date'
-require 'pp'
-
-def get_account_changes()
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
- # when called without parameters.
- adwords = AdwordsApi::Api.new
-
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
- # the configuration file or provide your own logger:
- # adwords.logger = Logger.new('adwords_xml.log')
-
- campaign_srv = adwords.service(:CampaignService, API_VERSION)
- customer_sync_srv = adwords.service(:CustomerSyncService, API_VERSION)
-
- today_at_midnight = DateTime.parse(Date.today.to_s)
- yesterday_at_midnight = DateTime.parse((Date.today - 1).to_s)
- min_date_time = yesterday_at_midnight.strftime("%Y%m%d %H%M%S")
- max_date_time = today_at_midnight.strftime("%Y%m%d %H%M%S")
-
- # Get all the campaigns for this account.
- selector = {
- :fields => ['Id']
- }
- response = campaign_srv.get(selector)
-
- campaign_ids = []
-
- if response and response[:entries]
- campaign_ids = response[:entries].map { |campaign| campaign[:id] }
- else
- raise StandardError, 'No campaigns were found.'
- end
-
- # Create a selector for CustomerSyncService.
- selector = {
- :campaign_ids => campaign_ids,
- :date_time_range => {
- :min => min_date_time,
- :max => max_date_time
- }
- }
-
- # Get all account changes for the campaigns.
- campaign_changes = customer_sync_srv.get(selector)
-
- # Display changes.
- if campaign_changes
- puts "Most recent change: %s" % campaign_changes[:last_change_timestamp]
- campaign_changes[:changed_campaigns].each do |campaign|
- puts "Campaign with ID %d was changed:" % campaign[:campaign_id]
- puts "\tCampaign change status: '%s'" % campaign[:campaign_change_status]
- unless ['NEW', 'FIELDS_UNCHANGED'].include?(
- campaign[:campaign_change_status])
- puts "\tAdded ad extensions: '%s'" %
- campaign[:added_ad_extensions].pretty_inspect.chomp
- puts "\tAdded campaign criteria: '%s'" %
- campaign[:added_campaign_criteria].pretty_inspect.chomp
- puts "\tAdded campaign targeting: '%s'" %
- campaign[:campaign_targeting_changed].pretty_inspect.chomp
- puts "\tDeleted ad extensions: '%s'" %
- campaign[:deleted_ad_extensions].pretty_inspect.chomp
- puts "\tDeleted campaign criteria: '%s'" %
- campaign[:deleted_campaign_criteria].pretty_inspect.chomp
-
- if campaign[:changed_ad_groups]
- campaign[:changed_ad_groups].each do |ad_group|
- puts "\tAd group with ID %d was changed:" % ad_group[:ad_group_id]
- puts "\t\tAd group changed status: '%s'" %
- ad_group[:ad_group_change_status]
- unless ['NEW', 'FIELDS_UNCHANGED'].include?(
- ad_group[:ad_group_change_status])
- puts "\t\tAds changed: '%s'" %
- ad_group[:changed_ads].pretty_inspect.chomp
- puts "\t\tCriteria changed: '%s'" %
- ad_group[:changed_criteria].pretty_inspect.chomp
- puts "\t\tCriteria deleted: '%s'" %
- ad_group[:deleted_criteria].pretty_inspect.chomp
- end
- end
- end
- end
- puts
- end
- else
- puts 'No account changes were found.'
- end
-end
-
-if __FILE__ == $0
- API_VERSION = :v201206
-
- begin
- get_account_changes()
-
- # HTTP errors.
- rescue AdsCommon::Errors::HttpError => e
- puts "HTTP Error: %s" % e
-
- # API errors.
- rescue AdwordsApi::Errors::ApiException => e
- puts "Message: %s" % e.message
- puts 'Errors:'
- e.errors.each_with_index do |error, index|
- puts "\tError [%d]:" % (index + 1)
- error.each do |field, value|
- puts "\t\t%s: %s" % [field, value]
- end
- end
- end
-end
Oops, something went wrong.

0 comments on commit 4727da2

Please sign in to comment.