google-apis-adexchangebuyer2_v2beta1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3accb2f3ccf7659006614d074d8705ac76b0c61ef670f113da64035ad2b13042
4
+ data.tar.gz: 075e955636eba87bf4fc82da76bb48e18aafb7bd3c43d8eb456e3d09931c13fa
5
+ SHA512:
6
+ metadata.gz: 29169bb1beff56a34a39b4c6ffcc3b00a564434ce82e6625a05217a7241286e299b41b5920c9a49a32ff9dede823a388087078facbc2e8badee5e00201d02bd2
7
+ data.tar.gz: 0ca2c57ac159fc5cbb4732097f985dd60b1d438e60718329e8e6274e4e7ca8b609c4c31e539b073acf2c105d7e4b747c7adef0570ac8409af68f35c54f350010
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-adexchangebuyer2_v2beta1
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/adexchangebuyer2_v2beta1/*.rb
9
+ lib/google/apis/adexchangebuyer2_v2beta1.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-adexchangebuyer2_v2beta1
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201202
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V2beta1 of the Ad Exchange Buyer API II
2
+
3
+ This is a simple client library for version V2beta1 of the Ad Exchange Buyer API II. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/adexchangebuyer2.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-adexchangebuyer2_v2beta1', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-adexchangebuyer2_v2beta1
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/adexchangebuyer2_v2beta1"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::Adexchangebuyer2V2beta1::AdExchangeBuyerIIService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Adexchangebuyer2 service in particular.)
67
+
68
+ For reference information on specific calls in the Ad Exchange Buyer API II, see the {Google::Apis::Adexchangebuyer2V2beta1::AdExchangeBuyerIIService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-adexchangebuyer2_v2beta1`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://developers.google.com/authorized-buyers/apis/reference/rest/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/apis/adexchangebuyer2_v2beta1"
@@ -0,0 +1,38 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/adexchangebuyer2_v2beta1/service.rb'
16
+ require 'google/apis/adexchangebuyer2_v2beta1/classes.rb'
17
+ require 'google/apis/adexchangebuyer2_v2beta1/representations.rb'
18
+ require 'google/apis/adexchangebuyer2_v2beta1/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Ad Exchange Buyer API II
23
+ #
24
+ # Accesses the latest features for managing Authorized Buyers accounts, Real-
25
+ # Time Bidding configurations and auction metrics, and Marketplace programmatic
26
+ # deals.
27
+ #
28
+ # @see https://developers.google.com/authorized-buyers/apis/reference/rest/
29
+ module Adexchangebuyer2V2beta1
30
+ # Version of the Ad Exchange Buyer API II this client connects to.
31
+ # This is NOT the gem version.
32
+ VERSION = 'V2beta1'
33
+
34
+ # Manage your Ad Exchange buyer account configuration
35
+ AUTH_ADEXCHANGE_BUYER = 'https://www.googleapis.com/auth/adexchange.buyer'
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,4105 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module Adexchangebuyer2V2beta1
24
+
25
+ # An absolute date range, specified by its start date and end date. The
26
+ # supported range of dates begins 30 days before today and ends today. Validity
27
+ # checked upon filter set creation. If a filter set with an absolute date range
28
+ # is run at a later date more than 30 days after start_date, it will fail.
29
+ class AbsoluteDateRange
30
+ include Google::Apis::Core::Hashable
31
+
32
+ # Represents a whole or partial calendar date, such as a birthday. The time of
33
+ # day and time zone are either specified elsewhere or are insignificant. The
34
+ # date is relative to the Gregorian Calendar. This can represent one of the
35
+ # following: * A full date, with non-zero year, month, and day values * A month
36
+ # and day value, with a zero year, such as an anniversary * A year on its own,
37
+ # with zero month and day values * A year and month value, with a zero day, such
38
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
39
+ # google.protobuf.Timestamp`.
40
+ # Corresponds to the JSON property `endDate`
41
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Date]
42
+ attr_accessor :end_date
43
+
44
+ # Represents a whole or partial calendar date, such as a birthday. The time of
45
+ # day and time zone are either specified elsewhere or are insignificant. The
46
+ # date is relative to the Gregorian Calendar. This can represent one of the
47
+ # following: * A full date, with non-zero year, month, and day values * A month
48
+ # and day value, with a zero year, such as an anniversary * A year on its own,
49
+ # with zero month and day values * A year and month value, with a zero day, such
50
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
51
+ # google.protobuf.Timestamp`.
52
+ # Corresponds to the JSON property `startDate`
53
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Date]
54
+ attr_accessor :start_date
55
+
56
+ def initialize(**args)
57
+ update!(**args)
58
+ end
59
+
60
+ # Update properties of this object
61
+ def update!(**args)
62
+ @end_date = args[:end_date] if args.key?(:end_date)
63
+ @start_date = args[:start_date] if args.key?(:start_date)
64
+ end
65
+ end
66
+
67
+ # Request to accept a proposal.
68
+ class AcceptProposalRequest
69
+ include Google::Apis::Core::Hashable
70
+
71
+ # The last known client revision number of the proposal.
72
+ # Corresponds to the JSON property `proposalRevision`
73
+ # @return [Fixnum]
74
+ attr_accessor :proposal_revision
75
+
76
+ def initialize(**args)
77
+ update!(**args)
78
+ end
79
+
80
+ # Update properties of this object
81
+ def update!(**args)
82
+ @proposal_revision = args[:proposal_revision] if args.key?(:proposal_revision)
83
+ end
84
+ end
85
+
86
+ # Represents size of a single ad slot, or a creative.
87
+ class AdSize
88
+ include Google::Apis::Core::Hashable
89
+
90
+ # The height of the ad slot in pixels. This field will be present only when size
91
+ # type is `PIXEL`.
92
+ # Corresponds to the JSON property `height`
93
+ # @return [Fixnum]
94
+ attr_accessor :height
95
+
96
+ # The size type of the ad slot.
97
+ # Corresponds to the JSON property `sizeType`
98
+ # @return [String]
99
+ attr_accessor :size_type
100
+
101
+ # The width of the ad slot in pixels. This field will be present only when size
102
+ # type is `PIXEL`.
103
+ # Corresponds to the JSON property `width`
104
+ # @return [Fixnum]
105
+ attr_accessor :width
106
+
107
+ def initialize(**args)
108
+ update!(**args)
109
+ end
110
+
111
+ # Update properties of this object
112
+ def update!(**args)
113
+ @height = args[:height] if args.key?(:height)
114
+ @size_type = args[:size_type] if args.key?(:size_type)
115
+ @width = args[:width] if args.key?(:width)
116
+ end
117
+ end
118
+
119
+ # Detected ad technology provider information.
120
+ class AdTechnologyProviders
121
+ include Google::Apis::Core::Hashable
122
+
123
+ # The detected ad technology provider IDs for this creative. See https://storage.
124
+ # googleapis.com/adx-rtb-dictionaries/providers.csv for mapping of provider ID
125
+ # to provided name, a privacy policy URL, and a list of domains which can be
126
+ # attributed to the provider. If the creative contains provider IDs that are
127
+ # outside of those listed in the `BidRequest.adslot.consented_providers_settings.
128
+ # consented_providers` field on the (Google bid protocol)[https://developers.
129
+ # google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto] and the `
130
+ # BidRequest.user.ext.consented_providers_settings.consented_providers` field on
131
+ # the (OpenRTB protocol)[https://developers.google.com/authorized-buyers/rtb/
132
+ # downloads/openrtb-adx-proto], and a bid is submitted with that creative for an
133
+ # impression that will serve to an EEA user, the bid will be filtered before the
134
+ # auction.
135
+ # Corresponds to the JSON property `detectedProviderIds`
136
+ # @return [Array<Fixnum>]
137
+ attr_accessor :detected_provider_ids
138
+
139
+ # Whether the creative contains an unidentified ad technology provider. If true
140
+ # for a given creative, any bid submitted with that creative for an impression
141
+ # that will serve to an EEA user will be filtered before the auction.
142
+ # Corresponds to the JSON property `hasUnidentifiedProvider`
143
+ # @return [Boolean]
144
+ attr_accessor :has_unidentified_provider
145
+ alias_method :has_unidentified_provider?, :has_unidentified_provider
146
+
147
+ def initialize(**args)
148
+ update!(**args)
149
+ end
150
+
151
+ # Update properties of this object
152
+ def update!(**args)
153
+ @detected_provider_ids = args[:detected_provider_ids] if args.key?(:detected_provider_ids)
154
+ @has_unidentified_provider = args[:has_unidentified_provider] if args.key?(:has_unidentified_provider)
155
+ end
156
+ end
157
+
158
+ # A request for associating a deal and a creative.
159
+ class AddDealAssociationRequest
160
+ include Google::Apis::Core::Hashable
161
+
162
+ # The association between a creative and a deal.
163
+ # Corresponds to the JSON property `association`
164
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CreativeDealAssociation]
165
+ attr_accessor :association
166
+
167
+ def initialize(**args)
168
+ update!(**args)
169
+ end
170
+
171
+ # Update properties of this object
172
+ def update!(**args)
173
+ @association = args[:association] if args.key?(:association)
174
+ end
175
+ end
176
+
177
+ # Request message for adding a note to a given proposal.
178
+ class AddNoteRequest
179
+ include Google::Apis::Core::Hashable
180
+
181
+ # A proposal may be associated to several notes.
182
+ # Corresponds to the JSON property `note`
183
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Note]
184
+ attr_accessor :note
185
+
186
+ def initialize(**args)
187
+ update!(**args)
188
+ end
189
+
190
+ # Update properties of this object
191
+ def update!(**args)
192
+ @note = args[:note] if args.key?(:note)
193
+ end
194
+ end
195
+
196
+ # Output only. The app type the restriction applies to for mobile device.
197
+ class AppContext
198
+ include Google::Apis::Core::Hashable
199
+
200
+ # The app types this restriction applies to.
201
+ # Corresponds to the JSON property `appTypes`
202
+ # @return [Array<String>]
203
+ attr_accessor :app_types
204
+
205
+ def initialize(**args)
206
+ update!(**args)
207
+ end
208
+
209
+ # Update properties of this object
210
+ def update!(**args)
211
+ @app_types = args[:app_types] if args.key?(:app_types)
212
+ end
213
+ end
214
+
215
+ # Output only. The auction type the restriction applies to.
216
+ class AuctionContext
217
+ include Google::Apis::Core::Hashable
218
+
219
+ # The auction types this restriction applies to.
220
+ # Corresponds to the JSON property `auctionTypes`
221
+ # @return [Array<String>]
222
+ attr_accessor :auction_types
223
+
224
+ def initialize(**args)
225
+ update!(**args)
226
+ end
227
+
228
+ # Update properties of this object
229
+ def update!(**args)
230
+ @auction_types = args[:auction_types] if args.key?(:auction_types)
231
+ end
232
+ end
233
+
234
+ # The set of metrics that are measured in numbers of bids, representing how many
235
+ # bids with the specified dimension values were considered eligible at each
236
+ # stage of the bidding funnel;
237
+ class BidMetricsRow
238
+ include Google::Apis::Core::Hashable
239
+
240
+ # A metric value, with an expected value and a variance; represents a count that
241
+ # may be either exact or estimated (i.e. when sampled).
242
+ # Corresponds to the JSON property `bids`
243
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
244
+ attr_accessor :bids
245
+
246
+ # A metric value, with an expected value and a variance; represents a count that
247
+ # may be either exact or estimated (i.e. when sampled).
248
+ # Corresponds to the JSON property `bidsInAuction`
249
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
250
+ attr_accessor :bids_in_auction
251
+
252
+ # A metric value, with an expected value and a variance; represents a count that
253
+ # may be either exact or estimated (i.e. when sampled).
254
+ # Corresponds to the JSON property `billedImpressions`
255
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
256
+ attr_accessor :billed_impressions
257
+
258
+ # A metric value, with an expected value and a variance; represents a count that
259
+ # may be either exact or estimated (i.e. when sampled).
260
+ # Corresponds to the JSON property `impressionsWon`
261
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
262
+ attr_accessor :impressions_won
263
+
264
+ # A metric value, with an expected value and a variance; represents a count that
265
+ # may be either exact or estimated (i.e. when sampled).
266
+ # Corresponds to the JSON property `measurableImpressions`
267
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
268
+ attr_accessor :measurable_impressions
269
+
270
+ # A metric value, with an expected value and a variance; represents a count that
271
+ # may be either exact or estimated (i.e. when sampled).
272
+ # Corresponds to the JSON property `reachedQueries`
273
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
274
+ attr_accessor :reached_queries
275
+
276
+ # A response may include multiple rows, breaking down along various dimensions.
277
+ # Encapsulates the values of all dimensions for a given row.
278
+ # Corresponds to the JSON property `rowDimensions`
279
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RowDimensions]
280
+ attr_accessor :row_dimensions
281
+
282
+ # A metric value, with an expected value and a variance; represents a count that
283
+ # may be either exact or estimated (i.e. when sampled).
284
+ # Corresponds to the JSON property `viewableImpressions`
285
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
286
+ attr_accessor :viewable_impressions
287
+
288
+ def initialize(**args)
289
+ update!(**args)
290
+ end
291
+
292
+ # Update properties of this object
293
+ def update!(**args)
294
+ @bids = args[:bids] if args.key?(:bids)
295
+ @bids_in_auction = args[:bids_in_auction] if args.key?(:bids_in_auction)
296
+ @billed_impressions = args[:billed_impressions] if args.key?(:billed_impressions)
297
+ @impressions_won = args[:impressions_won] if args.key?(:impressions_won)
298
+ @measurable_impressions = args[:measurable_impressions] if args.key?(:measurable_impressions)
299
+ @reached_queries = args[:reached_queries] if args.key?(:reached_queries)
300
+ @row_dimensions = args[:row_dimensions] if args.key?(:row_dimensions)
301
+ @viewable_impressions = args[:viewable_impressions] if args.key?(:viewable_impressions)
302
+ end
303
+ end
304
+
305
+ # The number of impressions with the specified dimension values that were
306
+ # considered to have no applicable bids, as described by the specified status.
307
+ class BidResponseWithoutBidsStatusRow
308
+ include Google::Apis::Core::Hashable
309
+
310
+ # A metric value, with an expected value and a variance; represents a count that
311
+ # may be either exact or estimated (i.e. when sampled).
312
+ # Corresponds to the JSON property `impressionCount`
313
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
314
+ attr_accessor :impression_count
315
+
316
+ # A response may include multiple rows, breaking down along various dimensions.
317
+ # Encapsulates the values of all dimensions for a given row.
318
+ # Corresponds to the JSON property `rowDimensions`
319
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RowDimensions]
320
+ attr_accessor :row_dimensions
321
+
322
+ # The status specifying why the bid responses were considered to have no
323
+ # applicable bids.
324
+ # Corresponds to the JSON property `status`
325
+ # @return [String]
326
+ attr_accessor :status
327
+
328
+ def initialize(**args)
329
+ update!(**args)
330
+ end
331
+
332
+ # Update properties of this object
333
+ def update!(**args)
334
+ @impression_count = args[:impression_count] if args.key?(:impression_count)
335
+ @row_dimensions = args[:row_dimensions] if args.key?(:row_dimensions)
336
+ @status = args[:status] if args.key?(:status)
337
+ end
338
+ end
339
+
340
+ # Represents a buyer of inventory. Each buyer is identified by a unique
341
+ # Authorized Buyers account ID.
342
+ class Buyer
343
+ include Google::Apis::Core::Hashable
344
+
345
+ # Authorized Buyers account ID of the buyer.
346
+ # Corresponds to the JSON property `accountId`
347
+ # @return [String]
348
+ attr_accessor :account_id
349
+
350
+ def initialize(**args)
351
+ update!(**args)
352
+ end
353
+
354
+ # Update properties of this object
355
+ def update!(**args)
356
+ @account_id = args[:account_id] if args.key?(:account_id)
357
+ end
358
+ end
359
+
360
+ # The number of impressions with the specified dimension values where the
361
+ # corresponding bid request or bid response was not successful, as described by
362
+ # the specified callout status.
363
+ class CalloutStatusRow
364
+ include Google::Apis::Core::Hashable
365
+
366
+ # The ID of the callout status. See [callout-status-codes](https://developers.
367
+ # google.com/authorized-buyers/rtb/downloads/callout-status-codes).
368
+ # Corresponds to the JSON property `calloutStatusId`
369
+ # @return [Fixnum]
370
+ attr_accessor :callout_status_id
371
+
372
+ # A metric value, with an expected value and a variance; represents a count that
373
+ # may be either exact or estimated (i.e. when sampled).
374
+ # Corresponds to the JSON property `impressionCount`
375
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
376
+ attr_accessor :impression_count
377
+
378
+ # A response may include multiple rows, breaking down along various dimensions.
379
+ # Encapsulates the values of all dimensions for a given row.
380
+ # Corresponds to the JSON property `rowDimensions`
381
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RowDimensions]
382
+ attr_accessor :row_dimensions
383
+
384
+ def initialize(**args)
385
+ update!(**args)
386
+ end
387
+
388
+ # Update properties of this object
389
+ def update!(**args)
390
+ @callout_status_id = args[:callout_status_id] if args.key?(:callout_status_id)
391
+ @impression_count = args[:impression_count] if args.key?(:impression_count)
392
+ @row_dimensions = args[:row_dimensions] if args.key?(:row_dimensions)
393
+ end
394
+ end
395
+
396
+ # Request to cancel an ongoing negotiation.
397
+ class CancelNegotiationRequest
398
+ include Google::Apis::Core::Hashable
399
+
400
+ def initialize(**args)
401
+ update!(**args)
402
+ end
403
+
404
+ # Update properties of this object
405
+ def update!(**args)
406
+ end
407
+ end
408
+
409
+ # A client resource represents a client buyer—an agency, a brand, or an
410
+ # advertiser customer of the sponsor buyer. Users associated with the client
411
+ # buyer have restricted access to the Marketplace and certain other sections of
412
+ # the Authorized Buyers UI based on the role granted to the client buyer. All
413
+ # fields are required unless otherwise specified.
414
+ class Client
415
+ include Google::Apis::Core::Hashable
416
+
417
+ # The globally-unique numerical ID of the client. The value of this field is
418
+ # ignored in create and update operations.
419
+ # Corresponds to the JSON property `clientAccountId`
420
+ # @return [Fixnum]
421
+ attr_accessor :client_account_id
422
+
423
+ # Name used to represent this client to publishers. You may have multiple
424
+ # clients that map to the same entity, but for each client the combination of `
425
+ # clientName` and entity must be unique. You can specify this field as empty.
426
+ # Corresponds to the JSON property `clientName`
427
+ # @return [String]
428
+ attr_accessor :client_name
429
+
430
+ # Numerical identifier of the client entity. The entity can be an advertiser, a
431
+ # brand, or an agency. This identifier is unique among all the entities with the
432
+ # same type. The value of this field is ignored if the entity type is not
433
+ # provided. A list of all known advertisers with their identifiers is available
434
+ # in the [advertisers.txt](https://storage.googleapis.com/adx-rtb-dictionaries/
435
+ # advertisers.txt) file. A list of all known brands with their identifiers is
436
+ # available in the [brands.txt](https://storage.googleapis.com/adx-rtb-
437
+ # dictionaries/brands.txt) file. A list of all known agencies with their
438
+ # identifiers is available in the [agencies.txt](https://storage.googleapis.com/
439
+ # adx-rtb-dictionaries/agencies.txt) file.
440
+ # Corresponds to the JSON property `entityId`
441
+ # @return [Fixnum]
442
+ attr_accessor :entity_id
443
+
444
+ # The name of the entity. This field is automatically fetched based on the type
445
+ # and ID. The value of this field is ignored in create and update operations.
446
+ # Corresponds to the JSON property `entityName`
447
+ # @return [String]
448
+ attr_accessor :entity_name
449
+
450
+ # An optional field for specifying the type of the client entity: `ADVERTISER`, `
451
+ # BRAND`, or `AGENCY`.
452
+ # Corresponds to the JSON property `entityType`
453
+ # @return [String]
454
+ attr_accessor :entity_type
455
+
456
+ # Optional arbitrary unique identifier of this client buyer from the standpoint
457
+ # of its Ad Exchange sponsor buyer. This field can be used to associate a client
458
+ # buyer with the identifier in the namespace of its sponsor buyer, lookup client
459
+ # buyers by that identifier and verify whether an Ad Exchange counterpart of a
460
+ # given client buyer already exists. If present, must be unique among all the
461
+ # client buyers for its Ad Exchange sponsor buyer.
462
+ # Corresponds to the JSON property `partnerClientId`
463
+ # @return [String]
464
+ attr_accessor :partner_client_id
465
+
466
+ # The role which is assigned to the client buyer. Each role implies a set of
467
+ # permissions granted to the client. Must be one of `CLIENT_DEAL_VIEWER`, `
468
+ # CLIENT_DEAL_NEGOTIATOR` or `CLIENT_DEAL_APPROVER`.
469
+ # Corresponds to the JSON property `role`
470
+ # @return [String]
471
+ attr_accessor :role
472
+
473
+ # The status of the client buyer.
474
+ # Corresponds to the JSON property `status`
475
+ # @return [String]
476
+ attr_accessor :status
477
+
478
+ # Whether the client buyer will be visible to sellers.
479
+ # Corresponds to the JSON property `visibleToSeller`
480
+ # @return [Boolean]
481
+ attr_accessor :visible_to_seller
482
+ alias_method :visible_to_seller?, :visible_to_seller
483
+
484
+ def initialize(**args)
485
+ update!(**args)
486
+ end
487
+
488
+ # Update properties of this object
489
+ def update!(**args)
490
+ @client_account_id = args[:client_account_id] if args.key?(:client_account_id)
491
+ @client_name = args[:client_name] if args.key?(:client_name)
492
+ @entity_id = args[:entity_id] if args.key?(:entity_id)
493
+ @entity_name = args[:entity_name] if args.key?(:entity_name)
494
+ @entity_type = args[:entity_type] if args.key?(:entity_type)
495
+ @partner_client_id = args[:partner_client_id] if args.key?(:partner_client_id)
496
+ @role = args[:role] if args.key?(:role)
497
+ @status = args[:status] if args.key?(:status)
498
+ @visible_to_seller = args[:visible_to_seller] if args.key?(:visible_to_seller)
499
+ end
500
+ end
501
+
502
+ # A client user is created under a client buyer and has restricted access to the
503
+ # Marketplace and certain other sections of the Authorized Buyers UI based on
504
+ # the role granted to the associated client buyer. The only way a new client
505
+ # user can be created is via accepting an email invitation (see the accounts.
506
+ # clients.invitations.create method). All fields are required unless otherwise
507
+ # specified.
508
+ class ClientUser
509
+ include Google::Apis::Core::Hashable
510
+
511
+ # Numerical account ID of the client buyer with which the user is associated;
512
+ # the buyer must be a client of the current sponsor buyer. The value of this
513
+ # field is ignored in an update operation.
514
+ # Corresponds to the JSON property `clientAccountId`
515
+ # @return [Fixnum]
516
+ attr_accessor :client_account_id
517
+
518
+ # User's email address. The value of this field is ignored in an update
519
+ # operation.
520
+ # Corresponds to the JSON property `email`
521
+ # @return [String]
522
+ attr_accessor :email
523
+
524
+ # The status of the client user.
525
+ # Corresponds to the JSON property `status`
526
+ # @return [String]
527
+ attr_accessor :status
528
+
529
+ # The unique numerical ID of the client user that has accepted an invitation.
530
+ # The value of this field is ignored in an update operation.
531
+ # Corresponds to the JSON property `userId`
532
+ # @return [Fixnum]
533
+ attr_accessor :user_id
534
+
535
+ def initialize(**args)
536
+ update!(**args)
537
+ end
538
+
539
+ # Update properties of this object
540
+ def update!(**args)
541
+ @client_account_id = args[:client_account_id] if args.key?(:client_account_id)
542
+ @email = args[:email] if args.key?(:email)
543
+ @status = args[:status] if args.key?(:status)
544
+ @user_id = args[:user_id] if args.key?(:user_id)
545
+ end
546
+ end
547
+
548
+ # An invitation for a new client user to get access to the Authorized Buyers UI.
549
+ # All fields are required unless otherwise specified.
550
+ class ClientUserInvitation
551
+ include Google::Apis::Core::Hashable
552
+
553
+ # Numerical account ID of the client buyer that the invited user is associated
554
+ # with. The value of this field is ignored in create operations.
555
+ # Corresponds to the JSON property `clientAccountId`
556
+ # @return [Fixnum]
557
+ attr_accessor :client_account_id
558
+
559
+ # The email address to which the invitation is sent. Email addresses should be
560
+ # unique among all client users under each sponsor buyer.
561
+ # Corresponds to the JSON property `email`
562
+ # @return [String]
563
+ attr_accessor :email
564
+
565
+ # The unique numerical ID of the invitation that is sent to the user. The value
566
+ # of this field is ignored in create operations.
567
+ # Corresponds to the JSON property `invitationId`
568
+ # @return [Fixnum]
569
+ attr_accessor :invitation_id
570
+
571
+ def initialize(**args)
572
+ update!(**args)
573
+ end
574
+
575
+ # Update properties of this object
576
+ def update!(**args)
577
+ @client_account_id = args[:client_account_id] if args.key?(:client_account_id)
578
+ @email = args[:email] if args.key?(:email)
579
+ @invitation_id = args[:invitation_id] if args.key?(:invitation_id)
580
+ end
581
+ end
582
+
583
+ # Request message for indicating that the proposal's setup step is complete.
584
+ class CompleteSetupRequest
585
+ include Google::Apis::Core::Hashable
586
+
587
+ def initialize(**args)
588
+ update!(**args)
589
+ end
590
+
591
+ # Update properties of this object
592
+ def update!(**args)
593
+ end
594
+ end
595
+
596
+ # Contains information on how a buyer or seller can be reached.
597
+ class ContactInformation
598
+ include Google::Apis::Core::Hashable
599
+
600
+ # Email address for the contact.
601
+ # Corresponds to the JSON property `email`
602
+ # @return [String]
603
+ attr_accessor :email
604
+
605
+ # The name of the contact.
606
+ # Corresponds to the JSON property `name`
607
+ # @return [String]
608
+ attr_accessor :name
609
+
610
+ def initialize(**args)
611
+ update!(**args)
612
+ end
613
+
614
+ # Update properties of this object
615
+ def update!(**args)
616
+ @email = args[:email] if args.key?(:email)
617
+ @name = args[:name] if args.key?(:name)
618
+ end
619
+ end
620
+
621
+ # Output only. Shows any corrections that were applied to this creative.
622
+ class Correction
623
+ include Google::Apis::Core::Hashable
624
+
625
+ # The contexts for the correction.
626
+ # Corresponds to the JSON property `contexts`
627
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ServingContext>]
628
+ attr_accessor :contexts
629
+
630
+ # Additional details about what was corrected.
631
+ # Corresponds to the JSON property `details`
632
+ # @return [Array<String>]
633
+ attr_accessor :details
634
+
635
+ # The type of correction that was applied to the creative.
636
+ # Corresponds to the JSON property `type`
637
+ # @return [String]
638
+ attr_accessor :type
639
+
640
+ def initialize(**args)
641
+ update!(**args)
642
+ end
643
+
644
+ # Update properties of this object
645
+ def update!(**args)
646
+ @contexts = args[:contexts] if args.key?(:contexts)
647
+ @details = args[:details] if args.key?(:details)
648
+ @type = args[:type] if args.key?(:type)
649
+ end
650
+ end
651
+
652
+ # A creative and its classification data.
653
+ class Creative
654
+ include Google::Apis::Core::Hashable
655
+
656
+ # The account that this creative belongs to. Can be used to filter the response
657
+ # of the creatives.list method.
658
+ # Corresponds to the JSON property `accountId`
659
+ # @return [String]
660
+ attr_accessor :account_id
661
+
662
+ # The link to AdChoices destination page.
663
+ # Corresponds to the JSON property `adChoicesDestinationUrl`
664
+ # @return [String]
665
+ attr_accessor :ad_choices_destination_url
666
+
667
+ # Detected ad technology provider information.
668
+ # Corresponds to the JSON property `adTechnologyProviders`
669
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::AdTechnologyProviders]
670
+ attr_accessor :ad_technology_providers
671
+
672
+ # The name of the company being advertised in the creative.
673
+ # Corresponds to the JSON property `advertiserName`
674
+ # @return [String]
675
+ attr_accessor :advertiser_name
676
+
677
+ # The agency ID for this creative.
678
+ # Corresponds to the JSON property `agencyId`
679
+ # @return [Fixnum]
680
+ attr_accessor :agency_id
681
+
682
+ # Output only. The last update timestamp of the creative via API.
683
+ # Corresponds to the JSON property `apiUpdateTime`
684
+ # @return [String]
685
+ attr_accessor :api_update_time
686
+
687
+ # All attributes for the ads that may be shown from this creative. Can be used
688
+ # to filter the response of the creatives.list method.
689
+ # Corresponds to the JSON property `attributes`
690
+ # @return [Array<String>]
691
+ attr_accessor :attributes
692
+
693
+ # The set of destination URLs for the creative.
694
+ # Corresponds to the JSON property `clickThroughUrls`
695
+ # @return [Array<String>]
696
+ attr_accessor :click_through_urls
697
+
698
+ # Output only. Shows any corrections that were applied to this creative.
699
+ # Corresponds to the JSON property `corrections`
700
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Correction>]
701
+ attr_accessor :corrections
702
+
703
+ # The buyer-defined creative ID of this creative. Can be used to filter the
704
+ # response of the creatives.list method.
705
+ # Corresponds to the JSON property `creativeId`
706
+ # @return [String]
707
+ attr_accessor :creative_id
708
+
709
+ # Output only. The top-level deals status of this creative. If disapproved, an
710
+ # entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in serving_restrictions will
711
+ # also exist. Note that this may be nuanced with other contextual restrictions,
712
+ # in which case, it may be preferable to read from serving_restrictions directly.
713
+ # Can be used to filter the response of the creatives.list method.
714
+ # Corresponds to the JSON property `dealsStatus`
715
+ # @return [String]
716
+ attr_accessor :deals_status
717
+
718
+ # The set of declared destination URLs for the creative.
719
+ # Corresponds to the JSON property `declaredClickThroughUrls`
720
+ # @return [Array<String>]
721
+ attr_accessor :declared_click_through_urls
722
+
723
+ # Output only. Detected advertiser IDs, if any.
724
+ # Corresponds to the JSON property `detectedAdvertiserIds`
725
+ # @return [Array<Fixnum>]
726
+ attr_accessor :detected_advertiser_ids
727
+
728
+ # Output only. The detected domains for this creative.
729
+ # Corresponds to the JSON property `detectedDomains`
730
+ # @return [Array<String>]
731
+ attr_accessor :detected_domains
732
+
733
+ # Output only. The detected languages for this creative. The order is arbitrary.
734
+ # The codes are 2 or 5 characters and are documented at https://developers.
735
+ # google.com/adwords/api/docs/appendix/languagecodes.
736
+ # Corresponds to the JSON property `detectedLanguages`
737
+ # @return [Array<String>]
738
+ attr_accessor :detected_languages
739
+
740
+ # Output only. Detected product categories, if any. See the ad-product-
741
+ # categories.txt file in the technical documentation for a list of IDs.
742
+ # Corresponds to the JSON property `detectedProductCategories`
743
+ # @return [Array<Fixnum>]
744
+ attr_accessor :detected_product_categories
745
+
746
+ # Output only. Detected sensitive categories, if any. See the ad-sensitive-
747
+ # categories.txt file in the technical documentation for a list of IDs. You
748
+ # should use these IDs along with the excluded-sensitive-category field in the
749
+ # bid request to filter your bids.
750
+ # Corresponds to the JSON property `detectedSensitiveCategories`
751
+ # @return [Array<Fixnum>]
752
+ attr_accessor :detected_sensitive_categories
753
+
754
+ # HTML content for a creative.
755
+ # Corresponds to the JSON property `html`
756
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::HtmlContent]
757
+ attr_accessor :html
758
+
759
+ # The set of URLs to be called to record an impression.
760
+ # Corresponds to the JSON property `impressionTrackingUrls`
761
+ # @return [Array<String>]
762
+ attr_accessor :impression_tracking_urls
763
+
764
+ # Native content for a creative.
765
+ # Corresponds to the JSON property `native`
766
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::NativeContent]
767
+ attr_accessor :native
768
+
769
+ # Output only. The top-level open auction status of this creative. If
770
+ # disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
771
+ # serving_restrictions will also exist. Note that this may be nuanced with other
772
+ # contextual restrictions, in which case, it may be preferable to read from
773
+ # serving_restrictions directly. Can be used to filter the response of the
774
+ # creatives.list method.
775
+ # Corresponds to the JSON property `openAuctionStatus`
776
+ # @return [String]
777
+ attr_accessor :open_auction_status
778
+
779
+ # All restricted categories for the ads that may be shown from this creative.
780
+ # Corresponds to the JSON property `restrictedCategories`
781
+ # @return [Array<String>]
782
+ attr_accessor :restricted_categories
783
+
784
+ # Output only. The granular status of this ad in specific contexts. A context
785
+ # here relates to where something ultimately serves (for example, a physical
786
+ # location, a platform, an HTTPS vs HTTP request, or the type of auction).
787
+ # Corresponds to the JSON property `servingRestrictions`
788
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ServingRestriction>]
789
+ attr_accessor :serving_restrictions
790
+
791
+ # All vendor IDs for the ads that may be shown from this creative. See https://
792
+ # storage.googleapis.com/adx-rtb-dictionaries/vendors.txt for possible values.
793
+ # Corresponds to the JSON property `vendorIds`
794
+ # @return [Array<Fixnum>]
795
+ attr_accessor :vendor_ids
796
+
797
+ # Output only. The version of this creative.
798
+ # Corresponds to the JSON property `version`
799
+ # @return [Fixnum]
800
+ attr_accessor :version
801
+
802
+ # Video content for a creative.
803
+ # Corresponds to the JSON property `video`
804
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::VideoContent]
805
+ attr_accessor :video
806
+
807
+ def initialize(**args)
808
+ update!(**args)
809
+ end
810
+
811
+ # Update properties of this object
812
+ def update!(**args)
813
+ @account_id = args[:account_id] if args.key?(:account_id)
814
+ @ad_choices_destination_url = args[:ad_choices_destination_url] if args.key?(:ad_choices_destination_url)
815
+ @ad_technology_providers = args[:ad_technology_providers] if args.key?(:ad_technology_providers)
816
+ @advertiser_name = args[:advertiser_name] if args.key?(:advertiser_name)
817
+ @agency_id = args[:agency_id] if args.key?(:agency_id)
818
+ @api_update_time = args[:api_update_time] if args.key?(:api_update_time)
819
+ @attributes = args[:attributes] if args.key?(:attributes)
820
+ @click_through_urls = args[:click_through_urls] if args.key?(:click_through_urls)
821
+ @corrections = args[:corrections] if args.key?(:corrections)
822
+ @creative_id = args[:creative_id] if args.key?(:creative_id)
823
+ @deals_status = args[:deals_status] if args.key?(:deals_status)
824
+ @declared_click_through_urls = args[:declared_click_through_urls] if args.key?(:declared_click_through_urls)
825
+ @detected_advertiser_ids = args[:detected_advertiser_ids] if args.key?(:detected_advertiser_ids)
826
+ @detected_domains = args[:detected_domains] if args.key?(:detected_domains)
827
+ @detected_languages = args[:detected_languages] if args.key?(:detected_languages)
828
+ @detected_product_categories = args[:detected_product_categories] if args.key?(:detected_product_categories)
829
+ @detected_sensitive_categories = args[:detected_sensitive_categories] if args.key?(:detected_sensitive_categories)
830
+ @html = args[:html] if args.key?(:html)
831
+ @impression_tracking_urls = args[:impression_tracking_urls] if args.key?(:impression_tracking_urls)
832
+ @native = args[:native] if args.key?(:native)
833
+ @open_auction_status = args[:open_auction_status] if args.key?(:open_auction_status)
834
+ @restricted_categories = args[:restricted_categories] if args.key?(:restricted_categories)
835
+ @serving_restrictions = args[:serving_restrictions] if args.key?(:serving_restrictions)
836
+ @vendor_ids = args[:vendor_ids] if args.key?(:vendor_ids)
837
+ @version = args[:version] if args.key?(:version)
838
+ @video = args[:video] if args.key?(:video)
839
+ end
840
+ end
841
+
842
+ # The association between a creative and a deal.
843
+ class CreativeDealAssociation
844
+ include Google::Apis::Core::Hashable
845
+
846
+ # The account the creative belongs to.
847
+ # Corresponds to the JSON property `accountId`
848
+ # @return [String]
849
+ attr_accessor :account_id
850
+
851
+ # The ID of the creative associated with the deal.
852
+ # Corresponds to the JSON property `creativeId`
853
+ # @return [String]
854
+ attr_accessor :creative_id
855
+
856
+ # The externalDealId for the deal associated with the creative.
857
+ # Corresponds to the JSON property `dealsId`
858
+ # @return [String]
859
+ attr_accessor :deals_id
860
+
861
+ def initialize(**args)
862
+ update!(**args)
863
+ end
864
+
865
+ # Update properties of this object
866
+ def update!(**args)
867
+ @account_id = args[:account_id] if args.key?(:account_id)
868
+ @creative_id = args[:creative_id] if args.key?(:creative_id)
869
+ @deals_id = args[:deals_id] if args.key?(:deals_id)
870
+ end
871
+ end
872
+
873
+ # Represents creative restrictions associated to Programmatic Guaranteed/
874
+ # Preferred Deal in Ad Manager. This doesn't apply to Private Auction and AdX
875
+ # Preferred Deals.
876
+ class CreativeRestrictions
877
+ include Google::Apis::Core::Hashable
878
+
879
+ # The format of the environment that the creatives will be displayed in.
880
+ # Corresponds to the JSON property `creativeFormat`
881
+ # @return [String]
882
+ attr_accessor :creative_format
883
+
884
+ #
885
+ # Corresponds to the JSON property `creativeSpecifications`
886
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::CreativeSpecification>]
887
+ attr_accessor :creative_specifications
888
+
889
+ # Skippable video ads allow viewers to skip ads after 5 seconds.
890
+ # Corresponds to the JSON property `skippableAdType`
891
+ # @return [String]
892
+ attr_accessor :skippable_ad_type
893
+
894
+ def initialize(**args)
895
+ update!(**args)
896
+ end
897
+
898
+ # Update properties of this object
899
+ def update!(**args)
900
+ @creative_format = args[:creative_format] if args.key?(:creative_format)
901
+ @creative_specifications = args[:creative_specifications] if args.key?(:creative_specifications)
902
+ @skippable_ad_type = args[:skippable_ad_type] if args.key?(:skippable_ad_type)
903
+ end
904
+ end
905
+
906
+ # Specifies the size of the creative.
907
+ class CreativeSize
908
+ include Google::Apis::Core::Hashable
909
+
910
+ # What formats are allowed by the publisher. If this repeated field is empty
911
+ # then all formats are allowed. For example, if this field contains
912
+ # AllowedFormatType.AUDIO then the publisher only allows an audio ad (without
913
+ # any video).
914
+ # Corresponds to the JSON property `allowedFormats`
915
+ # @return [Array<String>]
916
+ attr_accessor :allowed_formats
917
+
918
+ # For video creatives specifies the sizes of companion ads (if present).
919
+ # Companion sizes may be filled in only when creative_size_type = VIDEO
920
+ # Corresponds to the JSON property `companionSizes`
921
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Size>]
922
+ attr_accessor :companion_sizes
923
+
924
+ # The creative size type.
925
+ # Corresponds to the JSON property `creativeSizeType`
926
+ # @return [String]
927
+ attr_accessor :creative_size_type
928
+
929
+ # Output only. The native template for this creative. It will have a value only
930
+ # if creative_size_type = CreativeSizeType.NATIVE.
931
+ # Corresponds to the JSON property `nativeTemplate`
932
+ # @return [String]
933
+ attr_accessor :native_template
934
+
935
+ # Message depicting the size of the creative. The units of width and height
936
+ # depend on the type of the targeting.
937
+ # Corresponds to the JSON property `size`
938
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Size]
939
+ attr_accessor :size
940
+
941
+ # The type of skippable ad for this creative. It will have a value only if
942
+ # creative_size_type = CreativeSizeType.VIDEO.
943
+ # Corresponds to the JSON property `skippableAdType`
944
+ # @return [String]
945
+ attr_accessor :skippable_ad_type
946
+
947
+ def initialize(**args)
948
+ update!(**args)
949
+ end
950
+
951
+ # Update properties of this object
952
+ def update!(**args)
953
+ @allowed_formats = args[:allowed_formats] if args.key?(:allowed_formats)
954
+ @companion_sizes = args[:companion_sizes] if args.key?(:companion_sizes)
955
+ @creative_size_type = args[:creative_size_type] if args.key?(:creative_size_type)
956
+ @native_template = args[:native_template] if args.key?(:native_template)
957
+ @size = args[:size] if args.key?(:size)
958
+ @skippable_ad_type = args[:skippable_ad_type] if args.key?(:skippable_ad_type)
959
+ end
960
+ end
961
+
962
+ # Represents information for a creative that is associated with a Programmatic
963
+ # Guaranteed/Preferred Deal in Ad Manager.
964
+ class CreativeSpecification
965
+ include Google::Apis::Core::Hashable
966
+
967
+ # Companion sizes may be filled in only when this is a video creative.
968
+ # Corresponds to the JSON property `creativeCompanionSizes`
969
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::AdSize>]
970
+ attr_accessor :creative_companion_sizes
971
+
972
+ # Represents size of a single ad slot, or a creative.
973
+ # Corresponds to the JSON property `creativeSize`
974
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::AdSize]
975
+ attr_accessor :creative_size
976
+
977
+ def initialize(**args)
978
+ update!(**args)
979
+ end
980
+
981
+ # Update properties of this object
982
+ def update!(**args)
983
+ @creative_companion_sizes = args[:creative_companion_sizes] if args.key?(:creative_companion_sizes)
984
+ @creative_size = args[:creative_size] if args.key?(:creative_size)
985
+ end
986
+ end
987
+
988
+ # The number of bids with the specified dimension values that did not win the
989
+ # auction (either were filtered pre-auction or lost the auction), as described
990
+ # by the specified creative status.
991
+ class CreativeStatusRow
992
+ include Google::Apis::Core::Hashable
993
+
994
+ # A metric value, with an expected value and a variance; represents a count that
995
+ # may be either exact or estimated (i.e. when sampled).
996
+ # Corresponds to the JSON property `bidCount`
997
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
998
+ attr_accessor :bid_count
999
+
1000
+ # The ID of the creative status. See [creative-status-codes](https://developers.
1001
+ # google.com/authorized-buyers/rtb/downloads/creative-status-codes).
1002
+ # Corresponds to the JSON property `creativeStatusId`
1003
+ # @return [Fixnum]
1004
+ attr_accessor :creative_status_id
1005
+
1006
+ # A response may include multiple rows, breaking down along various dimensions.
1007
+ # Encapsulates the values of all dimensions for a given row.
1008
+ # Corresponds to the JSON property `rowDimensions`
1009
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RowDimensions]
1010
+ attr_accessor :row_dimensions
1011
+
1012
+ def initialize(**args)
1013
+ update!(**args)
1014
+ end
1015
+
1016
+ # Update properties of this object
1017
+ def update!(**args)
1018
+ @bid_count = args[:bid_count] if args.key?(:bid_count)
1019
+ @creative_status_id = args[:creative_status_id] if args.key?(:creative_status_id)
1020
+ @row_dimensions = args[:row_dimensions] if args.key?(:row_dimensions)
1021
+ end
1022
+ end
1023
+
1024
+ # Generic targeting used for targeting dimensions that contains a list of
1025
+ # included and excluded numeric IDs.
1026
+ class CriteriaTargeting
1027
+ include Google::Apis::Core::Hashable
1028
+
1029
+ # A list of numeric IDs to be excluded.
1030
+ # Corresponds to the JSON property `excludedCriteriaIds`
1031
+ # @return [Array<Fixnum>]
1032
+ attr_accessor :excluded_criteria_ids
1033
+
1034
+ # A list of numeric IDs to be included.
1035
+ # Corresponds to the JSON property `targetedCriteriaIds`
1036
+ # @return [Array<Fixnum>]
1037
+ attr_accessor :targeted_criteria_ids
1038
+
1039
+ def initialize(**args)
1040
+ update!(**args)
1041
+ end
1042
+
1043
+ # Update properties of this object
1044
+ def update!(**args)
1045
+ @excluded_criteria_ids = args[:excluded_criteria_ids] if args.key?(:excluded_criteria_ids)
1046
+ @targeted_criteria_ids = args[:targeted_criteria_ids] if args.key?(:targeted_criteria_ids)
1047
+ end
1048
+ end
1049
+
1050
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1051
+ # day and time zone are either specified elsewhere or are insignificant. The
1052
+ # date is relative to the Gregorian Calendar. This can represent one of the
1053
+ # following: * A full date, with non-zero year, month, and day values * A month
1054
+ # and day value, with a zero year, such as an anniversary * A year on its own,
1055
+ # with zero month and day values * A year and month value, with a zero day, such
1056
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
1057
+ # google.protobuf.Timestamp`.
1058
+ class Date
1059
+ include Google::Apis::Core::Hashable
1060
+
1061
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
1062
+ # specify a year by itself or a year and month where the day isn't significant.
1063
+ # Corresponds to the JSON property `day`
1064
+ # @return [Fixnum]
1065
+ attr_accessor :day
1066
+
1067
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
1068
+ # and day.
1069
+ # Corresponds to the JSON property `month`
1070
+ # @return [Fixnum]
1071
+ attr_accessor :month
1072
+
1073
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
1074
+ # year.
1075
+ # Corresponds to the JSON property `year`
1076
+ # @return [Fixnum]
1077
+ attr_accessor :year
1078
+
1079
+ def initialize(**args)
1080
+ update!(**args)
1081
+ end
1082
+
1083
+ # Update properties of this object
1084
+ def update!(**args)
1085
+ @day = args[:day] if args.key?(:day)
1086
+ @month = args[:month] if args.key?(:month)
1087
+ @year = args[:year] if args.key?(:year)
1088
+ end
1089
+ end
1090
+
1091
+ # Daypart targeting message that specifies if the ad can be shown only during
1092
+ # certain parts of a day/week.
1093
+ class DayPart
1094
+ include Google::Apis::Core::Hashable
1095
+
1096
+ # The day of the week to target. If unspecified, applicable to all days.
1097
+ # Corresponds to the JSON property `dayOfWeek`
1098
+ # @return [String]
1099
+ attr_accessor :day_of_week
1100
+
1101
+ # Represents a time of day. The date and time zone are either not significant or
1102
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
1103
+ # types are google.type.Date and `google.protobuf.Timestamp`.
1104
+ # Corresponds to the JSON property `endTime`
1105
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::TimeOfDay]
1106
+ attr_accessor :end_time
1107
+
1108
+ # Represents a time of day. The date and time zone are either not significant or
1109
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
1110
+ # types are google.type.Date and `google.protobuf.Timestamp`.
1111
+ # Corresponds to the JSON property `startTime`
1112
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::TimeOfDay]
1113
+ attr_accessor :start_time
1114
+
1115
+ def initialize(**args)
1116
+ update!(**args)
1117
+ end
1118
+
1119
+ # Update properties of this object
1120
+ def update!(**args)
1121
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
1122
+ @end_time = args[:end_time] if args.key?(:end_time)
1123
+ @start_time = args[:start_time] if args.key?(:start_time)
1124
+ end
1125
+ end
1126
+
1127
+ # Specifies the day part targeting criteria.
1128
+ class DayPartTargeting
1129
+ include Google::Apis::Core::Hashable
1130
+
1131
+ # A list of day part targeting criterion.
1132
+ # Corresponds to the JSON property `dayParts`
1133
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::DayPart>]
1134
+ attr_accessor :day_parts
1135
+
1136
+ # The timezone to use for interpreting the day part targeting.
1137
+ # Corresponds to the JSON property `timeZoneType`
1138
+ # @return [String]
1139
+ attr_accessor :time_zone_type
1140
+
1141
+ def initialize(**args)
1142
+ update!(**args)
1143
+ end
1144
+
1145
+ # Update properties of this object
1146
+ def update!(**args)
1147
+ @day_parts = args[:day_parts] if args.key?(:day_parts)
1148
+ @time_zone_type = args[:time_zone_type] if args.key?(:time_zone_type)
1149
+ end
1150
+ end
1151
+
1152
+ # A deal represents a segment of inventory for displaying ads on. A proposal can
1153
+ # contain multiple deals. A deal contains the terms and targeting information
1154
+ # that is used for serving.
1155
+ class Deal
1156
+ include Google::Apis::Core::Hashable
1157
+
1158
+ # Proposed flight end time of the deal. This will generally be stored in a
1159
+ # granularity of a second. A value is not required for Private Auction deals or
1160
+ # Preferred Deals.
1161
+ # Corresponds to the JSON property `availableEndTime`
1162
+ # @return [String]
1163
+ attr_accessor :available_end_time
1164
+
1165
+ # Optional. Proposed flight start time of the deal. This will generally be
1166
+ # stored in the granularity of one second since deal serving starts at seconds
1167
+ # boundary. Any time specified with more granularity (e.g., in milliseconds)
1168
+ # will be truncated towards the start of time in seconds.
1169
+ # Corresponds to the JSON property `availableStartTime`
1170
+ # @return [String]
1171
+ attr_accessor :available_start_time
1172
+
1173
+ # Buyers are allowed to store certain types of private data in a proposal/deal.
1174
+ # Corresponds to the JSON property `buyerPrivateData`
1175
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::PrivateData]
1176
+ attr_accessor :buyer_private_data
1177
+
1178
+ # The product ID from which this deal was created. Note: This field may be set
1179
+ # only when creating the resource. Modifying this field while updating the
1180
+ # resource will result in an error.
1181
+ # Corresponds to the JSON property `createProductId`
1182
+ # @return [String]
1183
+ attr_accessor :create_product_id
1184
+
1185
+ # Optional. Revision number of the product that the deal was created from. If
1186
+ # present on create, and the server `product_revision` has advanced since the
1187
+ # passed-in `create_product_revision`, an `ABORTED` error will be returned. Note:
1188
+ # This field may be set only when creating the resource. Modifying this field
1189
+ # while updating the resource will result in an error.
1190
+ # Corresponds to the JSON property `createProductRevision`
1191
+ # @return [Fixnum]
1192
+ attr_accessor :create_product_revision
1193
+
1194
+ # Output only. The time of the deal creation.
1195
+ # Corresponds to the JSON property `createTime`
1196
+ # @return [String]
1197
+ attr_accessor :create_time
1198
+
1199
+ # Output only. Specifies the creative pre-approval policy.
1200
+ # Corresponds to the JSON property `creativePreApprovalPolicy`
1201
+ # @return [String]
1202
+ attr_accessor :creative_pre_approval_policy
1203
+
1204
+ # Represents creative restrictions associated to Programmatic Guaranteed/
1205
+ # Preferred Deal in Ad Manager. This doesn't apply to Private Auction and AdX
1206
+ # Preferred Deals.
1207
+ # Corresponds to the JSON property `creativeRestrictions`
1208
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CreativeRestrictions]
1209
+ attr_accessor :creative_restrictions
1210
+
1211
+ # Output only. Specifies whether the creative is safeFrame compatible.
1212
+ # Corresponds to the JSON property `creativeSafeFrameCompatibility`
1213
+ # @return [String]
1214
+ attr_accessor :creative_safe_frame_compatibility
1215
+
1216
+ # Output only. A unique deal ID for the deal (server-assigned).
1217
+ # Corresponds to the JSON property `dealId`
1218
+ # @return [String]
1219
+ attr_accessor :deal_id
1220
+
1221
+ # Message captures metadata about the serving status of a deal.
1222
+ # Corresponds to the JSON property `dealServingMetadata`
1223
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::DealServingMetadata]
1224
+ attr_accessor :deal_serving_metadata
1225
+
1226
+ # The deal terms specify the details of a Product/deal. They specify things like
1227
+ # price per buyer, the type of pricing model (e.g., fixed price, auction) and
1228
+ # expected impressions from the publisher.
1229
+ # Corresponds to the JSON property `dealTerms`
1230
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::DealTerms]
1231
+ attr_accessor :deal_terms
1232
+
1233
+ # Message contains details about how the deals will be paced.
1234
+ # Corresponds to the JSON property `deliveryControl`
1235
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::DeliveryControl]
1236
+ attr_accessor :delivery_control
1237
+
1238
+ # Description for the deal terms.
1239
+ # Corresponds to the JSON property `description`
1240
+ # @return [String]
1241
+ attr_accessor :description
1242
+
1243
+ # The name of the deal.
1244
+ # Corresponds to the JSON property `displayName`
1245
+ # @return [String]
1246
+ attr_accessor :display_name
1247
+
1248
+ # Output only. The external deal ID assigned to this deal once the deal is
1249
+ # finalized. This is the deal ID that shows up in serving/reporting etc.
1250
+ # Corresponds to the JSON property `externalDealId`
1251
+ # @return [String]
1252
+ attr_accessor :external_deal_id
1253
+
1254
+ # Output only. True, if the buyside inventory setup is complete for this deal.
1255
+ # Corresponds to the JSON property `isSetupComplete`
1256
+ # @return [Boolean]
1257
+ attr_accessor :is_setup_complete
1258
+ alias_method :is_setup_complete?, :is_setup_complete
1259
+
1260
+ # Output only. Specifies the creative source for programmatic deals. PUBLISHER
1261
+ # means creative is provided by seller and ADVERTISER means creative is provided
1262
+ # by buyer.
1263
+ # Corresponds to the JSON property `programmaticCreativeSource`
1264
+ # @return [String]
1265
+ attr_accessor :programmatic_creative_source
1266
+
1267
+ # Output only. ID of the proposal that this deal is part of.
1268
+ # Corresponds to the JSON property `proposalId`
1269
+ # @return [String]
1270
+ attr_accessor :proposal_id
1271
+
1272
+ # Output only. Seller contact information for the deal.
1273
+ # Corresponds to the JSON property `sellerContacts`
1274
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ContactInformation>]
1275
+ attr_accessor :seller_contacts
1276
+
1277
+ # The syndication product associated with the deal. Note: This field may be set
1278
+ # only when creating the resource. Modifying this field while updating the
1279
+ # resource will result in an error.
1280
+ # Corresponds to the JSON property `syndicationProduct`
1281
+ # @return [String]
1282
+ attr_accessor :syndication_product
1283
+
1284
+ # Targeting represents different criteria that can be used by advertisers to
1285
+ # target ad inventory. For example, they can choose to target ad requests only
1286
+ # if the user is in the US. Multiple types of targeting are always applied as a
1287
+ # logical AND, unless noted otherwise.
1288
+ # Corresponds to the JSON property `targeting`
1289
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MarketplaceTargeting]
1290
+ attr_accessor :targeting
1291
+
1292
+ # The shared targeting visible to buyers and sellers. Each shared targeting
1293
+ # entity is AND'd together.
1294
+ # Corresponds to the JSON property `targetingCriterion`
1295
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::TargetingCriteria>]
1296
+ attr_accessor :targeting_criterion
1297
+
1298
+ # Output only. The time when the deal was last updated.
1299
+ # Corresponds to the JSON property `updateTime`
1300
+ # @return [String]
1301
+ attr_accessor :update_time
1302
+
1303
+ # The web property code for the seller copied over from the product.
1304
+ # Corresponds to the JSON property `webPropertyCode`
1305
+ # @return [String]
1306
+ attr_accessor :web_property_code
1307
+
1308
+ def initialize(**args)
1309
+ update!(**args)
1310
+ end
1311
+
1312
+ # Update properties of this object
1313
+ def update!(**args)
1314
+ @available_end_time = args[:available_end_time] if args.key?(:available_end_time)
1315
+ @available_start_time = args[:available_start_time] if args.key?(:available_start_time)
1316
+ @buyer_private_data = args[:buyer_private_data] if args.key?(:buyer_private_data)
1317
+ @create_product_id = args[:create_product_id] if args.key?(:create_product_id)
1318
+ @create_product_revision = args[:create_product_revision] if args.key?(:create_product_revision)
1319
+ @create_time = args[:create_time] if args.key?(:create_time)
1320
+ @creative_pre_approval_policy = args[:creative_pre_approval_policy] if args.key?(:creative_pre_approval_policy)
1321
+ @creative_restrictions = args[:creative_restrictions] if args.key?(:creative_restrictions)
1322
+ @creative_safe_frame_compatibility = args[:creative_safe_frame_compatibility] if args.key?(:creative_safe_frame_compatibility)
1323
+ @deal_id = args[:deal_id] if args.key?(:deal_id)
1324
+ @deal_serving_metadata = args[:deal_serving_metadata] if args.key?(:deal_serving_metadata)
1325
+ @deal_terms = args[:deal_terms] if args.key?(:deal_terms)
1326
+ @delivery_control = args[:delivery_control] if args.key?(:delivery_control)
1327
+ @description = args[:description] if args.key?(:description)
1328
+ @display_name = args[:display_name] if args.key?(:display_name)
1329
+ @external_deal_id = args[:external_deal_id] if args.key?(:external_deal_id)
1330
+ @is_setup_complete = args[:is_setup_complete] if args.key?(:is_setup_complete)
1331
+ @programmatic_creative_source = args[:programmatic_creative_source] if args.key?(:programmatic_creative_source)
1332
+ @proposal_id = args[:proposal_id] if args.key?(:proposal_id)
1333
+ @seller_contacts = args[:seller_contacts] if args.key?(:seller_contacts)
1334
+ @syndication_product = args[:syndication_product] if args.key?(:syndication_product)
1335
+ @targeting = args[:targeting] if args.key?(:targeting)
1336
+ @targeting_criterion = args[:targeting_criterion] if args.key?(:targeting_criterion)
1337
+ @update_time = args[:update_time] if args.key?(:update_time)
1338
+ @web_property_code = args[:web_property_code] if args.key?(:web_property_code)
1339
+ end
1340
+ end
1341
+
1342
+ # Tracks which parties (if any) have paused a deal. The deal is considered
1343
+ # paused if either hasBuyerPaused or hasSellPaused is true.
1344
+ class DealPauseStatus
1345
+ include Google::Apis::Core::Hashable
1346
+
1347
+ # The buyer's reason for pausing, if the buyer paused the deal.
1348
+ # Corresponds to the JSON property `buyerPauseReason`
1349
+ # @return [String]
1350
+ attr_accessor :buyer_pause_reason
1351
+
1352
+ # The role of the person who first paused this deal.
1353
+ # Corresponds to the JSON property `firstPausedBy`
1354
+ # @return [String]
1355
+ attr_accessor :first_paused_by
1356
+
1357
+ # True, if the buyer has paused the deal unilaterally.
1358
+ # Corresponds to the JSON property `hasBuyerPaused`
1359
+ # @return [Boolean]
1360
+ attr_accessor :has_buyer_paused
1361
+ alias_method :has_buyer_paused?, :has_buyer_paused
1362
+
1363
+ # True, if the seller has paused the deal unilaterally.
1364
+ # Corresponds to the JSON property `hasSellerPaused`
1365
+ # @return [Boolean]
1366
+ attr_accessor :has_seller_paused
1367
+ alias_method :has_seller_paused?, :has_seller_paused
1368
+
1369
+ # The seller's reason for pausing, if the seller paused the deal.
1370
+ # Corresponds to the JSON property `sellerPauseReason`
1371
+ # @return [String]
1372
+ attr_accessor :seller_pause_reason
1373
+
1374
+ def initialize(**args)
1375
+ update!(**args)
1376
+ end
1377
+
1378
+ # Update properties of this object
1379
+ def update!(**args)
1380
+ @buyer_pause_reason = args[:buyer_pause_reason] if args.key?(:buyer_pause_reason)
1381
+ @first_paused_by = args[:first_paused_by] if args.key?(:first_paused_by)
1382
+ @has_buyer_paused = args[:has_buyer_paused] if args.key?(:has_buyer_paused)
1383
+ @has_seller_paused = args[:has_seller_paused] if args.key?(:has_seller_paused)
1384
+ @seller_pause_reason = args[:seller_pause_reason] if args.key?(:seller_pause_reason)
1385
+ end
1386
+ end
1387
+
1388
+ # Message captures metadata about the serving status of a deal.
1389
+ class DealServingMetadata
1390
+ include Google::Apis::Core::Hashable
1391
+
1392
+ # Tracks which parties (if any) have paused a deal. The deal is considered
1393
+ # paused if either hasBuyerPaused or hasSellPaused is true.
1394
+ # Corresponds to the JSON property `dealPauseStatus`
1395
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::DealPauseStatus]
1396
+ attr_accessor :deal_pause_status
1397
+
1398
+ def initialize(**args)
1399
+ update!(**args)
1400
+ end
1401
+
1402
+ # Update properties of this object
1403
+ def update!(**args)
1404
+ @deal_pause_status = args[:deal_pause_status] if args.key?(:deal_pause_status)
1405
+ end
1406
+ end
1407
+
1408
+ # The deal terms specify the details of a Product/deal. They specify things like
1409
+ # price per buyer, the type of pricing model (e.g., fixed price, auction) and
1410
+ # expected impressions from the publisher.
1411
+ class DealTerms
1412
+ include Google::Apis::Core::Hashable
1413
+
1414
+ # Visibility of the URL in bid requests. (default: BRANDED)
1415
+ # Corresponds to the JSON property `brandingType`
1416
+ # @return [String]
1417
+ attr_accessor :branding_type
1418
+
1419
+ # Publisher provided description for the terms.
1420
+ # Corresponds to the JSON property `description`
1421
+ # @return [String]
1422
+ attr_accessor :description
1423
+
1424
+ # Represents a price and a pricing type for a product / deal.
1425
+ # Corresponds to the JSON property `estimatedGrossSpend`
1426
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Price]
1427
+ attr_accessor :estimated_gross_spend
1428
+
1429
+ # Non-binding estimate of the impressions served per day. Can be set by buyer or
1430
+ # seller.
1431
+ # Corresponds to the JSON property `estimatedImpressionsPerDay`
1432
+ # @return [Fixnum]
1433
+ attr_accessor :estimated_impressions_per_day
1434
+
1435
+ # Terms for Programmatic Guaranteed Deals.
1436
+ # Corresponds to the JSON property `guaranteedFixedPriceTerms`
1437
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::GuaranteedFixedPriceTerms]
1438
+ attr_accessor :guaranteed_fixed_price_terms
1439
+
1440
+ # Terms for Private Auctions. Note that Private Auctions can be created only by
1441
+ # the seller, but they can be returned in a get or list request.
1442
+ # Corresponds to the JSON property `nonGuaranteedAuctionTerms`
1443
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::NonGuaranteedAuctionTerms]
1444
+ attr_accessor :non_guaranteed_auction_terms
1445
+
1446
+ # Terms for Preferred Deals. Note that Preferred Deals cannot be created via the
1447
+ # API at this time, but can be returned in a get or list request.
1448
+ # Corresponds to the JSON property `nonGuaranteedFixedPriceTerms`
1449
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::NonGuaranteedFixedPriceTerms]
1450
+ attr_accessor :non_guaranteed_fixed_price_terms
1451
+
1452
+ # The time zone name. For deals with Cost Per Day billing, defines the time zone
1453
+ # used to mark the boundaries of a day. It should be an IANA TZ name, such as "
1454
+ # America/Los_Angeles". For more information, see https://en.wikipedia.org/wiki/
1455
+ # List_of_tz_database_time_zones.
1456
+ # Corresponds to the JSON property `sellerTimeZone`
1457
+ # @return [String]
1458
+ attr_accessor :seller_time_zone
1459
+
1460
+ def initialize(**args)
1461
+ update!(**args)
1462
+ end
1463
+
1464
+ # Update properties of this object
1465
+ def update!(**args)
1466
+ @branding_type = args[:branding_type] if args.key?(:branding_type)
1467
+ @description = args[:description] if args.key?(:description)
1468
+ @estimated_gross_spend = args[:estimated_gross_spend] if args.key?(:estimated_gross_spend)
1469
+ @estimated_impressions_per_day = args[:estimated_impressions_per_day] if args.key?(:estimated_impressions_per_day)
1470
+ @guaranteed_fixed_price_terms = args[:guaranteed_fixed_price_terms] if args.key?(:guaranteed_fixed_price_terms)
1471
+ @non_guaranteed_auction_terms = args[:non_guaranteed_auction_terms] if args.key?(:non_guaranteed_auction_terms)
1472
+ @non_guaranteed_fixed_price_terms = args[:non_guaranteed_fixed_price_terms] if args.key?(:non_guaranteed_fixed_price_terms)
1473
+ @seller_time_zone = args[:seller_time_zone] if args.key?(:seller_time_zone)
1474
+ end
1475
+ end
1476
+
1477
+ # Message contains details about how the deals will be paced.
1478
+ class DeliveryControl
1479
+ include Google::Apis::Core::Hashable
1480
+
1481
+ # Output only. Specified the creative blocking levels to be applied.
1482
+ # Corresponds to the JSON property `creativeBlockingLevel`
1483
+ # @return [String]
1484
+ attr_accessor :creative_blocking_level
1485
+
1486
+ # Output only. Specifies how the impression delivery will be paced.
1487
+ # Corresponds to the JSON property `deliveryRateType`
1488
+ # @return [String]
1489
+ attr_accessor :delivery_rate_type
1490
+
1491
+ # Output only. Specifies any frequency caps.
1492
+ # Corresponds to the JSON property `frequencyCaps`
1493
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::FrequencyCap>]
1494
+ attr_accessor :frequency_caps
1495
+
1496
+ def initialize(**args)
1497
+ update!(**args)
1498
+ end
1499
+
1500
+ # Update properties of this object
1501
+ def update!(**args)
1502
+ @creative_blocking_level = args[:creative_blocking_level] if args.key?(:creative_blocking_level)
1503
+ @delivery_rate_type = args[:delivery_rate_type] if args.key?(:delivery_rate_type)
1504
+ @frequency_caps = args[:frequency_caps] if args.key?(:frequency_caps)
1505
+ end
1506
+ end
1507
+
1508
+ # Output only. The reason and details for a disapproval.
1509
+ class Disapproval
1510
+ include Google::Apis::Core::Hashable
1511
+
1512
+ # Additional details about the reason for disapproval.
1513
+ # Corresponds to the JSON property `details`
1514
+ # @return [Array<String>]
1515
+ attr_accessor :details
1516
+
1517
+ # The categorized reason for disapproval.
1518
+ # Corresponds to the JSON property `reason`
1519
+ # @return [String]
1520
+ attr_accessor :reason
1521
+
1522
+ def initialize(**args)
1523
+ update!(**args)
1524
+ end
1525
+
1526
+ # Update properties of this object
1527
+ def update!(**args)
1528
+ @details = args[:details] if args.key?(:details)
1529
+ @reason = args[:reason] if args.key?(:reason)
1530
+ end
1531
+ end
1532
+
1533
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1534
+ # messages in your APIs. A typical example is to use it as the request or the
1535
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1536
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
1537
+ # `Empty` is empty JSON object ````.
1538
+ class Empty
1539
+ include Google::Apis::Core::Hashable
1540
+
1541
+ def initialize(**args)
1542
+ update!(**args)
1543
+ end
1544
+
1545
+ # Update properties of this object
1546
+ def update!(**args)
1547
+ end
1548
+ end
1549
+
1550
+ # A set of filters that is applied to a request for data. Within a filter set,
1551
+ # an AND operation is performed across the filters represented by each field. An
1552
+ # OR operation is performed across the filters represented by the multiple
1553
+ # values of a repeated field, e.g., "format=VIDEO AND deal_id=12 AND (
1554
+ # seller_network_id=34 OR seller_network_id=56)".
1555
+ class FilterSet
1556
+ include Google::Apis::Core::Hashable
1557
+
1558
+ # An absolute date range, specified by its start date and end date. The
1559
+ # supported range of dates begins 30 days before today and ends today. Validity
1560
+ # checked upon filter set creation. If a filter set with an absolute date range
1561
+ # is run at a later date more than 30 days after start_date, it will fail.
1562
+ # Corresponds to the JSON property `absoluteDateRange`
1563
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::AbsoluteDateRange]
1564
+ attr_accessor :absolute_date_range
1565
+
1566
+ # The set of dimensions along which to break down the response; may be empty. If
1567
+ # multiple dimensions are requested, the breakdown is along the Cartesian
1568
+ # product of the requested dimensions.
1569
+ # Corresponds to the JSON property `breakdownDimensions`
1570
+ # @return [Array<String>]
1571
+ attr_accessor :breakdown_dimensions
1572
+
1573
+ # The ID of the creative on which to filter; optional. This field may be set
1574
+ # only for a filter set that accesses account-level troubleshooting data, i.e.,
1575
+ # one whose name matches the `bidders/*/accounts/*/filterSets/*` pattern.
1576
+ # Corresponds to the JSON property `creativeId`
1577
+ # @return [String]
1578
+ attr_accessor :creative_id
1579
+
1580
+ # The ID of the deal on which to filter; optional. This field may be set only
1581
+ # for a filter set that accesses account-level troubleshooting data, i.e., one
1582
+ # whose name matches the `bidders/*/accounts/*/filterSets/*` pattern.
1583
+ # Corresponds to the JSON property `dealId`
1584
+ # @return [Fixnum]
1585
+ attr_accessor :deal_id
1586
+
1587
+ # The environment on which to filter; optional.
1588
+ # Corresponds to the JSON property `environment`
1589
+ # @return [String]
1590
+ attr_accessor :environment
1591
+
1592
+ # Creative format bidded on or allowed to bid on, can be empty.
1593
+ # Corresponds to the JSON property `format`
1594
+ # @return [String]
1595
+ attr_accessor :format
1596
+
1597
+ # Creative formats bidded on or allowed to bid on, can be empty. Although this
1598
+ # field is a list, it can only be populated with a single item. A HTTP 400 bad
1599
+ # request error will be returned in the response if you specify multiple items.
1600
+ # Corresponds to the JSON property `formats`
1601
+ # @return [Array<String>]
1602
+ attr_accessor :formats
1603
+
1604
+ # A user-defined name of the filter set. Filter set names must be unique
1605
+ # globally and match one of the patterns: - `bidders/*/filterSets/*` (for
1606
+ # accessing bidder-level troubleshooting data) - `bidders/*/accounts/*/
1607
+ # filterSets/*` (for accessing account-level troubleshooting data) This field is
1608
+ # required in create operations.
1609
+ # Corresponds to the JSON property `name`
1610
+ # @return [String]
1611
+ attr_accessor :name
1612
+
1613
+ # The list of platforms on which to filter; may be empty. The filters
1614
+ # represented by multiple platforms are ORed together (i.e., if non-empty,
1615
+ # results must match any one of the platforms).
1616
+ # Corresponds to the JSON property `platforms`
1617
+ # @return [Array<String>]
1618
+ attr_accessor :platforms
1619
+
1620
+ # For Open Bidding partners only. The list of publisher identifiers on which to
1621
+ # filter; may be empty. The filters represented by multiple publisher
1622
+ # identifiers are ORed together.
1623
+ # Corresponds to the JSON property `publisherIdentifiers`
1624
+ # @return [Array<String>]
1625
+ attr_accessor :publisher_identifiers
1626
+
1627
+ # An open-ended realtime time range specified by the start timestamp. For filter
1628
+ # sets that specify a realtime time range RTB metrics continue to be aggregated
1629
+ # throughout the lifetime of the filter set.
1630
+ # Corresponds to the JSON property `realtimeTimeRange`
1631
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RealtimeTimeRange]
1632
+ attr_accessor :realtime_time_range
1633
+
1634
+ # A relative date range, specified by an offset and a duration. The supported
1635
+ # range of dates begins 30 days before today and ends today, i.e., the limits
1636
+ # for these values are: offset_days >= 0 duration_days >= 1 offset_days +
1637
+ # duration_days <= 30
1638
+ # Corresponds to the JSON property `relativeDateRange`
1639
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RelativeDateRange]
1640
+ attr_accessor :relative_date_range
1641
+
1642
+ # For Authorized Buyers only. The list of IDs of the seller (publisher) networks
1643
+ # on which to filter; may be empty. The filters represented by multiple seller
1644
+ # network IDs are ORed together (i.e., if non-empty, results must match any one
1645
+ # of the publisher networks). See [seller-network-ids](https://developers.google.
1646
+ # com/authorized-buyers/rtb/downloads/seller-network-ids) file for the set of
1647
+ # existing seller network IDs.
1648
+ # Corresponds to the JSON property `sellerNetworkIds`
1649
+ # @return [Array<Fixnum>]
1650
+ attr_accessor :seller_network_ids
1651
+
1652
+ # The granularity of time intervals if a time series breakdown is desired;
1653
+ # optional.
1654
+ # Corresponds to the JSON property `timeSeriesGranularity`
1655
+ # @return [String]
1656
+ attr_accessor :time_series_granularity
1657
+
1658
+ def initialize(**args)
1659
+ update!(**args)
1660
+ end
1661
+
1662
+ # Update properties of this object
1663
+ def update!(**args)
1664
+ @absolute_date_range = args[:absolute_date_range] if args.key?(:absolute_date_range)
1665
+ @breakdown_dimensions = args[:breakdown_dimensions] if args.key?(:breakdown_dimensions)
1666
+ @creative_id = args[:creative_id] if args.key?(:creative_id)
1667
+ @deal_id = args[:deal_id] if args.key?(:deal_id)
1668
+ @environment = args[:environment] if args.key?(:environment)
1669
+ @format = args[:format] if args.key?(:format)
1670
+ @formats = args[:formats] if args.key?(:formats)
1671
+ @name = args[:name] if args.key?(:name)
1672
+ @platforms = args[:platforms] if args.key?(:platforms)
1673
+ @publisher_identifiers = args[:publisher_identifiers] if args.key?(:publisher_identifiers)
1674
+ @realtime_time_range = args[:realtime_time_range] if args.key?(:realtime_time_range)
1675
+ @relative_date_range = args[:relative_date_range] if args.key?(:relative_date_range)
1676
+ @seller_network_ids = args[:seller_network_ids] if args.key?(:seller_network_ids)
1677
+ @time_series_granularity = args[:time_series_granularity] if args.key?(:time_series_granularity)
1678
+ end
1679
+ end
1680
+
1681
+ # The number of filtered bids with the specified dimension values that have the
1682
+ # specified creative.
1683
+ class FilteredBidCreativeRow
1684
+ include Google::Apis::Core::Hashable
1685
+
1686
+ # A metric value, with an expected value and a variance; represents a count that
1687
+ # may be either exact or estimated (i.e. when sampled).
1688
+ # Corresponds to the JSON property `bidCount`
1689
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
1690
+ attr_accessor :bid_count
1691
+
1692
+ # The ID of the creative.
1693
+ # Corresponds to the JSON property `creativeId`
1694
+ # @return [String]
1695
+ attr_accessor :creative_id
1696
+
1697
+ # A response may include multiple rows, breaking down along various dimensions.
1698
+ # Encapsulates the values of all dimensions for a given row.
1699
+ # Corresponds to the JSON property `rowDimensions`
1700
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RowDimensions]
1701
+ attr_accessor :row_dimensions
1702
+
1703
+ def initialize(**args)
1704
+ update!(**args)
1705
+ end
1706
+
1707
+ # Update properties of this object
1708
+ def update!(**args)
1709
+ @bid_count = args[:bid_count] if args.key?(:bid_count)
1710
+ @creative_id = args[:creative_id] if args.key?(:creative_id)
1711
+ @row_dimensions = args[:row_dimensions] if args.key?(:row_dimensions)
1712
+ end
1713
+ end
1714
+
1715
+ # The number of filtered bids with the specified dimension values, among those
1716
+ # filtered due to the requested filtering reason (i.e. creative status), that
1717
+ # have the specified detail.
1718
+ class FilteredBidDetailRow
1719
+ include Google::Apis::Core::Hashable
1720
+
1721
+ # A metric value, with an expected value and a variance; represents a count that
1722
+ # may be either exact or estimated (i.e. when sampled).
1723
+ # Corresponds to the JSON property `bidCount`
1724
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
1725
+ attr_accessor :bid_count
1726
+
1727
+ # The ID of the detail, can be numeric or text. The associated value can be
1728
+ # looked up in the dictionary file corresponding to the DetailType in the
1729
+ # response message.
1730
+ # Corresponds to the JSON property `detail`
1731
+ # @return [String]
1732
+ attr_accessor :detail
1733
+
1734
+ # Note: this field will be deprecated, use "detail" field instead. When "detail"
1735
+ # field represents an integer value, this field is populated as the same integer
1736
+ # value "detail" field represents, otherwise this field will be 0. The ID of the
1737
+ # detail. The associated value can be looked up in the dictionary file
1738
+ # corresponding to the DetailType in the response message.
1739
+ # Corresponds to the JSON property `detailId`
1740
+ # @return [Fixnum]
1741
+ attr_accessor :detail_id
1742
+
1743
+ # A response may include multiple rows, breaking down along various dimensions.
1744
+ # Encapsulates the values of all dimensions for a given row.
1745
+ # Corresponds to the JSON property `rowDimensions`
1746
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RowDimensions]
1747
+ attr_accessor :row_dimensions
1748
+
1749
+ def initialize(**args)
1750
+ update!(**args)
1751
+ end
1752
+
1753
+ # Update properties of this object
1754
+ def update!(**args)
1755
+ @bid_count = args[:bid_count] if args.key?(:bid_count)
1756
+ @detail = args[:detail] if args.key?(:detail)
1757
+ @detail_id = args[:detail_id] if args.key?(:detail_id)
1758
+ @row_dimensions = args[:row_dimensions] if args.key?(:row_dimensions)
1759
+ end
1760
+ end
1761
+
1762
+ # Represents a list of targeted and excluded mobile application IDs that
1763
+ # publishers own. Mobile application IDs are from App Store and Google Play
1764
+ # Store. Android App ID, for example, com.google.android.apps.maps, can be found
1765
+ # in Google Play Store URL. iOS App ID (which is a number) can be found at the
1766
+ # end of iTunes store URL. First party mobile applications is either included or
1767
+ # excluded.
1768
+ class FirstPartyMobileApplicationTargeting
1769
+ include Google::Apis::Core::Hashable
1770
+
1771
+ # A list of application IDs to be excluded.
1772
+ # Corresponds to the JSON property `excludedAppIds`
1773
+ # @return [Array<String>]
1774
+ attr_accessor :excluded_app_ids
1775
+
1776
+ # A list of application IDs to be included.
1777
+ # Corresponds to the JSON property `targetedAppIds`
1778
+ # @return [Array<String>]
1779
+ attr_accessor :targeted_app_ids
1780
+
1781
+ def initialize(**args)
1782
+ update!(**args)
1783
+ end
1784
+
1785
+ # Update properties of this object
1786
+ def update!(**args)
1787
+ @excluded_app_ids = args[:excluded_app_ids] if args.key?(:excluded_app_ids)
1788
+ @targeted_app_ids = args[:targeted_app_ids] if args.key?(:targeted_app_ids)
1789
+ end
1790
+ end
1791
+
1792
+ # Frequency cap.
1793
+ class FrequencyCap
1794
+ include Google::Apis::Core::Hashable
1795
+
1796
+ # The maximum number of impressions that can be served to a user within the
1797
+ # specified time period.
1798
+ # Corresponds to the JSON property `maxImpressions`
1799
+ # @return [Fixnum]
1800
+ attr_accessor :max_impressions
1801
+
1802
+ # The amount of time, in the units specified by time_unit_type. Defines the
1803
+ # amount of time over which impressions per user are counted and capped.
1804
+ # Corresponds to the JSON property `numTimeUnits`
1805
+ # @return [Fixnum]
1806
+ attr_accessor :num_time_units
1807
+
1808
+ # The time unit. Along with num_time_units defines the amount of time over which
1809
+ # impressions per user are counted and capped.
1810
+ # Corresponds to the JSON property `timeUnitType`
1811
+ # @return [String]
1812
+ attr_accessor :time_unit_type
1813
+
1814
+ def initialize(**args)
1815
+ update!(**args)
1816
+ end
1817
+
1818
+ # Update properties of this object
1819
+ def update!(**args)
1820
+ @max_impressions = args[:max_impressions] if args.key?(:max_impressions)
1821
+ @num_time_units = args[:num_time_units] if args.key?(:num_time_units)
1822
+ @time_unit_type = args[:time_unit_type] if args.key?(:time_unit_type)
1823
+ end
1824
+ end
1825
+
1826
+ # Terms for Programmatic Guaranteed Deals.
1827
+ class GuaranteedFixedPriceTerms
1828
+ include Google::Apis::Core::Hashable
1829
+
1830
+ # Fixed price for the specified buyer.
1831
+ # Corresponds to the JSON property `fixedPrices`
1832
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::PricePerBuyer>]
1833
+ attr_accessor :fixed_prices
1834
+
1835
+ # Guaranteed impressions as a percentage. This is the percentage of guaranteed
1836
+ # looks that the buyer is guaranteeing to buy.
1837
+ # Corresponds to the JSON property `guaranteedImpressions`
1838
+ # @return [Fixnum]
1839
+ attr_accessor :guaranteed_impressions
1840
+
1841
+ # Count of guaranteed looks. Required for deal, optional for product.
1842
+ # Corresponds to the JSON property `guaranteedLooks`
1843
+ # @return [Fixnum]
1844
+ attr_accessor :guaranteed_looks
1845
+
1846
+ # Daily minimum looks for CPD deal types.
1847
+ # Corresponds to the JSON property `minimumDailyLooks`
1848
+ # @return [Fixnum]
1849
+ attr_accessor :minimum_daily_looks
1850
+
1851
+ def initialize(**args)
1852
+ update!(**args)
1853
+ end
1854
+
1855
+ # Update properties of this object
1856
+ def update!(**args)
1857
+ @fixed_prices = args[:fixed_prices] if args.key?(:fixed_prices)
1858
+ @guaranteed_impressions = args[:guaranteed_impressions] if args.key?(:guaranteed_impressions)
1859
+ @guaranteed_looks = args[:guaranteed_looks] if args.key?(:guaranteed_looks)
1860
+ @minimum_daily_looks = args[:minimum_daily_looks] if args.key?(:minimum_daily_looks)
1861
+ end
1862
+ end
1863
+
1864
+ # HTML content for a creative.
1865
+ class HtmlContent
1866
+ include Google::Apis::Core::Hashable
1867
+
1868
+ # The height of the HTML snippet in pixels.
1869
+ # Corresponds to the JSON property `height`
1870
+ # @return [Fixnum]
1871
+ attr_accessor :height
1872
+
1873
+ # The HTML snippet that displays the ad when inserted in the web page.
1874
+ # Corresponds to the JSON property `snippet`
1875
+ # @return [String]
1876
+ attr_accessor :snippet
1877
+
1878
+ # The width of the HTML snippet in pixels.
1879
+ # Corresponds to the JSON property `width`
1880
+ # @return [Fixnum]
1881
+ attr_accessor :width
1882
+
1883
+ def initialize(**args)
1884
+ update!(**args)
1885
+ end
1886
+
1887
+ # Update properties of this object
1888
+ def update!(**args)
1889
+ @height = args[:height] if args.key?(:height)
1890
+ @snippet = args[:snippet] if args.key?(:snippet)
1891
+ @width = args[:width] if args.key?(:width)
1892
+ end
1893
+ end
1894
+
1895
+ # An image resource. You may provide a larger image than was requested, so long
1896
+ # as the aspect ratio is preserved.
1897
+ class Image
1898
+ include Google::Apis::Core::Hashable
1899
+
1900
+ # Image height in pixels.
1901
+ # Corresponds to the JSON property `height`
1902
+ # @return [Fixnum]
1903
+ attr_accessor :height
1904
+
1905
+ # The URL of the image.
1906
+ # Corresponds to the JSON property `url`
1907
+ # @return [String]
1908
+ attr_accessor :url
1909
+
1910
+ # Image width in pixels.
1911
+ # Corresponds to the JSON property `width`
1912
+ # @return [Fixnum]
1913
+ attr_accessor :width
1914
+
1915
+ def initialize(**args)
1916
+ update!(**args)
1917
+ end
1918
+
1919
+ # Update properties of this object
1920
+ def update!(**args)
1921
+ @height = args[:height] if args.key?(:height)
1922
+ @url = args[:url] if args.key?(:url)
1923
+ @width = args[:width] if args.key?(:width)
1924
+ end
1925
+ end
1926
+
1927
+ # The set of metrics that are measured in numbers of impressions, representing
1928
+ # how many impressions with the specified dimension values were considered
1929
+ # eligible at each stage of the bidding funnel.
1930
+ class ImpressionMetricsRow
1931
+ include Google::Apis::Core::Hashable
1932
+
1933
+ # A metric value, with an expected value and a variance; represents a count that
1934
+ # may be either exact or estimated (i.e. when sampled).
1935
+ # Corresponds to the JSON property `availableImpressions`
1936
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
1937
+ attr_accessor :available_impressions
1938
+
1939
+ # A metric value, with an expected value and a variance; represents a count that
1940
+ # may be either exact or estimated (i.e. when sampled).
1941
+ # Corresponds to the JSON property `bidRequests`
1942
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
1943
+ attr_accessor :bid_requests
1944
+
1945
+ # A metric value, with an expected value and a variance; represents a count that
1946
+ # may be either exact or estimated (i.e. when sampled).
1947
+ # Corresponds to the JSON property `inventoryMatches`
1948
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
1949
+ attr_accessor :inventory_matches
1950
+
1951
+ # A metric value, with an expected value and a variance; represents a count that
1952
+ # may be either exact or estimated (i.e. when sampled).
1953
+ # Corresponds to the JSON property `responsesWithBids`
1954
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
1955
+ attr_accessor :responses_with_bids
1956
+
1957
+ # A response may include multiple rows, breaking down along various dimensions.
1958
+ # Encapsulates the values of all dimensions for a given row.
1959
+ # Corresponds to the JSON property `rowDimensions`
1960
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RowDimensions]
1961
+ attr_accessor :row_dimensions
1962
+
1963
+ # A metric value, with an expected value and a variance; represents a count that
1964
+ # may be either exact or estimated (i.e. when sampled).
1965
+ # Corresponds to the JSON property `successfulResponses`
1966
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
1967
+ attr_accessor :successful_responses
1968
+
1969
+ def initialize(**args)
1970
+ update!(**args)
1971
+ end
1972
+
1973
+ # Update properties of this object
1974
+ def update!(**args)
1975
+ @available_impressions = args[:available_impressions] if args.key?(:available_impressions)
1976
+ @bid_requests = args[:bid_requests] if args.key?(:bid_requests)
1977
+ @inventory_matches = args[:inventory_matches] if args.key?(:inventory_matches)
1978
+ @responses_with_bids = args[:responses_with_bids] if args.key?(:responses_with_bids)
1979
+ @row_dimensions = args[:row_dimensions] if args.key?(:row_dimensions)
1980
+ @successful_responses = args[:successful_responses] if args.key?(:successful_responses)
1981
+ end
1982
+ end
1983
+
1984
+ # Represents the size of an ad unit that can be targeted on an ad request. It
1985
+ # only applies to Private Auction, AdX Preferred Deals and Auction Packages.
1986
+ # This targeting does not apply to Programmatic Guaranteed and Preferred Deals
1987
+ # in Ad Manager.
1988
+ class InventorySizeTargeting
1989
+ include Google::Apis::Core::Hashable
1990
+
1991
+ # A list of inventory sizes to be excluded.
1992
+ # Corresponds to the JSON property `excludedInventorySizes`
1993
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::AdSize>]
1994
+ attr_accessor :excluded_inventory_sizes
1995
+
1996
+ # A list of inventory sizes to be included.
1997
+ # Corresponds to the JSON property `targetedInventorySizes`
1998
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::AdSize>]
1999
+ attr_accessor :targeted_inventory_sizes
2000
+
2001
+ def initialize(**args)
2002
+ update!(**args)
2003
+ end
2004
+
2005
+ # Update properties of this object
2006
+ def update!(**args)
2007
+ @excluded_inventory_sizes = args[:excluded_inventory_sizes] if args.key?(:excluded_inventory_sizes)
2008
+ @targeted_inventory_sizes = args[:targeted_inventory_sizes] if args.key?(:targeted_inventory_sizes)
2009
+ end
2010
+ end
2011
+
2012
+ # Response message for listing the metrics that are measured in number of bids.
2013
+ class ListBidMetricsResponse
2014
+ include Google::Apis::Core::Hashable
2015
+
2016
+ # List of rows, each containing a set of bid metrics.
2017
+ # Corresponds to the JSON property `bidMetricsRows`
2018
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::BidMetricsRow>]
2019
+ attr_accessor :bid_metrics_rows
2020
+
2021
+ # A token to retrieve the next page of results. Pass this value in the
2022
+ # ListBidMetricsRequest.pageToken field in the subsequent call to the bidMetrics.
2023
+ # list method to retrieve the next page of results.
2024
+ # Corresponds to the JSON property `nextPageToken`
2025
+ # @return [String]
2026
+ attr_accessor :next_page_token
2027
+
2028
+ def initialize(**args)
2029
+ update!(**args)
2030
+ end
2031
+
2032
+ # Update properties of this object
2033
+ def update!(**args)
2034
+ @bid_metrics_rows = args[:bid_metrics_rows] if args.key?(:bid_metrics_rows)
2035
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2036
+ end
2037
+ end
2038
+
2039
+ # Response message for listing all reasons that bid responses resulted in an
2040
+ # error.
2041
+ class ListBidResponseErrorsResponse
2042
+ include Google::Apis::Core::Hashable
2043
+
2044
+ # List of rows, with counts of bid responses aggregated by callout status.
2045
+ # Corresponds to the JSON property `calloutStatusRows`
2046
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::CalloutStatusRow>]
2047
+ attr_accessor :callout_status_rows
2048
+
2049
+ # A token to retrieve the next page of results. Pass this value in the
2050
+ # ListBidResponseErrorsRequest.pageToken field in the subsequent call to the
2051
+ # bidResponseErrors.list method to retrieve the next page of results.
2052
+ # Corresponds to the JSON property `nextPageToken`
2053
+ # @return [String]
2054
+ attr_accessor :next_page_token
2055
+
2056
+ def initialize(**args)
2057
+ update!(**args)
2058
+ end
2059
+
2060
+ # Update properties of this object
2061
+ def update!(**args)
2062
+ @callout_status_rows = args[:callout_status_rows] if args.key?(:callout_status_rows)
2063
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2064
+ end
2065
+ end
2066
+
2067
+ # Response message for listing all reasons that bid responses were considered to
2068
+ # have no applicable bids.
2069
+ class ListBidResponsesWithoutBidsResponse
2070
+ include Google::Apis::Core::Hashable
2071
+
2072
+ # List of rows, with counts of bid responses without bids aggregated by status.
2073
+ # Corresponds to the JSON property `bidResponseWithoutBidsStatusRows`
2074
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::BidResponseWithoutBidsStatusRow>]
2075
+ attr_accessor :bid_response_without_bids_status_rows
2076
+
2077
+ # A token to retrieve the next page of results. Pass this value in the
2078
+ # ListBidResponsesWithoutBidsRequest.pageToken field in the subsequent call to
2079
+ # the bidResponsesWithoutBids.list method to retrieve the next page of results.
2080
+ # Corresponds to the JSON property `nextPageToken`
2081
+ # @return [String]
2082
+ attr_accessor :next_page_token
2083
+
2084
+ def initialize(**args)
2085
+ update!(**args)
2086
+ end
2087
+
2088
+ # Update properties of this object
2089
+ def update!(**args)
2090
+ @bid_response_without_bids_status_rows = args[:bid_response_without_bids_status_rows] if args.key?(:bid_response_without_bids_status_rows)
2091
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2092
+ end
2093
+ end
2094
+
2095
+ #
2096
+ class ListClientUserInvitationsResponse
2097
+ include Google::Apis::Core::Hashable
2098
+
2099
+ # The returned list of client users.
2100
+ # Corresponds to the JSON property `invitations`
2101
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ClientUserInvitation>]
2102
+ attr_accessor :invitations
2103
+
2104
+ # A token to retrieve the next page of results. Pass this value in the
2105
+ # ListClientUserInvitationsRequest.pageToken field in the subsequent call to the
2106
+ # clients.invitations.list method to retrieve the next page of results.
2107
+ # Corresponds to the JSON property `nextPageToken`
2108
+ # @return [String]
2109
+ attr_accessor :next_page_token
2110
+
2111
+ def initialize(**args)
2112
+ update!(**args)
2113
+ end
2114
+
2115
+ # Update properties of this object
2116
+ def update!(**args)
2117
+ @invitations = args[:invitations] if args.key?(:invitations)
2118
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2119
+ end
2120
+ end
2121
+
2122
+ #
2123
+ class ListClientUsersResponse
2124
+ include Google::Apis::Core::Hashable
2125
+
2126
+ # A token to retrieve the next page of results. Pass this value in the
2127
+ # ListClientUsersRequest.pageToken field in the subsequent call to the clients.
2128
+ # invitations.list method to retrieve the next page of results.
2129
+ # Corresponds to the JSON property `nextPageToken`
2130
+ # @return [String]
2131
+ attr_accessor :next_page_token
2132
+
2133
+ # The returned list of client users.
2134
+ # Corresponds to the JSON property `users`
2135
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ClientUser>]
2136
+ attr_accessor :users
2137
+
2138
+ def initialize(**args)
2139
+ update!(**args)
2140
+ end
2141
+
2142
+ # Update properties of this object
2143
+ def update!(**args)
2144
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2145
+ @users = args[:users] if args.key?(:users)
2146
+ end
2147
+ end
2148
+
2149
+ #
2150
+ class ListClientsResponse
2151
+ include Google::Apis::Core::Hashable
2152
+
2153
+ # The returned list of clients.
2154
+ # Corresponds to the JSON property `clients`
2155
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Client>]
2156
+ attr_accessor :clients
2157
+
2158
+ # A token to retrieve the next page of results. Pass this value in the
2159
+ # ListClientsRequest.pageToken field in the subsequent call to the accounts.
2160
+ # clients.list method to retrieve the next page of results.
2161
+ # Corresponds to the JSON property `nextPageToken`
2162
+ # @return [String]
2163
+ attr_accessor :next_page_token
2164
+
2165
+ def initialize(**args)
2166
+ update!(**args)
2167
+ end
2168
+
2169
+ # Update properties of this object
2170
+ def update!(**args)
2171
+ @clients = args[:clients] if args.key?(:clients)
2172
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2173
+ end
2174
+ end
2175
+
2176
+ # Response message for listing all creatives associated with a given filtered
2177
+ # bid reason.
2178
+ class ListCreativeStatusBreakdownByCreativeResponse
2179
+ include Google::Apis::Core::Hashable
2180
+
2181
+ # List of rows, with counts of bids with a given creative status aggregated by
2182
+ # creative.
2183
+ # Corresponds to the JSON property `filteredBidCreativeRows`
2184
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::FilteredBidCreativeRow>]
2185
+ attr_accessor :filtered_bid_creative_rows
2186
+
2187
+ # A token to retrieve the next page of results. Pass this value in the
2188
+ # ListCreativeStatusBreakdownByCreativeRequest.pageToken field in the subsequent
2189
+ # call to the filteredBids.creatives.list method to retrieve the next page of
2190
+ # results.
2191
+ # Corresponds to the JSON property `nextPageToken`
2192
+ # @return [String]
2193
+ attr_accessor :next_page_token
2194
+
2195
+ def initialize(**args)
2196
+ update!(**args)
2197
+ end
2198
+
2199
+ # Update properties of this object
2200
+ def update!(**args)
2201
+ @filtered_bid_creative_rows = args[:filtered_bid_creative_rows] if args.key?(:filtered_bid_creative_rows)
2202
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2203
+ end
2204
+ end
2205
+
2206
+ # Response message for listing all details associated with a given filtered bid
2207
+ # reason.
2208
+ class ListCreativeStatusBreakdownByDetailResponse
2209
+ include Google::Apis::Core::Hashable
2210
+
2211
+ # The type of detail that the detail IDs represent.
2212
+ # Corresponds to the JSON property `detailType`
2213
+ # @return [String]
2214
+ attr_accessor :detail_type
2215
+
2216
+ # List of rows, with counts of bids with a given creative status aggregated by
2217
+ # detail.
2218
+ # Corresponds to the JSON property `filteredBidDetailRows`
2219
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::FilteredBidDetailRow>]
2220
+ attr_accessor :filtered_bid_detail_rows
2221
+
2222
+ # A token to retrieve the next page of results. Pass this value in the
2223
+ # ListCreativeStatusBreakdownByDetailRequest.pageToken field in the subsequent
2224
+ # call to the filteredBids.details.list method to retrieve the next page of
2225
+ # results.
2226
+ # Corresponds to the JSON property `nextPageToken`
2227
+ # @return [String]
2228
+ attr_accessor :next_page_token
2229
+
2230
+ def initialize(**args)
2231
+ update!(**args)
2232
+ end
2233
+
2234
+ # Update properties of this object
2235
+ def update!(**args)
2236
+ @detail_type = args[:detail_type] if args.key?(:detail_type)
2237
+ @filtered_bid_detail_rows = args[:filtered_bid_detail_rows] if args.key?(:filtered_bid_detail_rows)
2238
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2239
+ end
2240
+ end
2241
+
2242
+ # A response for listing creatives.
2243
+ class ListCreativesResponse
2244
+ include Google::Apis::Core::Hashable
2245
+
2246
+ # The list of creatives.
2247
+ # Corresponds to the JSON property `creatives`
2248
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Creative>]
2249
+ attr_accessor :creatives
2250
+
2251
+ # A token to retrieve the next page of results. Pass this value in the
2252
+ # ListCreativesRequest.page_token field in the subsequent call to `ListCreatives`
2253
+ # method to retrieve the next page of results.
2254
+ # Corresponds to the JSON property `nextPageToken`
2255
+ # @return [String]
2256
+ attr_accessor :next_page_token
2257
+
2258
+ def initialize(**args)
2259
+ update!(**args)
2260
+ end
2261
+
2262
+ # Update properties of this object
2263
+ def update!(**args)
2264
+ @creatives = args[:creatives] if args.key?(:creatives)
2265
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2266
+ end
2267
+ end
2268
+
2269
+ # A response for listing creative and deal associations
2270
+ class ListDealAssociationsResponse
2271
+ include Google::Apis::Core::Hashable
2272
+
2273
+ # The list of associations.
2274
+ # Corresponds to the JSON property `associations`
2275
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::CreativeDealAssociation>]
2276
+ attr_accessor :associations
2277
+
2278
+ # A token to retrieve the next page of results. Pass this value in the
2279
+ # ListDealAssociationsRequest.page_token field in the subsequent call to '
2280
+ # ListDealAssociation' method to retrieve the next page of results.
2281
+ # Corresponds to the JSON property `nextPageToken`
2282
+ # @return [String]
2283
+ attr_accessor :next_page_token
2284
+
2285
+ def initialize(**args)
2286
+ update!(**args)
2287
+ end
2288
+
2289
+ # Update properties of this object
2290
+ def update!(**args)
2291
+ @associations = args[:associations] if args.key?(:associations)
2292
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2293
+ end
2294
+ end
2295
+
2296
+ # Response message for listing filter sets.
2297
+ class ListFilterSetsResponse
2298
+ include Google::Apis::Core::Hashable
2299
+
2300
+ # The filter sets belonging to the buyer.
2301
+ # Corresponds to the JSON property `filterSets`
2302
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::FilterSet>]
2303
+ attr_accessor :filter_sets
2304
+
2305
+ # A token to retrieve the next page of results. Pass this value in the
2306
+ # ListFilterSetsRequest.pageToken field in the subsequent call to the accounts.
2307
+ # filterSets.list method to retrieve the next page of results.
2308
+ # Corresponds to the JSON property `nextPageToken`
2309
+ # @return [String]
2310
+ attr_accessor :next_page_token
2311
+
2312
+ def initialize(**args)
2313
+ update!(**args)
2314
+ end
2315
+
2316
+ # Update properties of this object
2317
+ def update!(**args)
2318
+ @filter_sets = args[:filter_sets] if args.key?(:filter_sets)
2319
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2320
+ end
2321
+ end
2322
+
2323
+ # Response message for listing all reasons that bid requests were filtered and
2324
+ # not sent to the buyer.
2325
+ class ListFilteredBidRequestsResponse
2326
+ include Google::Apis::Core::Hashable
2327
+
2328
+ # List of rows, with counts of filtered bid requests aggregated by callout
2329
+ # status.
2330
+ # Corresponds to the JSON property `calloutStatusRows`
2331
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::CalloutStatusRow>]
2332
+ attr_accessor :callout_status_rows
2333
+
2334
+ # A token to retrieve the next page of results. Pass this value in the
2335
+ # ListFilteredBidRequestsRequest.pageToken field in the subsequent call to the
2336
+ # filteredBidRequests.list method to retrieve the next page of results.
2337
+ # Corresponds to the JSON property `nextPageToken`
2338
+ # @return [String]
2339
+ attr_accessor :next_page_token
2340
+
2341
+ def initialize(**args)
2342
+ update!(**args)
2343
+ end
2344
+
2345
+ # Update properties of this object
2346
+ def update!(**args)
2347
+ @callout_status_rows = args[:callout_status_rows] if args.key?(:callout_status_rows)
2348
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2349
+ end
2350
+ end
2351
+
2352
+ # Response message for listing all reasons that bids were filtered from the
2353
+ # auction.
2354
+ class ListFilteredBidsResponse
2355
+ include Google::Apis::Core::Hashable
2356
+
2357
+ # List of rows, with counts of filtered bids aggregated by filtering reason (i.e.
2358
+ # creative status).
2359
+ # Corresponds to the JSON property `creativeStatusRows`
2360
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::CreativeStatusRow>]
2361
+ attr_accessor :creative_status_rows
2362
+
2363
+ # A token to retrieve the next page of results. Pass this value in the
2364
+ # ListFilteredBidsRequest.pageToken field in the subsequent call to the
2365
+ # filteredBids.list method to retrieve the next page of results.
2366
+ # Corresponds to the JSON property `nextPageToken`
2367
+ # @return [String]
2368
+ attr_accessor :next_page_token
2369
+
2370
+ def initialize(**args)
2371
+ update!(**args)
2372
+ end
2373
+
2374
+ # Update properties of this object
2375
+ def update!(**args)
2376
+ @creative_status_rows = args[:creative_status_rows] if args.key?(:creative_status_rows)
2377
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2378
+ end
2379
+ end
2380
+
2381
+ # Response message for listing the metrics that are measured in number of
2382
+ # impressions.
2383
+ class ListImpressionMetricsResponse
2384
+ include Google::Apis::Core::Hashable
2385
+
2386
+ # List of rows, each containing a set of impression metrics.
2387
+ # Corresponds to the JSON property `impressionMetricsRows`
2388
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ImpressionMetricsRow>]
2389
+ attr_accessor :impression_metrics_rows
2390
+
2391
+ # A token to retrieve the next page of results. Pass this value in the
2392
+ # ListImpressionMetricsRequest.pageToken field in the subsequent call to the
2393
+ # impressionMetrics.list method to retrieve the next page of results.
2394
+ # Corresponds to the JSON property `nextPageToken`
2395
+ # @return [String]
2396
+ attr_accessor :next_page_token
2397
+
2398
+ def initialize(**args)
2399
+ update!(**args)
2400
+ end
2401
+
2402
+ # Update properties of this object
2403
+ def update!(**args)
2404
+ @impression_metrics_rows = args[:impression_metrics_rows] if args.key?(:impression_metrics_rows)
2405
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2406
+ end
2407
+ end
2408
+
2409
+ # Response message for listing all reasons that bids lost in the auction.
2410
+ class ListLosingBidsResponse
2411
+ include Google::Apis::Core::Hashable
2412
+
2413
+ # List of rows, with counts of losing bids aggregated by loss reason (i.e.
2414
+ # creative status).
2415
+ # Corresponds to the JSON property `creativeStatusRows`
2416
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::CreativeStatusRow>]
2417
+ attr_accessor :creative_status_rows
2418
+
2419
+ # A token to retrieve the next page of results. Pass this value in the
2420
+ # ListLosingBidsRequest.pageToken field in the subsequent call to the losingBids.
2421
+ # list method to retrieve the next page of results.
2422
+ # Corresponds to the JSON property `nextPageToken`
2423
+ # @return [String]
2424
+ attr_accessor :next_page_token
2425
+
2426
+ def initialize(**args)
2427
+ update!(**args)
2428
+ end
2429
+
2430
+ # Update properties of this object
2431
+ def update!(**args)
2432
+ @creative_status_rows = args[:creative_status_rows] if args.key?(:creative_status_rows)
2433
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2434
+ end
2435
+ end
2436
+
2437
+ # Response message for listing all reasons for which a buyer was not billed for
2438
+ # a winning bid.
2439
+ class ListNonBillableWinningBidsResponse
2440
+ include Google::Apis::Core::Hashable
2441
+
2442
+ # A token to retrieve the next page of results. Pass this value in the
2443
+ # ListNonBillableWinningBidsRequest.pageToken field in the subsequent call to
2444
+ # the nonBillableWinningBids.list method to retrieve the next page of results.
2445
+ # Corresponds to the JSON property `nextPageToken`
2446
+ # @return [String]
2447
+ attr_accessor :next_page_token
2448
+
2449
+ # List of rows, with counts of bids not billed aggregated by reason.
2450
+ # Corresponds to the JSON property `nonBillableWinningBidStatusRows`
2451
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::NonBillableWinningBidStatusRow>]
2452
+ attr_accessor :non_billable_winning_bid_status_rows
2453
+
2454
+ def initialize(**args)
2455
+ update!(**args)
2456
+ end
2457
+
2458
+ # Update properties of this object
2459
+ def update!(**args)
2460
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2461
+ @non_billable_winning_bid_status_rows = args[:non_billable_winning_bid_status_rows] if args.key?(:non_billable_winning_bid_status_rows)
2462
+ end
2463
+ end
2464
+
2465
+ # Response message for listing products visible to the buyer.
2466
+ class ListProductsResponse
2467
+ include Google::Apis::Core::Hashable
2468
+
2469
+ # List pagination support.
2470
+ # Corresponds to the JSON property `nextPageToken`
2471
+ # @return [String]
2472
+ attr_accessor :next_page_token
2473
+
2474
+ # The list of matching products at their head revision number.
2475
+ # Corresponds to the JSON property `products`
2476
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Product>]
2477
+ attr_accessor :products
2478
+
2479
+ def initialize(**args)
2480
+ update!(**args)
2481
+ end
2482
+
2483
+ # Update properties of this object
2484
+ def update!(**args)
2485
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2486
+ @products = args[:products] if args.key?(:products)
2487
+ end
2488
+ end
2489
+
2490
+ # Response message for listing proposals.
2491
+ class ListProposalsResponse
2492
+ include Google::Apis::Core::Hashable
2493
+
2494
+ # Continuation token for fetching the next page of results.
2495
+ # Corresponds to the JSON property `nextPageToken`
2496
+ # @return [String]
2497
+ attr_accessor :next_page_token
2498
+
2499
+ # The list of proposals.
2500
+ # Corresponds to the JSON property `proposals`
2501
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Proposal>]
2502
+ attr_accessor :proposals
2503
+
2504
+ def initialize(**args)
2505
+ update!(**args)
2506
+ end
2507
+
2508
+ # Update properties of this object
2509
+ def update!(**args)
2510
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2511
+ @proposals = args[:proposals] if args.key?(:proposals)
2512
+ end
2513
+ end
2514
+
2515
+ # Response message for profiles visible to the buyer.
2516
+ class ListPublisherProfilesResponse
2517
+ include Google::Apis::Core::Hashable
2518
+
2519
+ # List pagination support
2520
+ # Corresponds to the JSON property `nextPageToken`
2521
+ # @return [String]
2522
+ attr_accessor :next_page_token
2523
+
2524
+ # The list of matching publisher profiles.
2525
+ # Corresponds to the JSON property `publisherProfiles`
2526
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::PublisherProfile>]
2527
+ attr_accessor :publisher_profiles
2528
+
2529
+ def initialize(**args)
2530
+ update!(**args)
2531
+ end
2532
+
2533
+ # Update properties of this object
2534
+ def update!(**args)
2535
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2536
+ @publisher_profiles = args[:publisher_profiles] if args.key?(:publisher_profiles)
2537
+ end
2538
+ end
2539
+
2540
+ # Output only. The Geo criteria the restriction applies to.
2541
+ class LocationContext
2542
+ include Google::Apis::Core::Hashable
2543
+
2544
+ # IDs representing the geo location for this context. Please refer to the [geo-
2545
+ # table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
2546
+ # file for different geo criteria IDs.
2547
+ # Corresponds to the JSON property `geoCriteriaIds`
2548
+ # @return [Array<Fixnum>]
2549
+ attr_accessor :geo_criteria_ids
2550
+
2551
+ def initialize(**args)
2552
+ update!(**args)
2553
+ end
2554
+
2555
+ # Update properties of this object
2556
+ def update!(**args)
2557
+ @geo_criteria_ids = args[:geo_criteria_ids] if args.key?(:geo_criteria_ids)
2558
+ end
2559
+ end
2560
+
2561
+ # Targeting represents different criteria that can be used by advertisers to
2562
+ # target ad inventory. For example, they can choose to target ad requests only
2563
+ # if the user is in the US. Multiple types of targeting are always applied as a
2564
+ # logical AND, unless noted otherwise.
2565
+ class MarketplaceTargeting
2566
+ include Google::Apis::Core::Hashable
2567
+
2568
+ # Generic targeting used for targeting dimensions that contains a list of
2569
+ # included and excluded numeric IDs.
2570
+ # Corresponds to the JSON property `geoTargeting`
2571
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CriteriaTargeting]
2572
+ attr_accessor :geo_targeting
2573
+
2574
+ # Represents the size of an ad unit that can be targeted on an ad request. It
2575
+ # only applies to Private Auction, AdX Preferred Deals and Auction Packages.
2576
+ # This targeting does not apply to Programmatic Guaranteed and Preferred Deals
2577
+ # in Ad Manager.
2578
+ # Corresponds to the JSON property `inventorySizeTargeting`
2579
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::InventorySizeTargeting]
2580
+ attr_accessor :inventory_size_targeting
2581
+
2582
+ # Represents targeting about where the ads can appear, e.g., certain sites or
2583
+ # mobile applications. Different placement targeting types will be logically OR'
2584
+ # ed.
2585
+ # Corresponds to the JSON property `placementTargeting`
2586
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::PlacementTargeting]
2587
+ attr_accessor :placement_targeting
2588
+
2589
+ # Represents targeting about various types of technology.
2590
+ # Corresponds to the JSON property `technologyTargeting`
2591
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::TechnologyTargeting]
2592
+ attr_accessor :technology_targeting
2593
+
2594
+ # Represents targeting information about video.
2595
+ # Corresponds to the JSON property `videoTargeting`
2596
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::VideoTargeting]
2597
+ attr_accessor :video_targeting
2598
+
2599
+ def initialize(**args)
2600
+ update!(**args)
2601
+ end
2602
+
2603
+ # Update properties of this object
2604
+ def update!(**args)
2605
+ @geo_targeting = args[:geo_targeting] if args.key?(:geo_targeting)
2606
+ @inventory_size_targeting = args[:inventory_size_targeting] if args.key?(:inventory_size_targeting)
2607
+ @placement_targeting = args[:placement_targeting] if args.key?(:placement_targeting)
2608
+ @technology_targeting = args[:technology_targeting] if args.key?(:technology_targeting)
2609
+ @video_targeting = args[:video_targeting] if args.key?(:video_targeting)
2610
+ end
2611
+ end
2612
+
2613
+ # A metric value, with an expected value and a variance; represents a count that
2614
+ # may be either exact or estimated (i.e. when sampled).
2615
+ class MetricValue
2616
+ include Google::Apis::Core::Hashable
2617
+
2618
+ # The expected value of the metric.
2619
+ # Corresponds to the JSON property `value`
2620
+ # @return [Fixnum]
2621
+ attr_accessor :value
2622
+
2623
+ # The variance (i.e. square of the standard deviation) of the metric value. If
2624
+ # value is exact, variance is 0. Can be used to calculate margin of error as a
2625
+ # percentage of value, using the following formula, where Z is the standard
2626
+ # constant that depends on the desired size of the confidence interval (e.g. for
2627
+ # 90% confidence interval, use Z = 1.645): marginOfError = 100 * Z * sqrt(
2628
+ # variance) / value
2629
+ # Corresponds to the JSON property `variance`
2630
+ # @return [Fixnum]
2631
+ attr_accessor :variance
2632
+
2633
+ def initialize(**args)
2634
+ update!(**args)
2635
+ end
2636
+
2637
+ # Update properties of this object
2638
+ def update!(**args)
2639
+ @value = args[:value] if args.key?(:value)
2640
+ @variance = args[:variance] if args.key?(:variance)
2641
+ end
2642
+ end
2643
+
2644
+ # Mobile application targeting settings.
2645
+ class MobileApplicationTargeting
2646
+ include Google::Apis::Core::Hashable
2647
+
2648
+ # Represents a list of targeted and excluded mobile application IDs that
2649
+ # publishers own. Mobile application IDs are from App Store and Google Play
2650
+ # Store. Android App ID, for example, com.google.android.apps.maps, can be found
2651
+ # in Google Play Store URL. iOS App ID (which is a number) can be found at the
2652
+ # end of iTunes store URL. First party mobile applications is either included or
2653
+ # excluded.
2654
+ # Corresponds to the JSON property `firstPartyTargeting`
2655
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::FirstPartyMobileApplicationTargeting]
2656
+ attr_accessor :first_party_targeting
2657
+
2658
+ def initialize(**args)
2659
+ update!(**args)
2660
+ end
2661
+
2662
+ # Update properties of this object
2663
+ def update!(**args)
2664
+ @first_party_targeting = args[:first_party_targeting] if args.key?(:first_party_targeting)
2665
+ end
2666
+ end
2667
+
2668
+ # Represents an amount of money with its currency type.
2669
+ class Money
2670
+ include Google::Apis::Core::Hashable
2671
+
2672
+ # The three-letter currency code defined in ISO 4217.
2673
+ # Corresponds to the JSON property `currencyCode`
2674
+ # @return [String]
2675
+ attr_accessor :currency_code
2676
+
2677
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
2678
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
2679
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
2680
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
2681
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
2682
+ # Corresponds to the JSON property `nanos`
2683
+ # @return [Fixnum]
2684
+ attr_accessor :nanos
2685
+
2686
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
2687
+ # 1 unit is one US dollar.
2688
+ # Corresponds to the JSON property `units`
2689
+ # @return [Fixnum]
2690
+ attr_accessor :units
2691
+
2692
+ def initialize(**args)
2693
+ update!(**args)
2694
+ end
2695
+
2696
+ # Update properties of this object
2697
+ def update!(**args)
2698
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
2699
+ @nanos = args[:nanos] if args.key?(:nanos)
2700
+ @units = args[:units] if args.key?(:units)
2701
+ end
2702
+ end
2703
+
2704
+ # Native content for a creative.
2705
+ class NativeContent
2706
+ include Google::Apis::Core::Hashable
2707
+
2708
+ # The name of the advertiser or sponsor, to be displayed in the ad creative.
2709
+ # Corresponds to the JSON property `advertiserName`
2710
+ # @return [String]
2711
+ attr_accessor :advertiser_name
2712
+
2713
+ # An image resource. You may provide a larger image than was requested, so long
2714
+ # as the aspect ratio is preserved.
2715
+ # Corresponds to the JSON property `appIcon`
2716
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Image]
2717
+ attr_accessor :app_icon
2718
+
2719
+ # A long description of the ad.
2720
+ # Corresponds to the JSON property `body`
2721
+ # @return [String]
2722
+ attr_accessor :body
2723
+
2724
+ # A label for the button that the user is supposed to click.
2725
+ # Corresponds to the JSON property `callToAction`
2726
+ # @return [String]
2727
+ attr_accessor :call_to_action
2728
+
2729
+ # The URL that the browser/SDK will load when the user clicks the ad.
2730
+ # Corresponds to the JSON property `clickLinkUrl`
2731
+ # @return [String]
2732
+ attr_accessor :click_link_url
2733
+
2734
+ # The URL to use for click tracking.
2735
+ # Corresponds to the JSON property `clickTrackingUrl`
2736
+ # @return [String]
2737
+ attr_accessor :click_tracking_url
2738
+
2739
+ # A short title for the ad.
2740
+ # Corresponds to the JSON property `headline`
2741
+ # @return [String]
2742
+ attr_accessor :headline
2743
+
2744
+ # An image resource. You may provide a larger image than was requested, so long
2745
+ # as the aspect ratio is preserved.
2746
+ # Corresponds to the JSON property `image`
2747
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Image]
2748
+ attr_accessor :image
2749
+
2750
+ # An image resource. You may provide a larger image than was requested, so long
2751
+ # as the aspect ratio is preserved.
2752
+ # Corresponds to the JSON property `logo`
2753
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Image]
2754
+ attr_accessor :logo
2755
+
2756
+ # The price of the promoted app including currency info.
2757
+ # Corresponds to the JSON property `priceDisplayText`
2758
+ # @return [String]
2759
+ attr_accessor :price_display_text
2760
+
2761
+ # The app rating in the app store. Must be in the range [0-5].
2762
+ # Corresponds to the JSON property `starRating`
2763
+ # @return [Float]
2764
+ attr_accessor :star_rating
2765
+
2766
+ # The URL to the app store to purchase/download the promoted app.
2767
+ # Corresponds to the JSON property `storeUrl`
2768
+ # @return [String]
2769
+ attr_accessor :store_url
2770
+
2771
+ # The URL to fetch a native video ad.
2772
+ # Corresponds to the JSON property `videoUrl`
2773
+ # @return [String]
2774
+ attr_accessor :video_url
2775
+
2776
+ def initialize(**args)
2777
+ update!(**args)
2778
+ end
2779
+
2780
+ # Update properties of this object
2781
+ def update!(**args)
2782
+ @advertiser_name = args[:advertiser_name] if args.key?(:advertiser_name)
2783
+ @app_icon = args[:app_icon] if args.key?(:app_icon)
2784
+ @body = args[:body] if args.key?(:body)
2785
+ @call_to_action = args[:call_to_action] if args.key?(:call_to_action)
2786
+ @click_link_url = args[:click_link_url] if args.key?(:click_link_url)
2787
+ @click_tracking_url = args[:click_tracking_url] if args.key?(:click_tracking_url)
2788
+ @headline = args[:headline] if args.key?(:headline)
2789
+ @image = args[:image] if args.key?(:image)
2790
+ @logo = args[:logo] if args.key?(:logo)
2791
+ @price_display_text = args[:price_display_text] if args.key?(:price_display_text)
2792
+ @star_rating = args[:star_rating] if args.key?(:star_rating)
2793
+ @store_url = args[:store_url] if args.key?(:store_url)
2794
+ @video_url = args[:video_url] if args.key?(:video_url)
2795
+ end
2796
+ end
2797
+
2798
+ # The number of winning bids with the specified dimension values for which the
2799
+ # buyer was not billed, as described by the specified status.
2800
+ class NonBillableWinningBidStatusRow
2801
+ include Google::Apis::Core::Hashable
2802
+
2803
+ # A metric value, with an expected value and a variance; represents a count that
2804
+ # may be either exact or estimated (i.e. when sampled).
2805
+ # Corresponds to the JSON property `bidCount`
2806
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MetricValue]
2807
+ attr_accessor :bid_count
2808
+
2809
+ # A response may include multiple rows, breaking down along various dimensions.
2810
+ # Encapsulates the values of all dimensions for a given row.
2811
+ # Corresponds to the JSON property `rowDimensions`
2812
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::RowDimensions]
2813
+ attr_accessor :row_dimensions
2814
+
2815
+ # The status specifying why the winning bids were not billed.
2816
+ # Corresponds to the JSON property `status`
2817
+ # @return [String]
2818
+ attr_accessor :status
2819
+
2820
+ def initialize(**args)
2821
+ update!(**args)
2822
+ end
2823
+
2824
+ # Update properties of this object
2825
+ def update!(**args)
2826
+ @bid_count = args[:bid_count] if args.key?(:bid_count)
2827
+ @row_dimensions = args[:row_dimensions] if args.key?(:row_dimensions)
2828
+ @status = args[:status] if args.key?(:status)
2829
+ end
2830
+ end
2831
+
2832
+ # Terms for Private Auctions. Note that Private Auctions can be created only by
2833
+ # the seller, but they can be returned in a get or list request.
2834
+ class NonGuaranteedAuctionTerms
2835
+ include Google::Apis::Core::Hashable
2836
+
2837
+ # True if open auction buyers are allowed to compete with invited buyers in this
2838
+ # private auction.
2839
+ # Corresponds to the JSON property `autoOptimizePrivateAuction`
2840
+ # @return [Boolean]
2841
+ attr_accessor :auto_optimize_private_auction
2842
+ alias_method :auto_optimize_private_auction?, :auto_optimize_private_auction
2843
+
2844
+ # Reserve price for the specified buyer.
2845
+ # Corresponds to the JSON property `reservePricesPerBuyer`
2846
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::PricePerBuyer>]
2847
+ attr_accessor :reserve_prices_per_buyer
2848
+
2849
+ def initialize(**args)
2850
+ update!(**args)
2851
+ end
2852
+
2853
+ # Update properties of this object
2854
+ def update!(**args)
2855
+ @auto_optimize_private_auction = args[:auto_optimize_private_auction] if args.key?(:auto_optimize_private_auction)
2856
+ @reserve_prices_per_buyer = args[:reserve_prices_per_buyer] if args.key?(:reserve_prices_per_buyer)
2857
+ end
2858
+ end
2859
+
2860
+ # Terms for Preferred Deals. Note that Preferred Deals cannot be created via the
2861
+ # API at this time, but can be returned in a get or list request.
2862
+ class NonGuaranteedFixedPriceTerms
2863
+ include Google::Apis::Core::Hashable
2864
+
2865
+ # Fixed price for the specified buyer.
2866
+ # Corresponds to the JSON property `fixedPrices`
2867
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::PricePerBuyer>]
2868
+ attr_accessor :fixed_prices
2869
+
2870
+ def initialize(**args)
2871
+ update!(**args)
2872
+ end
2873
+
2874
+ # Update properties of this object
2875
+ def update!(**args)
2876
+ @fixed_prices = args[:fixed_prices] if args.key?(:fixed_prices)
2877
+ end
2878
+ end
2879
+
2880
+ # A proposal may be associated to several notes.
2881
+ class Note
2882
+ include Google::Apis::Core::Hashable
2883
+
2884
+ # Output only. The timestamp for when this note was created.
2885
+ # Corresponds to the JSON property `createTime`
2886
+ # @return [String]
2887
+ attr_accessor :create_time
2888
+
2889
+ # Output only. The role of the person (buyer/seller) creating the note.
2890
+ # Corresponds to the JSON property `creatorRole`
2891
+ # @return [String]
2892
+ attr_accessor :creator_role
2893
+
2894
+ # The actual note to attach. (max-length: 1024 unicode code units) Note: This
2895
+ # field may be set only when creating the resource. Modifying this field while
2896
+ # updating the resource will result in an error.
2897
+ # Corresponds to the JSON property `note`
2898
+ # @return [String]
2899
+ attr_accessor :note
2900
+
2901
+ # Output only. The unique ID for the note.
2902
+ # Corresponds to the JSON property `noteId`
2903
+ # @return [String]
2904
+ attr_accessor :note_id
2905
+
2906
+ # Output only. The revision number of the proposal when the note is created.
2907
+ # Corresponds to the JSON property `proposalRevision`
2908
+ # @return [Fixnum]
2909
+ attr_accessor :proposal_revision
2910
+
2911
+ def initialize(**args)
2912
+ update!(**args)
2913
+ end
2914
+
2915
+ # Update properties of this object
2916
+ def update!(**args)
2917
+ @create_time = args[:create_time] if args.key?(:create_time)
2918
+ @creator_role = args[:creator_role] if args.key?(:creator_role)
2919
+ @note = args[:note] if args.key?(:note)
2920
+ @note_id = args[:note_id] if args.key?(:note_id)
2921
+ @proposal_revision = args[:proposal_revision] if args.key?(:proposal_revision)
2922
+ end
2923
+ end
2924
+
2925
+ # Represents targeting information for operating systems.
2926
+ class OperatingSystemTargeting
2927
+ include Google::Apis::Core::Hashable
2928
+
2929
+ # Generic targeting used for targeting dimensions that contains a list of
2930
+ # included and excluded numeric IDs.
2931
+ # Corresponds to the JSON property `operatingSystemCriteria`
2932
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CriteriaTargeting]
2933
+ attr_accessor :operating_system_criteria
2934
+
2935
+ # Generic targeting used for targeting dimensions that contains a list of
2936
+ # included and excluded numeric IDs.
2937
+ # Corresponds to the JSON property `operatingSystemVersionCriteria`
2938
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CriteriaTargeting]
2939
+ attr_accessor :operating_system_version_criteria
2940
+
2941
+ def initialize(**args)
2942
+ update!(**args)
2943
+ end
2944
+
2945
+ # Update properties of this object
2946
+ def update!(**args)
2947
+ @operating_system_criteria = args[:operating_system_criteria] if args.key?(:operating_system_criteria)
2948
+ @operating_system_version_criteria = args[:operating_system_version_criteria] if args.key?(:operating_system_version_criteria)
2949
+ end
2950
+ end
2951
+
2952
+ # Request message to pause serving for an already-finalized proposal.
2953
+ class PauseProposalRequest
2954
+ include Google::Apis::Core::Hashable
2955
+
2956
+ # The reason why the proposal is being paused. This human readable message will
2957
+ # be displayed in the seller's UI. (Max length: 1000 unicode code units.)
2958
+ # Corresponds to the JSON property `reason`
2959
+ # @return [String]
2960
+ attr_accessor :reason
2961
+
2962
+ def initialize(**args)
2963
+ update!(**args)
2964
+ end
2965
+
2966
+ # Update properties of this object
2967
+ def update!(**args)
2968
+ @reason = args[:reason] if args.key?(:reason)
2969
+ end
2970
+ end
2971
+
2972
+ # Represents targeting about where the ads can appear, e.g., certain sites or
2973
+ # mobile applications. Different placement targeting types will be logically OR'
2974
+ # ed.
2975
+ class PlacementTargeting
2976
+ include Google::Apis::Core::Hashable
2977
+
2978
+ # Mobile application targeting settings.
2979
+ # Corresponds to the JSON property `mobileApplicationTargeting`
2980
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::MobileApplicationTargeting]
2981
+ attr_accessor :mobile_application_targeting
2982
+
2983
+ # Represents a list of targeted and excluded URLs (e.g., google.com). For
2984
+ # Private Auction and AdX Preferred Deals, URLs are either included or excluded.
2985
+ # For Programmatic Guaranteed and Preferred Deals, this doesn't apply.
2986
+ # Corresponds to the JSON property `urlTargeting`
2987
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::UrlTargeting]
2988
+ attr_accessor :url_targeting
2989
+
2990
+ def initialize(**args)
2991
+ update!(**args)
2992
+ end
2993
+
2994
+ # Update properties of this object
2995
+ def update!(**args)
2996
+ @mobile_application_targeting = args[:mobile_application_targeting] if args.key?(:mobile_application_targeting)
2997
+ @url_targeting = args[:url_targeting] if args.key?(:url_targeting)
2998
+ end
2999
+ end
3000
+
3001
+ # Output only. The type of platform the restriction applies to.
3002
+ class PlatformContext
3003
+ include Google::Apis::Core::Hashable
3004
+
3005
+ # The platforms this restriction applies to.
3006
+ # Corresponds to the JSON property `platforms`
3007
+ # @return [Array<String>]
3008
+ attr_accessor :platforms
3009
+
3010
+ def initialize(**args)
3011
+ update!(**args)
3012
+ end
3013
+
3014
+ # Update properties of this object
3015
+ def update!(**args)
3016
+ @platforms = args[:platforms] if args.key?(:platforms)
3017
+ end
3018
+ end
3019
+
3020
+ # Represents a price and a pricing type for a product / deal.
3021
+ class Price
3022
+ include Google::Apis::Core::Hashable
3023
+
3024
+ # Represents an amount of money with its currency type.
3025
+ # Corresponds to the JSON property `amount`
3026
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Money]
3027
+ attr_accessor :amount
3028
+
3029
+ # The pricing type for the deal/product. (default: CPM)
3030
+ # Corresponds to the JSON property `pricingType`
3031
+ # @return [String]
3032
+ attr_accessor :pricing_type
3033
+
3034
+ def initialize(**args)
3035
+ update!(**args)
3036
+ end
3037
+
3038
+ # Update properties of this object
3039
+ def update!(**args)
3040
+ @amount = args[:amount] if args.key?(:amount)
3041
+ @pricing_type = args[:pricing_type] if args.key?(:pricing_type)
3042
+ end
3043
+ end
3044
+
3045
+ # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a
3046
+ # product can become 0 or 1 deals. To check if there is a PricePerBuyer for a
3047
+ # particular buyer or buyer/advertiser pair, we look for the most specific
3048
+ # matching rule - we first look for a rule matching the buyer and advertiser,
3049
+ # next a rule with the buyer but an empty advertiser list, and otherwise look
3050
+ # for a matching rule where no buyer is set.
3051
+ class PricePerBuyer
3052
+ include Google::Apis::Core::Hashable
3053
+
3054
+ # The list of advertisers for this price when associated with this buyer. If
3055
+ # empty, all advertisers with this buyer pay this price.
3056
+ # Corresponds to the JSON property `advertiserIds`
3057
+ # @return [Array<String>]
3058
+ attr_accessor :advertiser_ids
3059
+
3060
+ # Represents a buyer of inventory. Each buyer is identified by a unique
3061
+ # Authorized Buyers account ID.
3062
+ # Corresponds to the JSON property `buyer`
3063
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Buyer]
3064
+ attr_accessor :buyer
3065
+
3066
+ # Represents a price and a pricing type for a product / deal.
3067
+ # Corresponds to the JSON property `price`
3068
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Price]
3069
+ attr_accessor :price
3070
+
3071
+ def initialize(**args)
3072
+ update!(**args)
3073
+ end
3074
+
3075
+ # Update properties of this object
3076
+ def update!(**args)
3077
+ @advertiser_ids = args[:advertiser_ids] if args.key?(:advertiser_ids)
3078
+ @buyer = args[:buyer] if args.key?(:buyer)
3079
+ @price = args[:price] if args.key?(:price)
3080
+ end
3081
+ end
3082
+
3083
+ # Buyers are allowed to store certain types of private data in a proposal/deal.
3084
+ class PrivateData
3085
+ include Google::Apis::Core::Hashable
3086
+
3087
+ # A buyer or seller specified reference ID. This can be queried in the list
3088
+ # operations (max-length: 1024 unicode code units).
3089
+ # Corresponds to the JSON property `referenceId`
3090
+ # @return [String]
3091
+ attr_accessor :reference_id
3092
+
3093
+ def initialize(**args)
3094
+ update!(**args)
3095
+ end
3096
+
3097
+ # Update properties of this object
3098
+ def update!(**args)
3099
+ @reference_id = args[:reference_id] if args.key?(:reference_id)
3100
+ end
3101
+ end
3102
+
3103
+ # Note: this resource requires whitelisting for access. Please contact your
3104
+ # account manager for access to Marketplace resources. A product is a segment of
3105
+ # inventory that a seller wishes to sell. It is associated with certain terms
3106
+ # and targeting information which helps the buyer know more about the inventory.
3107
+ class Product
3108
+ include Google::Apis::Core::Hashable
3109
+
3110
+ # The proposed end time for the deal. The field will be truncated to the order
3111
+ # of seconds during serving.
3112
+ # Corresponds to the JSON property `availableEndTime`
3113
+ # @return [String]
3114
+ attr_accessor :available_end_time
3115
+
3116
+ # Inventory availability dates. The start time will be truncated to seconds
3117
+ # during serving. Thus, a field specified as 3:23:34.456 (HH:mm:ss.SSS) will be
3118
+ # truncated to 3:23:34 when serving.
3119
+ # Corresponds to the JSON property `availableStartTime`
3120
+ # @return [String]
3121
+ attr_accessor :available_start_time
3122
+
3123
+ # Creation time.
3124
+ # Corresponds to the JSON property `createTime`
3125
+ # @return [String]
3126
+ attr_accessor :create_time
3127
+
3128
+ # Optional contact information for the creator of this product.
3129
+ # Corresponds to the JSON property `creatorContacts`
3130
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ContactInformation>]
3131
+ attr_accessor :creator_contacts
3132
+
3133
+ # The display name for this product as set by the seller.
3134
+ # Corresponds to the JSON property `displayName`
3135
+ # @return [String]
3136
+ attr_accessor :display_name
3137
+
3138
+ # If the creator has already signed off on the product, then the buyer can
3139
+ # finalize the deal by accepting the product as is. When copying to a proposal,
3140
+ # if any of the terms are changed, then auto_finalize is automatically set to
3141
+ # false.
3142
+ # Corresponds to the JSON property `hasCreatorSignedOff`
3143
+ # @return [Boolean]
3144
+ attr_accessor :has_creator_signed_off
3145
+ alias_method :has_creator_signed_off?, :has_creator_signed_off
3146
+
3147
+ # The unique ID for the product.
3148
+ # Corresponds to the JSON property `productId`
3149
+ # @return [String]
3150
+ attr_accessor :product_id
3151
+
3152
+ # The revision number of the product (auto-assigned by Marketplace).
3153
+ # Corresponds to the JSON property `productRevision`
3154
+ # @return [Fixnum]
3155
+ attr_accessor :product_revision
3156
+
3157
+ # An ID which can be used by the Publisher Profile API to get more information
3158
+ # about the seller that created this product.
3159
+ # Corresponds to the JSON property `publisherProfileId`
3160
+ # @return [String]
3161
+ attr_accessor :publisher_profile_id
3162
+
3163
+ # Represents a seller of inventory. Each seller is identified by a unique Ad
3164
+ # Manager account ID.
3165
+ # Corresponds to the JSON property `seller`
3166
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Seller]
3167
+ attr_accessor :seller
3168
+
3169
+ # The syndication product associated with the deal.
3170
+ # Corresponds to the JSON property `syndicationProduct`
3171
+ # @return [String]
3172
+ attr_accessor :syndication_product
3173
+
3174
+ # Targeting that is shared between the buyer and the seller. Each targeting
3175
+ # criterion has a specified key and for each key there is a list of inclusion
3176
+ # value or exclusion values.
3177
+ # Corresponds to the JSON property `targetingCriterion`
3178
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::TargetingCriteria>]
3179
+ attr_accessor :targeting_criterion
3180
+
3181
+ # The deal terms specify the details of a Product/deal. They specify things like
3182
+ # price per buyer, the type of pricing model (e.g., fixed price, auction) and
3183
+ # expected impressions from the publisher.
3184
+ # Corresponds to the JSON property `terms`
3185
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::DealTerms]
3186
+ attr_accessor :terms
3187
+
3188
+ # Time of last update.
3189
+ # Corresponds to the JSON property `updateTime`
3190
+ # @return [String]
3191
+ attr_accessor :update_time
3192
+
3193
+ # The web-property code for the seller. This needs to be copied as is when
3194
+ # adding a new deal to a proposal.
3195
+ # Corresponds to the JSON property `webPropertyCode`
3196
+ # @return [String]
3197
+ attr_accessor :web_property_code
3198
+
3199
+ def initialize(**args)
3200
+ update!(**args)
3201
+ end
3202
+
3203
+ # Update properties of this object
3204
+ def update!(**args)
3205
+ @available_end_time = args[:available_end_time] if args.key?(:available_end_time)
3206
+ @available_start_time = args[:available_start_time] if args.key?(:available_start_time)
3207
+ @create_time = args[:create_time] if args.key?(:create_time)
3208
+ @creator_contacts = args[:creator_contacts] if args.key?(:creator_contacts)
3209
+ @display_name = args[:display_name] if args.key?(:display_name)
3210
+ @has_creator_signed_off = args[:has_creator_signed_off] if args.key?(:has_creator_signed_off)
3211
+ @product_id = args[:product_id] if args.key?(:product_id)
3212
+ @product_revision = args[:product_revision] if args.key?(:product_revision)
3213
+ @publisher_profile_id = args[:publisher_profile_id] if args.key?(:publisher_profile_id)
3214
+ @seller = args[:seller] if args.key?(:seller)
3215
+ @syndication_product = args[:syndication_product] if args.key?(:syndication_product)
3216
+ @targeting_criterion = args[:targeting_criterion] if args.key?(:targeting_criterion)
3217
+ @terms = args[:terms] if args.key?(:terms)
3218
+ @update_time = args[:update_time] if args.key?(:update_time)
3219
+ @web_property_code = args[:web_property_code] if args.key?(:web_property_code)
3220
+ end
3221
+ end
3222
+
3223
+ # Note: this resource requires whitelisting for access. Please contact your
3224
+ # account manager for access to Marketplace resources. Represents a proposal in
3225
+ # the Marketplace. A proposal is the unit of negotiation between a seller and a
3226
+ # buyer and contains deals which are served. Note: you can not update, create,
3227
+ # or otherwise modify Private Auction or Preferred Deals deals through the API.
3228
+ # Fields are updatable unless noted otherwise.
3229
+ class Proposal
3230
+ include Google::Apis::Core::Hashable
3231
+
3232
+ # Represents a buyer of inventory. Each buyer is identified by a unique
3233
+ # Authorized Buyers account ID.
3234
+ # Corresponds to the JSON property `billedBuyer`
3235
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Buyer]
3236
+ attr_accessor :billed_buyer
3237
+
3238
+ # Represents a buyer of inventory. Each buyer is identified by a unique
3239
+ # Authorized Buyers account ID.
3240
+ # Corresponds to the JSON property `buyer`
3241
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Buyer]
3242
+ attr_accessor :buyer
3243
+
3244
+ # Contact information for the buyer.
3245
+ # Corresponds to the JSON property `buyerContacts`
3246
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ContactInformation>]
3247
+ attr_accessor :buyer_contacts
3248
+
3249
+ # Buyers are allowed to store certain types of private data in a proposal/deal.
3250
+ # Corresponds to the JSON property `buyerPrivateData`
3251
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::PrivateData]
3252
+ attr_accessor :buyer_private_data
3253
+
3254
+ # The deals associated with this proposal. For Private Auction proposals (whose
3255
+ # deals have NonGuaranteedAuctionTerms), there will only be one deal.
3256
+ # Corresponds to the JSON property `deals`
3257
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Deal>]
3258
+ attr_accessor :deals
3259
+
3260
+ # The name for the proposal.
3261
+ # Corresponds to the JSON property `displayName`
3262
+ # @return [String]
3263
+ attr_accessor :display_name
3264
+
3265
+ # Output only. True if the proposal is being renegotiated.
3266
+ # Corresponds to the JSON property `isRenegotiating`
3267
+ # @return [Boolean]
3268
+ attr_accessor :is_renegotiating
3269
+ alias_method :is_renegotiating?, :is_renegotiating
3270
+
3271
+ # Output only. True, if the buyside inventory setup is complete for this
3272
+ # proposal.
3273
+ # Corresponds to the JSON property `isSetupComplete`
3274
+ # @return [Boolean]
3275
+ attr_accessor :is_setup_complete
3276
+ alias_method :is_setup_complete?, :is_setup_complete
3277
+
3278
+ # Output only. The role of the last user that either updated the proposal or
3279
+ # left a comment.
3280
+ # Corresponds to the JSON property `lastUpdaterOrCommentorRole`
3281
+ # @return [String]
3282
+ attr_accessor :last_updater_or_commentor_role
3283
+
3284
+ # Output only. The notes associated with this proposal.
3285
+ # Corresponds to the JSON property `notes`
3286
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Note>]
3287
+ attr_accessor :notes
3288
+
3289
+ # Output only. Indicates whether the buyer/seller created the proposal.
3290
+ # Corresponds to the JSON property `originatorRole`
3291
+ # @return [String]
3292
+ attr_accessor :originator_role
3293
+
3294
+ # Output only. Private auction ID if this proposal is a private auction proposal.
3295
+ # Corresponds to the JSON property `privateAuctionId`
3296
+ # @return [String]
3297
+ attr_accessor :private_auction_id
3298
+
3299
+ # Output only. The unique ID of the proposal.
3300
+ # Corresponds to the JSON property `proposalId`
3301
+ # @return [String]
3302
+ attr_accessor :proposal_id
3303
+
3304
+ # Output only. The revision number for the proposal. Each update to the proposal
3305
+ # or the deal causes the proposal revision number to auto-increment. The buyer
3306
+ # keeps track of the last revision number they know of and pass it in when
3307
+ # making an update. If the head revision number on the server has since
3308
+ # incremented, then an ABORTED error is returned during the update operation to
3309
+ # let the buyer know that a subsequent update was made.
3310
+ # Corresponds to the JSON property `proposalRevision`
3311
+ # @return [Fixnum]
3312
+ attr_accessor :proposal_revision
3313
+
3314
+ # Output only. The current state of the proposal.
3315
+ # Corresponds to the JSON property `proposalState`
3316
+ # @return [String]
3317
+ attr_accessor :proposal_state
3318
+
3319
+ # Represents a seller of inventory. Each seller is identified by a unique Ad
3320
+ # Manager account ID.
3321
+ # Corresponds to the JSON property `seller`
3322
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Seller]
3323
+ attr_accessor :seller
3324
+
3325
+ # Output only. Contact information for the seller.
3326
+ # Corresponds to the JSON property `sellerContacts`
3327
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ContactInformation>]
3328
+ attr_accessor :seller_contacts
3329
+
3330
+ # Output only. The terms and conditions set by the publisher for this proposal.
3331
+ # Corresponds to the JSON property `termsAndConditions`
3332
+ # @return [String]
3333
+ attr_accessor :terms_and_conditions
3334
+
3335
+ # Output only. The time when the proposal was last revised.
3336
+ # Corresponds to the JSON property `updateTime`
3337
+ # @return [String]
3338
+ attr_accessor :update_time
3339
+
3340
+ def initialize(**args)
3341
+ update!(**args)
3342
+ end
3343
+
3344
+ # Update properties of this object
3345
+ def update!(**args)
3346
+ @billed_buyer = args[:billed_buyer] if args.key?(:billed_buyer)
3347
+ @buyer = args[:buyer] if args.key?(:buyer)
3348
+ @buyer_contacts = args[:buyer_contacts] if args.key?(:buyer_contacts)
3349
+ @buyer_private_data = args[:buyer_private_data] if args.key?(:buyer_private_data)
3350
+ @deals = args[:deals] if args.key?(:deals)
3351
+ @display_name = args[:display_name] if args.key?(:display_name)
3352
+ @is_renegotiating = args[:is_renegotiating] if args.key?(:is_renegotiating)
3353
+ @is_setup_complete = args[:is_setup_complete] if args.key?(:is_setup_complete)
3354
+ @last_updater_or_commentor_role = args[:last_updater_or_commentor_role] if args.key?(:last_updater_or_commentor_role)
3355
+ @notes = args[:notes] if args.key?(:notes)
3356
+ @originator_role = args[:originator_role] if args.key?(:originator_role)
3357
+ @private_auction_id = args[:private_auction_id] if args.key?(:private_auction_id)
3358
+ @proposal_id = args[:proposal_id] if args.key?(:proposal_id)
3359
+ @proposal_revision = args[:proposal_revision] if args.key?(:proposal_revision)
3360
+ @proposal_state = args[:proposal_state] if args.key?(:proposal_state)
3361
+ @seller = args[:seller] if args.key?(:seller)
3362
+ @seller_contacts = args[:seller_contacts] if args.key?(:seller_contacts)
3363
+ @terms_and_conditions = args[:terms_and_conditions] if args.key?(:terms_and_conditions)
3364
+ @update_time = args[:update_time] if args.key?(:update_time)
3365
+ end
3366
+ end
3367
+
3368
+ # Note: this resource requires whitelisting for access. Please contact your
3369
+ # account manager for access to Marketplace resources. Represents a publisher
3370
+ # profile (https://support.google.com/admanager/answer/6035806) in Marketplace.
3371
+ # All fields are read only. All string fields are free-form text entered by the
3372
+ # publisher unless noted otherwise.
3373
+ class PublisherProfile
3374
+ include Google::Apis::Core::Hashable
3375
+
3376
+ # Description on the publisher's audience.
3377
+ # Corresponds to the JSON property `audienceDescription`
3378
+ # @return [String]
3379
+ attr_accessor :audience_description
3380
+
3381
+ # Statement explaining what's unique about publisher's business, and why buyers
3382
+ # should partner with the publisher.
3383
+ # Corresponds to the JSON property `buyerPitchStatement`
3384
+ # @return [String]
3385
+ attr_accessor :buyer_pitch_statement
3386
+
3387
+ # Contact information for direct reservation deals. This is free text entered by
3388
+ # the publisher and may include information like names, phone numbers and email
3389
+ # addresses.
3390
+ # Corresponds to the JSON property `directDealsContact`
3391
+ # @return [String]
3392
+ attr_accessor :direct_deals_contact
3393
+
3394
+ # Name of the publisher profile.
3395
+ # Corresponds to the JSON property `displayName`
3396
+ # @return [String]
3397
+ attr_accessor :display_name
3398
+
3399
+ # The list of domains represented in this publisher profile. Empty if this is a
3400
+ # parent profile. These are top private domains, meaning that these will not
3401
+ # contain a string like "photos.google.co.uk/123", but will instead contain "
3402
+ # google.co.uk".
3403
+ # Corresponds to the JSON property `domains`
3404
+ # @return [Array<String>]
3405
+ attr_accessor :domains
3406
+
3407
+ # URL to publisher's Google+ page.
3408
+ # Corresponds to the JSON property `googlePlusUrl`
3409
+ # @return [String]
3410
+ attr_accessor :google_plus_url
3411
+
3412
+ # Indicates if this profile is the parent profile of the seller. A parent
3413
+ # profile represents all the inventory from the seller, as opposed to child
3414
+ # profile that is created to brand a portion of inventory. One seller should
3415
+ # have only one parent publisher profile, and can have multiple child profiles.
3416
+ # Publisher profiles for the same seller will have same value of field google.
3417
+ # ads.adexchange.buyer.v2beta1.PublisherProfile.seller. See https://support.
3418
+ # google.com/admanager/answer/6035806 for details.
3419
+ # Corresponds to the JSON property `isParent`
3420
+ # @return [Boolean]
3421
+ attr_accessor :is_parent
3422
+ alias_method :is_parent?, :is_parent
3423
+
3424
+ # A Google public URL to the logo for this publisher profile. The logo is stored
3425
+ # as a PNG, JPG, or GIF image.
3426
+ # Corresponds to the JSON property `logoUrl`
3427
+ # @return [String]
3428
+ attr_accessor :logo_url
3429
+
3430
+ # URL to additional marketing and sales materials.
3431
+ # Corresponds to the JSON property `mediaKitUrl`
3432
+ # @return [String]
3433
+ attr_accessor :media_kit_url
3434
+
3435
+ # The list of apps represented in this publisher profile. Empty if this is a
3436
+ # parent profile.
3437
+ # Corresponds to the JSON property `mobileApps`
3438
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::PublisherProfileMobileApplication>]
3439
+ attr_accessor :mobile_apps
3440
+
3441
+ # Overview of the publisher.
3442
+ # Corresponds to the JSON property `overview`
3443
+ # @return [String]
3444
+ attr_accessor :overview
3445
+
3446
+ # Contact information for programmatic deals. This is free text entered by the
3447
+ # publisher and may include information like names, phone numbers and email
3448
+ # addresses.
3449
+ # Corresponds to the JSON property `programmaticDealsContact`
3450
+ # @return [String]
3451
+ attr_accessor :programmatic_deals_contact
3452
+
3453
+ # Unique ID for publisher profile.
3454
+ # Corresponds to the JSON property `publisherProfileId`
3455
+ # @return [String]
3456
+ attr_accessor :publisher_profile_id
3457
+
3458
+ # URL to a publisher rate card.
3459
+ # Corresponds to the JSON property `rateCardInfoUrl`
3460
+ # @return [String]
3461
+ attr_accessor :rate_card_info_url
3462
+
3463
+ # URL to a sample content page.
3464
+ # Corresponds to the JSON property `samplePageUrl`
3465
+ # @return [String]
3466
+ attr_accessor :sample_page_url
3467
+
3468
+ # Represents a seller of inventory. Each seller is identified by a unique Ad
3469
+ # Manager account ID.
3470
+ # Corresponds to the JSON property `seller`
3471
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Seller]
3472
+ attr_accessor :seller
3473
+
3474
+ # Up to three key metrics and rankings. Max 100 characters each. For example "#1
3475
+ # Mobile News Site for 20 Straight Months".
3476
+ # Corresponds to the JSON property `topHeadlines`
3477
+ # @return [Array<String>]
3478
+ attr_accessor :top_headlines
3479
+
3480
+ def initialize(**args)
3481
+ update!(**args)
3482
+ end
3483
+
3484
+ # Update properties of this object
3485
+ def update!(**args)
3486
+ @audience_description = args[:audience_description] if args.key?(:audience_description)
3487
+ @buyer_pitch_statement = args[:buyer_pitch_statement] if args.key?(:buyer_pitch_statement)
3488
+ @direct_deals_contact = args[:direct_deals_contact] if args.key?(:direct_deals_contact)
3489
+ @display_name = args[:display_name] if args.key?(:display_name)
3490
+ @domains = args[:domains] if args.key?(:domains)
3491
+ @google_plus_url = args[:google_plus_url] if args.key?(:google_plus_url)
3492
+ @is_parent = args[:is_parent] if args.key?(:is_parent)
3493
+ @logo_url = args[:logo_url] if args.key?(:logo_url)
3494
+ @media_kit_url = args[:media_kit_url] if args.key?(:media_kit_url)
3495
+ @mobile_apps = args[:mobile_apps] if args.key?(:mobile_apps)
3496
+ @overview = args[:overview] if args.key?(:overview)
3497
+ @programmatic_deals_contact = args[:programmatic_deals_contact] if args.key?(:programmatic_deals_contact)
3498
+ @publisher_profile_id = args[:publisher_profile_id] if args.key?(:publisher_profile_id)
3499
+ @rate_card_info_url = args[:rate_card_info_url] if args.key?(:rate_card_info_url)
3500
+ @sample_page_url = args[:sample_page_url] if args.key?(:sample_page_url)
3501
+ @seller = args[:seller] if args.key?(:seller)
3502
+ @top_headlines = args[:top_headlines] if args.key?(:top_headlines)
3503
+ end
3504
+ end
3505
+
3506
+ # A mobile application that contains a external app ID, name, and app store.
3507
+ class PublisherProfileMobileApplication
3508
+ include Google::Apis::Core::Hashable
3509
+
3510
+ # The app store the app belongs to.
3511
+ # Corresponds to the JSON property `appStore`
3512
+ # @return [String]
3513
+ attr_accessor :app_store
3514
+
3515
+ # The external ID for the app from its app store.
3516
+ # Corresponds to the JSON property `externalAppId`
3517
+ # @return [String]
3518
+ attr_accessor :external_app_id
3519
+
3520
+ # The name of the app.
3521
+ # Corresponds to the JSON property `name`
3522
+ # @return [String]
3523
+ attr_accessor :name
3524
+
3525
+ def initialize(**args)
3526
+ update!(**args)
3527
+ end
3528
+
3529
+ # Update properties of this object
3530
+ def update!(**args)
3531
+ @app_store = args[:app_store] if args.key?(:app_store)
3532
+ @external_app_id = args[:external_app_id] if args.key?(:external_app_id)
3533
+ @name = args[:name] if args.key?(:name)
3534
+ end
3535
+ end
3536
+
3537
+ # An open-ended realtime time range specified by the start timestamp. For filter
3538
+ # sets that specify a realtime time range RTB metrics continue to be aggregated
3539
+ # throughout the lifetime of the filter set.
3540
+ class RealtimeTimeRange
3541
+ include Google::Apis::Core::Hashable
3542
+
3543
+ # The start timestamp of the real-time RTB metrics aggregation.
3544
+ # Corresponds to the JSON property `startTimestamp`
3545
+ # @return [String]
3546
+ attr_accessor :start_timestamp
3547
+
3548
+ def initialize(**args)
3549
+ update!(**args)
3550
+ end
3551
+
3552
+ # Update properties of this object
3553
+ def update!(**args)
3554
+ @start_timestamp = args[:start_timestamp] if args.key?(:start_timestamp)
3555
+ end
3556
+ end
3557
+
3558
+ # A relative date range, specified by an offset and a duration. The supported
3559
+ # range of dates begins 30 days before today and ends today, i.e., the limits
3560
+ # for these values are: offset_days >= 0 duration_days >= 1 offset_days +
3561
+ # duration_days <= 30
3562
+ class RelativeDateRange
3563
+ include Google::Apis::Core::Hashable
3564
+
3565
+ # The number of days in the requested date range, e.g., for a range spanning
3566
+ # today: 1. For a range spanning the last 7 days: 7.
3567
+ # Corresponds to the JSON property `durationDays`
3568
+ # @return [Fixnum]
3569
+ attr_accessor :duration_days
3570
+
3571
+ # The end date of the filter set, specified as the number of days before today,
3572
+ # e.g., for a range where the last date is today: 0.
3573
+ # Corresponds to the JSON property `offsetDays`
3574
+ # @return [Fixnum]
3575
+ attr_accessor :offset_days
3576
+
3577
+ def initialize(**args)
3578
+ update!(**args)
3579
+ end
3580
+
3581
+ # Update properties of this object
3582
+ def update!(**args)
3583
+ @duration_days = args[:duration_days] if args.key?(:duration_days)
3584
+ @offset_days = args[:offset_days] if args.key?(:offset_days)
3585
+ end
3586
+ end
3587
+
3588
+ # A request for removing the association between a deal and a creative.
3589
+ class RemoveDealAssociationRequest
3590
+ include Google::Apis::Core::Hashable
3591
+
3592
+ # The association between a creative and a deal.
3593
+ # Corresponds to the JSON property `association`
3594
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CreativeDealAssociation]
3595
+ attr_accessor :association
3596
+
3597
+ def initialize(**args)
3598
+ update!(**args)
3599
+ end
3600
+
3601
+ # Update properties of this object
3602
+ def update!(**args)
3603
+ @association = args[:association] if args.key?(:association)
3604
+ end
3605
+ end
3606
+
3607
+ # Request message to resume (unpause) serving for an already-finalized proposal.
3608
+ class ResumeProposalRequest
3609
+ include Google::Apis::Core::Hashable
3610
+
3611
+ def initialize(**args)
3612
+ update!(**args)
3613
+ end
3614
+
3615
+ # Update properties of this object
3616
+ def update!(**args)
3617
+ end
3618
+ end
3619
+
3620
+ # A response may include multiple rows, breaking down along various dimensions.
3621
+ # Encapsulates the values of all dimensions for a given row.
3622
+ class RowDimensions
3623
+ include Google::Apis::Core::Hashable
3624
+
3625
+ # The publisher identifier for this row, if a breakdown by [BreakdownDimension.
3626
+ # PUBLISHER_IDENTIFIER](https://developers.google.com/authorized-buyers/apis/
3627
+ # reference/rest/v2beta1/bidders.accounts.filterSets#FilterSet.
3628
+ # BreakdownDimension) was requested.
3629
+ # Corresponds to the JSON property `publisherIdentifier`
3630
+ # @return [String]
3631
+ attr_accessor :publisher_identifier
3632
+
3633
+ # An interval of time, with an absolute start and end.
3634
+ # Corresponds to the JSON property `timeInterval`
3635
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::TimeInterval]
3636
+ attr_accessor :time_interval
3637
+
3638
+ def initialize(**args)
3639
+ update!(**args)
3640
+ end
3641
+
3642
+ # Update properties of this object
3643
+ def update!(**args)
3644
+ @publisher_identifier = args[:publisher_identifier] if args.key?(:publisher_identifier)
3645
+ @time_interval = args[:time_interval] if args.key?(:time_interval)
3646
+ end
3647
+ end
3648
+
3649
+ # Output only. A security context.
3650
+ class SecurityContext
3651
+ include Google::Apis::Core::Hashable
3652
+
3653
+ # The security types in this context.
3654
+ # Corresponds to the JSON property `securities`
3655
+ # @return [Array<String>]
3656
+ attr_accessor :securities
3657
+
3658
+ def initialize(**args)
3659
+ update!(**args)
3660
+ end
3661
+
3662
+ # Update properties of this object
3663
+ def update!(**args)
3664
+ @securities = args[:securities] if args.key?(:securities)
3665
+ end
3666
+ end
3667
+
3668
+ # Represents a seller of inventory. Each seller is identified by a unique Ad
3669
+ # Manager account ID.
3670
+ class Seller
3671
+ include Google::Apis::Core::Hashable
3672
+
3673
+ # The unique ID for the seller. The seller fills in this field. The seller
3674
+ # account ID is then available to buyer in the product.
3675
+ # Corresponds to the JSON property `accountId`
3676
+ # @return [String]
3677
+ attr_accessor :account_id
3678
+
3679
+ # Optional sub-account ID for the seller.
3680
+ # Corresponds to the JSON property `subAccountId`
3681
+ # @return [String]
3682
+ attr_accessor :sub_account_id
3683
+
3684
+ def initialize(**args)
3685
+ update!(**args)
3686
+ end
3687
+
3688
+ # Update properties of this object
3689
+ def update!(**args)
3690
+ @account_id = args[:account_id] if args.key?(:account_id)
3691
+ @sub_account_id = args[:sub_account_id] if args.key?(:sub_account_id)
3692
+ end
3693
+ end
3694
+
3695
+ # The serving context for this restriction.
3696
+ class ServingContext
3697
+ include Google::Apis::Core::Hashable
3698
+
3699
+ # Matches all contexts.
3700
+ # Corresponds to the JSON property `all`
3701
+ # @return [String]
3702
+ attr_accessor :all
3703
+
3704
+ # Output only. The app type the restriction applies to for mobile device.
3705
+ # Corresponds to the JSON property `appType`
3706
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::AppContext]
3707
+ attr_accessor :app_type
3708
+
3709
+ # Output only. The auction type the restriction applies to.
3710
+ # Corresponds to the JSON property `auctionType`
3711
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::AuctionContext]
3712
+ attr_accessor :auction_type
3713
+
3714
+ # Output only. The Geo criteria the restriction applies to.
3715
+ # Corresponds to the JSON property `location`
3716
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::LocationContext]
3717
+ attr_accessor :location
3718
+
3719
+ # Output only. The type of platform the restriction applies to.
3720
+ # Corresponds to the JSON property `platform`
3721
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::PlatformContext]
3722
+ attr_accessor :platform
3723
+
3724
+ # Output only. A security context.
3725
+ # Corresponds to the JSON property `securityType`
3726
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::SecurityContext]
3727
+ attr_accessor :security_type
3728
+
3729
+ def initialize(**args)
3730
+ update!(**args)
3731
+ end
3732
+
3733
+ # Update properties of this object
3734
+ def update!(**args)
3735
+ @all = args[:all] if args.key?(:all)
3736
+ @app_type = args[:app_type] if args.key?(:app_type)
3737
+ @auction_type = args[:auction_type] if args.key?(:auction_type)
3738
+ @location = args[:location] if args.key?(:location)
3739
+ @platform = args[:platform] if args.key?(:platform)
3740
+ @security_type = args[:security_type] if args.key?(:security_type)
3741
+ end
3742
+ end
3743
+
3744
+ # Output only. A representation of the status of an ad in a specific context. A
3745
+ # context here relates to where something ultimately serves (for example, a user
3746
+ # or publisher geo, a platform, an HTTPS vs HTTP request, or the type of auction)
3747
+ # .
3748
+ class ServingRestriction
3749
+ include Google::Apis::Core::Hashable
3750
+
3751
+ # The contexts for the restriction.
3752
+ # Corresponds to the JSON property `contexts`
3753
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::ServingContext>]
3754
+ attr_accessor :contexts
3755
+
3756
+ # Output only. The reason and details for a disapproval.
3757
+ # Corresponds to the JSON property `disapproval`
3758
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::Disapproval]
3759
+ attr_accessor :disapproval
3760
+
3761
+ # Any disapprovals bound to this restriction. Only present if status=DISAPPROVED.
3762
+ # Can be used to filter the response of the creatives.list method. Deprecated;
3763
+ # please use disapproval field instead.
3764
+ # Corresponds to the JSON property `disapprovalReasons`
3765
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::Disapproval>]
3766
+ attr_accessor :disapproval_reasons
3767
+
3768
+ # The status of the creative in this context (for example, it has been
3769
+ # explicitly disapproved or is pending review).
3770
+ # Corresponds to the JSON property `status`
3771
+ # @return [String]
3772
+ attr_accessor :status
3773
+
3774
+ def initialize(**args)
3775
+ update!(**args)
3776
+ end
3777
+
3778
+ # Update properties of this object
3779
+ def update!(**args)
3780
+ @contexts = args[:contexts] if args.key?(:contexts)
3781
+ @disapproval = args[:disapproval] if args.key?(:disapproval)
3782
+ @disapproval_reasons = args[:disapproval_reasons] if args.key?(:disapproval_reasons)
3783
+ @status = args[:status] if args.key?(:status)
3784
+ end
3785
+ end
3786
+
3787
+ # Message depicting the size of the creative. The units of width and height
3788
+ # depend on the type of the targeting.
3789
+ class Size
3790
+ include Google::Apis::Core::Hashable
3791
+
3792
+ # The height of the creative.
3793
+ # Corresponds to the JSON property `height`
3794
+ # @return [Fixnum]
3795
+ attr_accessor :height
3796
+
3797
+ # The width of the creative
3798
+ # Corresponds to the JSON property `width`
3799
+ # @return [Fixnum]
3800
+ attr_accessor :width
3801
+
3802
+ def initialize(**args)
3803
+ update!(**args)
3804
+ end
3805
+
3806
+ # Update properties of this object
3807
+ def update!(**args)
3808
+ @height = args[:height] if args.key?(:height)
3809
+ @width = args[:width] if args.key?(:width)
3810
+ end
3811
+ end
3812
+
3813
+ # A request for stopping notifications for changes to creative Status.
3814
+ class StopWatchingCreativeRequest
3815
+ include Google::Apis::Core::Hashable
3816
+
3817
+ def initialize(**args)
3818
+ update!(**args)
3819
+ end
3820
+
3821
+ # Update properties of this object
3822
+ def update!(**args)
3823
+ end
3824
+ end
3825
+
3826
+ # Advertisers can target different attributes of an ad slot. For example, they
3827
+ # can choose to show ads only if the user is in the U.S. Such targeting criteria
3828
+ # can be specified as part of Shared Targeting.
3829
+ class TargetingCriteria
3830
+ include Google::Apis::Core::Hashable
3831
+
3832
+ # The list of values to exclude from targeting. Each value is AND'd together.
3833
+ # Corresponds to the JSON property `exclusions`
3834
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::TargetingValue>]
3835
+ attr_accessor :exclusions
3836
+
3837
+ # The list of value to include as part of the targeting. Each value is OR'd
3838
+ # together.
3839
+ # Corresponds to the JSON property `inclusions`
3840
+ # @return [Array<Google::Apis::Adexchangebuyer2V2beta1::TargetingValue>]
3841
+ attr_accessor :inclusions
3842
+
3843
+ # The key representing the shared targeting criterion. Targeting criteria
3844
+ # defined by Google ad servers will begin with GOOG_. Third parties may define
3845
+ # their own keys. A list of permissible keys along with the acceptable values
3846
+ # will be provided as part of the external documentation.
3847
+ # Corresponds to the JSON property `key`
3848
+ # @return [String]
3849
+ attr_accessor :key
3850
+
3851
+ def initialize(**args)
3852
+ update!(**args)
3853
+ end
3854
+
3855
+ # Update properties of this object
3856
+ def update!(**args)
3857
+ @exclusions = args[:exclusions] if args.key?(:exclusions)
3858
+ @inclusions = args[:inclusions] if args.key?(:inclusions)
3859
+ @key = args[:key] if args.key?(:key)
3860
+ end
3861
+ end
3862
+
3863
+ # A polymorphic targeting value used as part of Shared Targeting.
3864
+ class TargetingValue
3865
+ include Google::Apis::Core::Hashable
3866
+
3867
+ # Specifies the size of the creative.
3868
+ # Corresponds to the JSON property `creativeSizeValue`
3869
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CreativeSize]
3870
+ attr_accessor :creative_size_value
3871
+
3872
+ # Specifies the day part targeting criteria.
3873
+ # Corresponds to the JSON property `dayPartTargetingValue`
3874
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::DayPartTargeting]
3875
+ attr_accessor :day_part_targeting_value
3876
+
3877
+ # The long value to include/exclude.
3878
+ # Corresponds to the JSON property `longValue`
3879
+ # @return [Fixnum]
3880
+ attr_accessor :long_value
3881
+
3882
+ # The string value to include/exclude.
3883
+ # Corresponds to the JSON property `stringValue`
3884
+ # @return [String]
3885
+ attr_accessor :string_value
3886
+
3887
+ def initialize(**args)
3888
+ update!(**args)
3889
+ end
3890
+
3891
+ # Update properties of this object
3892
+ def update!(**args)
3893
+ @creative_size_value = args[:creative_size_value] if args.key?(:creative_size_value)
3894
+ @day_part_targeting_value = args[:day_part_targeting_value] if args.key?(:day_part_targeting_value)
3895
+ @long_value = args[:long_value] if args.key?(:long_value)
3896
+ @string_value = args[:string_value] if args.key?(:string_value)
3897
+ end
3898
+ end
3899
+
3900
+ # Represents targeting about various types of technology.
3901
+ class TechnologyTargeting
3902
+ include Google::Apis::Core::Hashable
3903
+
3904
+ # Generic targeting used for targeting dimensions that contains a list of
3905
+ # included and excluded numeric IDs.
3906
+ # Corresponds to the JSON property `deviceCapabilityTargeting`
3907
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CriteriaTargeting]
3908
+ attr_accessor :device_capability_targeting
3909
+
3910
+ # Generic targeting used for targeting dimensions that contains a list of
3911
+ # included and excluded numeric IDs.
3912
+ # Corresponds to the JSON property `deviceCategoryTargeting`
3913
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::CriteriaTargeting]
3914
+ attr_accessor :device_category_targeting
3915
+
3916
+ # Represents targeting information for operating systems.
3917
+ # Corresponds to the JSON property `operatingSystemTargeting`
3918
+ # @return [Google::Apis::Adexchangebuyer2V2beta1::OperatingSystemTargeting]
3919
+ attr_accessor :operating_system_targeting
3920
+
3921
+ def initialize(**args)
3922
+ update!(**args)
3923
+ end
3924
+
3925
+ # Update properties of this object
3926
+ def update!(**args)
3927
+ @device_capability_targeting = args[:device_capability_targeting] if args.key?(:device_capability_targeting)
3928
+ @device_category_targeting = args[:device_category_targeting] if args.key?(:device_category_targeting)
3929
+ @operating_system_targeting = args[:operating_system_targeting] if args.key?(:operating_system_targeting)
3930
+ end
3931
+ end
3932
+
3933
+ # An interval of time, with an absolute start and end.
3934
+ class TimeInterval
3935
+ include Google::Apis::Core::Hashable
3936
+
3937
+ # The timestamp marking the end of the range (exclusive) for which data is
3938
+ # included.
3939
+ # Corresponds to the JSON property `endTime`
3940
+ # @return [String]
3941
+ attr_accessor :end_time
3942
+
3943
+ # The timestamp marking the start of the range (inclusive) for which data is
3944
+ # included.
3945
+ # Corresponds to the JSON property `startTime`
3946
+ # @return [String]
3947
+ attr_accessor :start_time
3948
+
3949
+ def initialize(**args)
3950
+ update!(**args)
3951
+ end
3952
+
3953
+ # Update properties of this object
3954
+ def update!(**args)
3955
+ @end_time = args[:end_time] if args.key?(:end_time)
3956
+ @start_time = args[:start_time] if args.key?(:start_time)
3957
+ end
3958
+ end
3959
+
3960
+ # Represents a time of day. The date and time zone are either not significant or
3961
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
3962
+ # types are google.type.Date and `google.protobuf.Timestamp`.
3963
+ class TimeOfDay
3964
+ include Google::Apis::Core::Hashable
3965
+
3966
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
3967
+ # allow the value "24:00:00" for scenarios like business closing time.
3968
+ # Corresponds to the JSON property `hours`
3969
+ # @return [Fixnum]
3970
+ attr_accessor :hours
3971
+
3972
+ # Minutes of hour of day. Must be from 0 to 59.
3973
+ # Corresponds to the JSON property `minutes`
3974
+ # @return [Fixnum]
3975
+ attr_accessor :minutes
3976
+
3977
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3978
+ # Corresponds to the JSON property `nanos`
3979
+ # @return [Fixnum]
3980
+ attr_accessor :nanos
3981
+
3982
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3983
+ # allow the value 60 if it allows leap-seconds.
3984
+ # Corresponds to the JSON property `seconds`
3985
+ # @return [Fixnum]
3986
+ attr_accessor :seconds
3987
+
3988
+ def initialize(**args)
3989
+ update!(**args)
3990
+ end
3991
+
3992
+ # Update properties of this object
3993
+ def update!(**args)
3994
+ @hours = args[:hours] if args.key?(:hours)
3995
+ @minutes = args[:minutes] if args.key?(:minutes)
3996
+ @nanos = args[:nanos] if args.key?(:nanos)
3997
+ @seconds = args[:seconds] if args.key?(:seconds)
3998
+ end
3999
+ end
4000
+
4001
+ # Represents a list of targeted and excluded URLs (e.g., google.com). For
4002
+ # Private Auction and AdX Preferred Deals, URLs are either included or excluded.
4003
+ # For Programmatic Guaranteed and Preferred Deals, this doesn't apply.
4004
+ class UrlTargeting
4005
+ include Google::Apis::Core::Hashable
4006
+
4007
+ # A list of URLs to be excluded.
4008
+ # Corresponds to the JSON property `excludedUrls`
4009
+ # @return [Array<String>]
4010
+ attr_accessor :excluded_urls
4011
+
4012
+ # A list of URLs to be included.
4013
+ # Corresponds to the JSON property `targetedUrls`
4014
+ # @return [Array<String>]
4015
+ attr_accessor :targeted_urls
4016
+
4017
+ def initialize(**args)
4018
+ update!(**args)
4019
+ end
4020
+
4021
+ # Update properties of this object
4022
+ def update!(**args)
4023
+ @excluded_urls = args[:excluded_urls] if args.key?(:excluded_urls)
4024
+ @targeted_urls = args[:targeted_urls] if args.key?(:targeted_urls)
4025
+ end
4026
+ end
4027
+
4028
+ # Video content for a creative.
4029
+ class VideoContent
4030
+ include Google::Apis::Core::Hashable
4031
+
4032
+ # The URL to fetch a video ad.
4033
+ # Corresponds to the JSON property `videoUrl`
4034
+ # @return [String]
4035
+ attr_accessor :video_url
4036
+
4037
+ # The contents of a VAST document for a video ad. This document should conform
4038
+ # to the VAST 2.0 or 3.0 standard.
4039
+ # Corresponds to the JSON property `videoVastXml`
4040
+ # @return [String]
4041
+ attr_accessor :video_vast_xml
4042
+
4043
+ def initialize(**args)
4044
+ update!(**args)
4045
+ end
4046
+
4047
+ # Update properties of this object
4048
+ def update!(**args)
4049
+ @video_url = args[:video_url] if args.key?(:video_url)
4050
+ @video_vast_xml = args[:video_vast_xml] if args.key?(:video_vast_xml)
4051
+ end
4052
+ end
4053
+
4054
+ # Represents targeting information about video.
4055
+ class VideoTargeting
4056
+ include Google::Apis::Core::Hashable
4057
+
4058
+ # A list of video positions to be excluded. Position types can either be
4059
+ # included or excluded (XOR).
4060
+ # Corresponds to the JSON property `excludedPositionTypes`
4061
+ # @return [Array<String>]
4062
+ attr_accessor :excluded_position_types
4063
+
4064
+ # A list of video positions to be included. When the included list is present,
4065
+ # the excluded list must be empty. When the excluded list is present, the
4066
+ # included list must be empty.
4067
+ # Corresponds to the JSON property `targetedPositionTypes`
4068
+ # @return [Array<String>]
4069
+ attr_accessor :targeted_position_types
4070
+
4071
+ def initialize(**args)
4072
+ update!(**args)
4073
+ end
4074
+
4075
+ # Update properties of this object
4076
+ def update!(**args)
4077
+ @excluded_position_types = args[:excluded_position_types] if args.key?(:excluded_position_types)
4078
+ @targeted_position_types = args[:targeted_position_types] if args.key?(:targeted_position_types)
4079
+ end
4080
+ end
4081
+
4082
+ # A request for watching changes to creative Status.
4083
+ class WatchCreativeRequest
4084
+ include Google::Apis::Core::Hashable
4085
+
4086
+ # The Pub/Sub topic to publish notifications to. This topic must already exist
4087
+ # and must give permission to ad-exchange-buyside-reports@google.com to write to
4088
+ # the topic. This should be the full resource name in "projects/`project_id`/
4089
+ # topics/`topic_id`" format.
4090
+ # Corresponds to the JSON property `topic`
4091
+ # @return [String]
4092
+ attr_accessor :topic
4093
+
4094
+ def initialize(**args)
4095
+ update!(**args)
4096
+ end
4097
+
4098
+ # Update properties of this object
4099
+ def update!(**args)
4100
+ @topic = args[:topic] if args.key?(:topic)
4101
+ end
4102
+ end
4103
+ end
4104
+ end
4105
+ end