Ruby

Google은 Ad Manager API와 상호작용하는 Ruby 클라이언트 라이브러리를 제공합니다. RubyGems와 함께 클라이언트 라이브러리를 사용하는 것이 좋습니다.

시작하려면 원하는 IDE에서 새 프로젝트를 만들거나 기존 프로젝트에 종속 항목을 추가합니다. Google은 클라이언트 라이브러리를 RubyGems에 google-ads-ad_manager로 게시합니다.

Gemfile:

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

직접 설치:

gem install google-ads-ad_manager

사용자 인증 정보 구성

Ruby 클라이언트 라이브러리는 OAuth2 및 애플리케이션 기본 사용자 인증 정보(ADC)를 사용하여 인증합니다.

ADC는 다음 위치에서 순서대로 사용자 인증 정보를 검색합니다.

  1. GOOGLE_APPLICATION_CREDENTIALS 환경 변수입니다.
  2. Google Cloud CLI (gcloud CLI)를 통해 설정된 사용자 인증 정보
  3. Google Cloud에서 실행되는 경우 Google Cloud 리소스에 연결된 서비스 계정입니다.

ADC 사용자 인증 정보를 만들고 구성하는 방법은 인증을 참고하세요.

첫 번째 요청하기

각 REST 서비스에는 상응하는 REST 메서드별 메서드가 있는 상응하는 Ruby 클래스가 있습니다. 다음 예에서는 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

다른 메서드 및 리소스의 예는 GitHub 저장소 googleapis/google-cloud-ruby를 참고하세요.

HTTP 요청 및 응답 로깅

Ruby 클라이언트 라이브러리는 표준 logger 라이브러리를 사용하여 HTTP 요청 및 응답을 로깅합니다. 로깅은 기본적으로 사용 중지되어 있습니다.

로깅을 사용 설정하려면 환경 변수 GOOGLE_SDK_RUBY_LOGGING_GEMSgoogle-ads-ad_manager 값으로 설정합니다. Google API를 두 개 이상 사용하는 경우 값을 쉼표로 구분된 클라이언트 라이브러리 gem 이름 목록으로 설정할 수 있습니다. 기본 로깅 동작은 로그를 표준 오류 스트림에 씁니다.

또는 클라이언트 객체를 생성할 때 logger 구성을 수정하여 Ruby 코드에서 로깅을 사용 설정할 수 있습니다.

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

오류 처리

모든 Ad Manager API 오류는 Ruby 클라이언트 라이브러리의 ::Google::Cloud::Error의 서브클래스입니다.

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

Ad Manager API 오류에는 문제 해결을 위해 지원팀에 제공할 수 있는 고유한 request_id도 포함됩니다. 다음 예에서는 오류 details에서 request_id를 추출합니다.

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

리소스 이름 구성

클라이언트 라이브러리는 ID에서 리소스 이름을 빌드하기 위한 도우미 클래스를 제공합니다.

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)

프록시 설정 구성

Ruby 클라이언트 라이브러리는 HTTP_PROXYHTTPS_PROXY 환경 변수를 모두 사용합니다.