diff --git a/samples/cli/lib/samples/adsense.rb b/samples/cli/lib/samples/adsense.rb new file mode 100644 index 000000000..a7d95d1b2 --- /dev/null +++ b/samples/cli/lib/samples/adsense.rb @@ -0,0 +1,99 @@ +# Copyright 2017 Google Inc. +# +# 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. + +require 'google/apis/adsense_v1_4' +require 'base_cli' + +module Samples + # Examples for the Adsense API + # + # Sample usage: + # + # $ ./google-api-samples adsense list_accounts + # $ ./google-api-samples adsense list_account_ad_clients pub-0000000000000000 + # $ ./google-api-samples adsense list_account_ad_units pub-0000000000000000 ca-pub-0000000000000000 + # $ ./google-api-samples adsense get_account_ad_unit_ad_code pub-0000000000000000 ca-pub-0000000000000000 ca-pub-0000000000000000:0000000000 + # + class Adsense < BaseCli + Adsense = Google::Apis::AdsenseV1_4 + + desc 'list_accounts', 'List all accounts available to this AdSense account' + method_option :max_results, type: :numeric, default: 100 + def list_accounts + adsense = Adsense::AdSenseService.new + adsense.authorization = user_credentials_for(Adsense::AUTH_ADSENSE) + + result = adsense.list_accounts(max_results: options[:max_results]) + if result.items + result.items.each { |account| puts "#{account.id} #{account.kind} #{account.name} #{account.premium} #{account.timezone}" } + end + end + + desc( + 'list_account_ad_clients ACCOUNT_ID', + 'List all ad clients in the specified account' + ) + method_option :max_results, type: :numeric, default: 100 + def list_account_ad_clients(account_id) + adsense = Adsense::AdSenseService.new + adsense.authorization = user_credentials_for(Adsense::AUTH_ADSENSE) + + result = adsense.list_account_ad_clients( + account_id, + max_results: options[:max_results] + ) + if result.items + result.items.each { |ad_client| puts ad_client.id } + end + end + + desc( + 'list_account_ad_units ACCOUNT_ID AD_CLIENT_ID', + 'List all ad units in the specified ad client for the specified account' + ) + method_option :max_results, type: :numeric, default: 100 + method_option :include_inactive, type: :boolean, default: true + def list_account_ad_units(account_id, ad_client_id) + adsense = Adsense::AdSenseService.new + adsense.authorization = user_credentials_for(Adsense::AUTH_ADSENSE) + + result = adsense.list_account_ad_units( + account_id, ad_client_id, + max_results: options[:max_results], + include_inactive: options[:include_inactive] + ) + if result.items + result.items.each do |ad_unit| + puts "#{ad_unit.id} #{ad_unit.name} #{ad_unit.status} #{ad_unit.code}" + end + end + end + + desc( + 'get_account_ad_unit_ad_code ACCOUNT_ID AD_CLIENT_ID AD_UNIT_ID', + 'Get ad code for the specified ad unit' + ) + def get_account_ad_unit_ad_code(account_id, ad_client_id, ad_unit_id) + adsense = Adsense::AdSenseService.new + adsense.authorization = user_credentials_for(Adsense::AUTH_ADSENSE) + + result = adsense.get_account_ad_unit_ad_code( + account_id, + ad_client_id, + ad_unit_id + ) + puts result.ad_code + end + end +end \ No newline at end of file