API を使用して proto クラスへの参照を取得するには、API を本質的に理解しているか、正確な名前空間パスについて proto リファレンス ドキュメントを頻繁に参照する必要があります。
ProtoLookupUtil
GoogleAdsClient のルックアップ ユーティリティ メソッド(
ファクトリと 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 メッセージの enum フィールドの場合は、列挙型モジュールを検索するのではなく、Ruby シンボルを直接割り当てます。
campaign.status = :PAUSED
実行時に列挙型の有効なシンボルをすべて検査または反復処理するには、client.enum を使用します。これにより、その enum の
Google::Protobuf::EnumDescriptor が返されます。
status_enum = client.enum.campaign_status
status_enum.each { |status| p status }