API を使用して proto クラスへの参照を取得するには、API を本質的に理解しているか、正確な名前空間パスの proto リファレンス ドキュメントを頻繁に参照する必要があります。
ProtoLookupUtil
GoogleAdsClient のルックアップ ユーティリティ メソッド(Factories と ServiceLookup を基盤とし、以前の ProtoLookupUtil クラスを置き換えるもの)を使用すると、API バージョン番号とモジュール名前空間を追跡することなく、サービス、オペレーション、列挙型、リソースのインスタンスを検索して作成できます。デフォルトでは、これらのメソッドは、インストールされている gem でサポートされている最新の API バージョン(最新リリースの V26。v25.1 などのマイナー API リリースでは、メジャー バージョン モジュール V25 を使用します)を使用します。また、ルックアップ呼び出しで明示的なバージョン接頭辞(v26 など)を指定することもできます。
ルックアップ ユーティリティを使用しない場合は、バージョン管理された名前空間からキャンペーン リソースを直接インスタンス化します。
campaign =
Google::Ads::GoogleAds::V26::Resources::Campaign.new
クライアント ルックアップ メソッドを使用すると、クライアントからリソースを直接インスタンス化できます。
campaign = client.resource.campaign
リソース、サービス、オペレーションを取得すると、そのエンティティのインスタンスが返されます。
# Instantiate an operation
operation = client.operation.campaign
サービス検索
このユーティリティを他のエンティティに使用しない場合でも、client.service メソッドを使用してサービス クライアントを取得します。client.service は、返されたサービス クライアントで認証情報とトランスポート設定を自動的に構成します。
campaign_service = client.service.campaign
列挙値の検索
protobuf メッセージの列挙型フィールドには、列挙型モジュールを検索するのではなく、Ruby シンボルを直接割り当てます。
campaign.status = :PAUSED
実行時に列挙型のすべての有効なシンボルを検査または反復処理するには、client.enum を使用します。これにより、その列挙型の Google::Protobuf::EnumDescriptor が返されます。
status_enum = client.enum.campaign_status
status_enum.each { |status| p status }