API を使用するときに proto クラスへの参照を取得するには、API を本質的に理解しているか、正確な名前空間パスについて proto リファレンス ドキュメントを頻繁に参照する必要があります。
ProtoLookupUtil
GoogleAdsClient のルックアップ ユーティリティ メソッド(Factories と ServiceLookup に基づき、以前の ProtoLookupUtil クラスを置き換える)を使用すると、API バージョン番号とモジュール名前空間を追跡することなく、サービス、オペレーション、列挙型、リソースのインスタンスをルックアップして作成できます。デフォルトでは、これらのメソッドはインストールされている gem でサポートされている最も高い API バージョン(最新リリースでは V25。v25.1 などのマイナー API リリースでは、メジャー バージョン モジュール V25 を使用)を使用します。また、ルックアップ呼び出しで明示的なバージョン プレフィックス(v25 など)を指定することもできます。
ルックアップ ユーティリティを使用しない場合は、バージョン管理された名前空間からキャンペーン リソースを直接インスタンス化します。
campaign =
Google::Ads::GoogleAds::V25::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 }