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는 다음 위치에서 순서대로 사용자 인증 정보를 검색합니다.
GOOGLE_APPLICATION_CREDENTIALS
환경 변수입니다.- Google Cloud CLI (gcloud CLI)를 통해 설정된 사용자 인증 정보
- 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_GEMS
를 google-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_PROXY
및 HTTPS_PROXY
환경 변수를 모두 사용합니다.