Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
217 changed files
with
19,285 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
91 changes: 91 additions & 0 deletions
91
adwords_api/examples/v201809/account_management/accept_service_link.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
#!/usr/bin/env ruby | ||
# Encoding: utf-8 | ||
# | ||
# Copyright:: Copyright 2016, 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 accepts a pending invitation to link your AdWords account to a | ||
# Google Merchant Center account. | ||
|
||
require 'adwords_api' | ||
|
||
def accept_service_link(service_link_id) | ||
# 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') | ||
|
||
# Get the CustomerService. | ||
customer_srv = adwords.service(:CustomerService, API_VERSION) | ||
|
||
# Create the operation to set the status to ACTIVE. | ||
operation = { | ||
:operator => 'SET', | ||
:operand => { | ||
:service_link_id => service_link_id, | ||
:service_type => 'MERCHANT_CENTER', | ||
:link_status => 'ACTIVE' | ||
} | ||
} | ||
|
||
# Update the service link. | ||
mutated_service_links = customer_srv.mutate_service_links([operation]) | ||
|
||
# Display the results. | ||
mutated_service_links.each do |mutated_service_link| | ||
puts ("Service link with service link ID %d, type '%s' updated to status:" + | ||
"%s.") % [ | ||
mutated_service_link[:service_link_id], | ||
mutated_service_link[:service_type], | ||
mutated_service_link[:link_status] | ||
] | ||
end | ||
end | ||
|
||
if __FILE__ == $0 | ||
API_VERSION = :v201809 | ||
|
||
begin | ||
service_link_id = 'INSERT_SERVICE_LINK_ID_HERE'.to_i | ||
|
||
accept_service_link(service_link_id) | ||
|
||
# Authorization error. | ||
rescue AdsCommon::Errors::OAuth2VerificationRequired => e | ||
puts "Authorization credentials are not valid. Edit adwords_api.yml for " + | ||
"OAuth2 client ID and secret and run misc/setup_oauth2.rb example " + | ||
"to retrieve and store OAuth2 tokens." | ||
puts "See this wiki page for more details:\n\n " + | ||
'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2' | ||
|
||
# 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 |
88 changes: 88 additions & 0 deletions
88
adwords_api/examples/v201809/account_management/create_account.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
#!/usr/bin/env ruby | ||
# Encoding: utf-8 | ||
# | ||
# 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 AdWords manager account. | ||
|
||
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 = :v201809 | ||
|
||
begin | ||
create_account() | ||
|
||
# Authorization error. | ||
rescue AdsCommon::Errors::OAuth2VerificationRequired => e | ||
puts "Authorization credentials are not valid. Edit adwords_api.yml for " + | ||
"OAuth2 client ID and secret and run misc/setup_oauth2.rb example " + | ||
"to retrieve and store OAuth2 tokens." | ||
puts "See this wiki page for more details:\n\n " + | ||
'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2' | ||
|
||
# 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 |
135 changes: 135 additions & 0 deletions
135
adwords_api/examples/v201809/account_management/get_account_changes.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
#!/usr/bin/env ruby | ||
# Encoding: utf-8 | ||
# | ||
# 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. | ||
|
||
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 campaign criteria: '%s'" % | ||
campaign[:added_campaign_criteria].pretty_inspect.chomp | ||
puts "\tRemoved campaign criteria: '%s'" % | ||
campaign[:removed_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 removed: '%s'" % | ||
ad_group[:removed_criteria].pretty_inspect.chomp | ||
end | ||
end | ||
end | ||
end | ||
puts | ||
end | ||
else | ||
puts 'No account changes were found.' | ||
end | ||
end | ||
|
||
if __FILE__ == $0 | ||
API_VERSION = :v201809 | ||
|
||
begin | ||
get_account_changes() | ||
|
||
# Authorization error. | ||
rescue AdsCommon::Errors::OAuth2VerificationRequired => e | ||
puts "Authorization credentials are not valid. Edit adwords_api.yml for " + | ||
"OAuth2 client ID and secret and run misc/setup_oauth2.rb example " + | ||
"to retrieve and store OAuth2 tokens." | ||
puts "See this wiki page for more details:\n\n " + | ||
'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2' | ||
|
||
# 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.