Khi sử dụng API, việc tìm nạp các giá trị tham chiếu đến các lớp giao thức yêu cầu bạn phải hiểu rõ về API hoặc thường xuyên tra cứu tài liệu tham khảo giao thức để biết chính xác đường dẫn không gian tên.
ProtoLookupUtil
Các phương thức tiện ích tra cứu trên GoogleAdsClient (được hỗ trợ bởi Factories và ServiceLookup, thay thế lớp ProtoLookupUtil cũ) cho phép bạn tra cứu và tạo các phiên bản của dịch vụ, thao tác, hoạt động liệt kê và tài nguyên mà không cần theo dõi số phiên bản API và không gian tên mô-đun. Theo mặc định, các phương thức này sử dụng phiên bản API cao nhất mà gem đã cài đặt của bạn hỗ trợ (V25 trong bản phát hành mới nhất, trong đó các bản phát hành API phụ như v25.1 sử dụng mô-đun phiên bản lớn V25), hoặc bạn có thể chỉ định một tiền tố phiên bản rõ ràng (chẳng hạn như v25) trong lệnh gọi tra cứu.
Nếu không có tiện ích tra cứu, bạn sẽ tạo một thực thể tài nguyên chiến dịch ngay từ không gian tên được phân phiên bản của tài nguyên đó:
campaign =
Google::Ads::GoogleAds::V25::Resources::Campaign.new
Với các phương thức tra cứu ứng dụng khách, bạn có thể khởi tạo tài nguyên ngay từ ứng dụng khách:
campaign = client.resource.campaign
Khi tìm nạp một tài nguyên, dịch vụ hoặc thao tác, một phiên bản của thực thể đó sẽ được trả về:
# Instantiate an operation
operation = client.operation.campaign
Tra cứu dịch vụ
Sử dụng phương thức client.service để tìm nạp các ứng dụng dịch vụ, ngay cả khi bạn không sử dụng tiện ích này cho các thực thể khác. client.service tự động định cấu hình thông tin xác thực và chế độ cài đặt truyền tải của bạn trên ứng dụng dịch vụ đã trả về:
campaign_service = client.service.campaign
Tra cứu bảng liệt kê
Đối với các trường enum trên thông báo protobuf, hãy chỉ định trực tiếp một biểu tượng Ruby thay vì tra cứu mô-đun liệt kê:
campaign.status = :PAUSED
Để kiểm tra hoặc lặp lại tất cả các ký hiệu hợp lệ cho một quá trình liệt kê trong thời gian chạy, hãy sử dụng client.enum. Phương thức này sẽ trả về Google::Protobuf::EnumDescriptor cho enum đó:
status_enum = client.enum.campaign_status
status_enum.each { |status| p status }