Ruby

O Google oferece uma biblioteca de cliente Ruby para interagir com a API Ad Manager. Recomendamos usar a biblioteca de cliente com o RubyGems.

Para começar, crie um projeto no ambiente de desenvolvimento integrado da sua escolha ou adicione a dependência a um projeto atual. O Google publica a biblioteca de cliente no RubyGems como google-ads-ad_manager.

Gemfile

gem 'google-ads-ad_manager', '~> 5.3.0'

Linha de comando

gem install google-ads-ad_manager

Configurar credenciais

A biblioteca de cliente do Ruby usa o OAuth2 e as Application Default Credentials (ADC) para autenticação.

O ADC procura credenciais na seguinte ordem:

  1. Variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.
  2. Credenciais do usuário configuradas pela CLI do Google Cloud (CLI gcloud).
  3. Ao executar no Google Cloud, a conta de serviço anexada ao recurso do Google Cloud.

Para criar e configurar suas credenciais do ADC, consulte Autenticação.

Faça sua primeira solicitação

Cada serviço REST tem uma classe Ruby correspondente com métodos para cada método REST correspondente. O exemplo a seguir lê um Network.

require "google/ads/ad_manager/v1"

def get_network
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Ads::AdManager::V1::NetworkService::Rest::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Ads::AdManager::V1::GetNetworkRequest.new(name: => 'networks/NETWORK_CODE)'

  # Call the get_network method.
  result = client.get_network request

  # The returned object is of type Google::Ads::AdManager::V1::Network.
  p result
end

Para exemplos de outros métodos e recursos, consulte o repositório do GitHub googleapis/google-cloud-ruby.

Registrar solicitações e respostas HTTP

A biblioteca de cliente do Ruby usa a biblioteca padrão logger para registrar solicitações e respostas HTTP. A geração de registros é desativada por padrão.

Para ativar o registro, defina a variável de ambiente GOOGLE_SDK_RUBY_LOGGING_GEMS como o valor google-ads-ad_manager. Se você usar mais de uma API do Google, defina o valor como uma lista separada por vírgulas de nomes de gem da biblioteca de cliente. O comportamento de geração de registros padrão grava registros no fluxo de erros padrão.

Como alternativa, é possível ativar o registro em seu código Ruby modificando a configuração logger ao construir um objeto de cliente.

require "google/ads/ad_manager/v1"
require "logger"

client = ::Google::Ads::AdManager::V1::NetworkService::Rest::Client.new do |config|
  config.logger = Logger.new "my-app.log"
end

Solucionar erros

Todos os erros da API Ad Manager são subclasses de ::Google::Cloud::Error na biblioteca de cliente Ruby.

result = client.get_network request
rescue ::Google::Cloud::Error => e
  puts "An error of type #{e.class} occurred with HTTP status #{e.status_code}"

Os erros da API Ad Manager também incluem um request_id exclusivo que você pode fornecer ao suporte para receber ajuda com a solução de problemas. O exemplo a seguir extrai o request_id do erro details.

rescue ::Google::Cloud::Error => e
  request_info = e.details.find { |detail| detail.is_a?(Google::Rpc::RequestInfo)}
  puts request_info.request_id

Construir nomes de recursos

A biblioteca de cliente fornece classes auxiliares para criar nomes de recursos com base em IDs.

require "google/ads/ad_manager/v1"

#  Constructs a String in the format:
#  "networks/{networkCode}/orders/{orderId}"
order_name = Google::Ads::AdManager::V1::OrderService::Paths::order_path(:network_code => 123, :order => 456)

Definir as configurações de proxy

A biblioteca de cliente do Ruby respeita as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY.