google-apis-adexchangebuyer_v1_4 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: 15629aaeb010f715020339661e6363d45077a47cf1c7e5883b4fa6b24f55b913
4
+ data.tar.gz: 936c1bb8ce6c43deb035cad241c52faf3e7e661bd6fa5990d5b036b4a20d2b81
5
+ SHA512:
6
+ metadata.gz: da059175a984bc07d68317badd56255646e78682a654acc65f5485cccb3674d7505a96b83811d4b7534f7d742b6750d73e870edae6dee8b15cebbe1318497646
7
+ data.tar.gz: 482421fa32db8625f23271c503b69840ca0f7341b95ff549fc02ef63fe6264862ae5a30ded4c81b6e2dfd9f75ae1f851ae9b3200cd3ea767f4478e2c5d6dfa1b
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-adexchangebuyer_v1_4
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/adexchangebuyer_v1_4/*.rb
9
+ lib/google/apis/adexchangebuyer_v1_4.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-adexchangebuyer_v1_4
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201004
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 V1_4 of the Ad Exchange Buyer API
2
+
3
+ This is a simple client library for version V1_4 of the Ad Exchange Buyer API. 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/adexchangebuyer.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-adexchangebuyer_v1_4', '~> 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-adexchangebuyer_v1_4
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/adexchangebuyer_v1_4"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::AdexchangebuyerV1_4::AdExchangeBuyerService.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 Adexchangebuyer service in particular.)
67
+
68
+ For reference information on specific calls in the Ad Exchange Buyer API, see the {Google::Apis::AdexchangebuyerV1_4::AdExchangeBuyerService 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-adexchangebuyer_v1_4`, 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/ad-exchange/buyer-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/adexchangebuyer_v1_4"
@@ -0,0 +1,37 @@
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/adexchangebuyer_v1_4/service.rb'
16
+ require 'google/apis/adexchangebuyer_v1_4/classes.rb'
17
+ require 'google/apis/adexchangebuyer_v1_4/representations.rb'
18
+ require 'google/apis/adexchangebuyer_v1_4/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Ad Exchange Buyer API
23
+ #
24
+ # Accesses your bidding-account information, submits creatives for validation,
25
+ # finds available direct deals, and retrieves performance reports.
26
+ #
27
+ # @see https://developers.google.com/ad-exchange/buyer-rest
28
+ module AdexchangebuyerV1_4
29
+ # Version of the Ad Exchange Buyer API this client connects to.
30
+ # This is NOT the gem version.
31
+ VERSION = 'V1_4'
32
+
33
+ # Manage your Ad Exchange buyer account configuration
34
+ AUTH_ADEXCHANGE_BUYER = 'https://www.googleapis.com/auth/adexchange.buyer'
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,3811 @@
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 AdexchangebuyerV1_4
24
+
25
+ # Configuration data for an Ad Exchange buyer account.
26
+ class Account
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # When this is false, bid requests that include a deal ID for a private auction
30
+ # or preferred deal are always sent to your bidder. When true, all active
31
+ # pretargeting configs will be applied to private auctions and preferred deals.
32
+ # Programmatic Guaranteed deals (when enabled) are always sent to your bidder.
33
+ # Corresponds to the JSON property `applyPretargetingToNonGuaranteedDeals`
34
+ # @return [Boolean]
35
+ attr_accessor :apply_pretargeting_to_non_guaranteed_deals
36
+ alias_method :apply_pretargeting_to_non_guaranteed_deals?, :apply_pretargeting_to_non_guaranteed_deals
37
+
38
+ # Your bidder locations that have distinct URLs.
39
+ # Corresponds to the JSON property `bidderLocation`
40
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Account::BidderLocation>]
41
+ attr_accessor :bidder_location
42
+
43
+ # The nid parameter value used in cookie match requests. Please contact your
44
+ # technical account manager if you need to change this.
45
+ # Corresponds to the JSON property `cookieMatchingNid`
46
+ # @return [String]
47
+ attr_accessor :cookie_matching_nid
48
+
49
+ # The base URL used in cookie match requests.
50
+ # Corresponds to the JSON property `cookieMatchingUrl`
51
+ # @return [String]
52
+ attr_accessor :cookie_matching_url
53
+
54
+ # Account id.
55
+ # Corresponds to the JSON property `id`
56
+ # @return [Fixnum]
57
+ attr_accessor :id
58
+
59
+ # Resource type.
60
+ # Corresponds to the JSON property `kind`
61
+ # @return [String]
62
+ attr_accessor :kind
63
+
64
+ # The maximum number of active creatives that an account can have, where a
65
+ # creative is active if it was inserted or bid with in the last 30 days. Please
66
+ # contact your technical account manager if you need to change this.
67
+ # Corresponds to the JSON property `maximumActiveCreatives`
68
+ # @return [Fixnum]
69
+ attr_accessor :maximum_active_creatives
70
+
71
+ # The sum of all bidderLocation.maximumQps values cannot exceed this. Please
72
+ # contact your technical account manager if you need to change this.
73
+ # Corresponds to the JSON property `maximumTotalQps`
74
+ # @return [Fixnum]
75
+ attr_accessor :maximum_total_qps
76
+
77
+ # The number of creatives that this account inserted or bid with in the last 30
78
+ # days.
79
+ # Corresponds to the JSON property `numberActiveCreatives`
80
+ # @return [Fixnum]
81
+ attr_accessor :number_active_creatives
82
+
83
+ def initialize(**args)
84
+ update!(**args)
85
+ end
86
+
87
+ # Update properties of this object
88
+ def update!(**args)
89
+ @apply_pretargeting_to_non_guaranteed_deals = args[:apply_pretargeting_to_non_guaranteed_deals] if args.key?(:apply_pretargeting_to_non_guaranteed_deals)
90
+ @bidder_location = args[:bidder_location] if args.key?(:bidder_location)
91
+ @cookie_matching_nid = args[:cookie_matching_nid] if args.key?(:cookie_matching_nid)
92
+ @cookie_matching_url = args[:cookie_matching_url] if args.key?(:cookie_matching_url)
93
+ @id = args[:id] if args.key?(:id)
94
+ @kind = args[:kind] if args.key?(:kind)
95
+ @maximum_active_creatives = args[:maximum_active_creatives] if args.key?(:maximum_active_creatives)
96
+ @maximum_total_qps = args[:maximum_total_qps] if args.key?(:maximum_total_qps)
97
+ @number_active_creatives = args[:number_active_creatives] if args.key?(:number_active_creatives)
98
+ end
99
+
100
+ #
101
+ class BidderLocation
102
+ include Google::Apis::Core::Hashable
103
+
104
+ # The protocol that the bidder endpoint is using. OpenRTB protocols with prefix
105
+ # PROTOCOL_OPENRTB_PROTOBUF use proto buffer, otherwise use JSON. Allowed
106
+ # values:
107
+ # - PROTOCOL_ADX
108
+ # - PROTOCOL_OPENRTB_2_2
109
+ # - PROTOCOL_OPENRTB_2_3
110
+ # - PROTOCOL_OPENRTB_2_4
111
+ # - PROTOCOL_OPENRTB_2_5
112
+ # - PROTOCOL_OPENRTB_PROTOBUF_2_3
113
+ # - PROTOCOL_OPENRTB_PROTOBUF_2_4
114
+ # - PROTOCOL_OPENRTB_PROTOBUF_2_5
115
+ # Corresponds to the JSON property `bidProtocol`
116
+ # @return [String]
117
+ attr_accessor :bid_protocol
118
+
119
+ # The maximum queries per second the Ad Exchange will send.
120
+ # Corresponds to the JSON property `maximumQps`
121
+ # @return [Fixnum]
122
+ attr_accessor :maximum_qps
123
+
124
+ # The geographical region the Ad Exchange should send requests from. Only used
125
+ # by some quota systems, but always setting the value is recommended. Allowed
126
+ # values:
127
+ # - ASIA
128
+ # - EUROPE
129
+ # - US_EAST
130
+ # - US_WEST
131
+ # Corresponds to the JSON property `region`
132
+ # @return [String]
133
+ attr_accessor :region
134
+
135
+ # The URL to which the Ad Exchange will send bid requests.
136
+ # Corresponds to the JSON property `url`
137
+ # @return [String]
138
+ attr_accessor :url
139
+
140
+ def initialize(**args)
141
+ update!(**args)
142
+ end
143
+
144
+ # Update properties of this object
145
+ def update!(**args)
146
+ @bid_protocol = args[:bid_protocol] if args.key?(:bid_protocol)
147
+ @maximum_qps = args[:maximum_qps] if args.key?(:maximum_qps)
148
+ @region = args[:region] if args.key?(:region)
149
+ @url = args[:url] if args.key?(:url)
150
+ end
151
+ end
152
+ end
153
+
154
+ # An account feed lists Ad Exchange buyer accounts that the user has access to.
155
+ # Each entry in the feed corresponds to a single buyer account.
156
+ class AccountsList
157
+ include Google::Apis::Core::Hashable
158
+
159
+ # A list of accounts.
160
+ # Corresponds to the JSON property `items`
161
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Account>]
162
+ attr_accessor :items
163
+
164
+ # Resource type.
165
+ # Corresponds to the JSON property `kind`
166
+ # @return [String]
167
+ attr_accessor :kind
168
+
169
+ def initialize(**args)
170
+ update!(**args)
171
+ end
172
+
173
+ # Update properties of this object
174
+ def update!(**args)
175
+ @items = args[:items] if args.key?(:items)
176
+ @kind = args[:kind] if args.key?(:kind)
177
+ end
178
+ end
179
+
180
+ #
181
+ class AddOrderDealsRequest
182
+ include Google::Apis::Core::Hashable
183
+
184
+ # The list of deals to add
185
+ # Corresponds to the JSON property `deals`
186
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
187
+ attr_accessor :deals
188
+
189
+ # The last known proposal revision number.
190
+ # Corresponds to the JSON property `proposalRevisionNumber`
191
+ # @return [Fixnum]
192
+ attr_accessor :proposal_revision_number
193
+
194
+ # Indicates an optional action to take on the proposal
195
+ # Corresponds to the JSON property `updateAction`
196
+ # @return [String]
197
+ attr_accessor :update_action
198
+
199
+ def initialize(**args)
200
+ update!(**args)
201
+ end
202
+
203
+ # Update properties of this object
204
+ def update!(**args)
205
+ @deals = args[:deals] if args.key?(:deals)
206
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
207
+ @update_action = args[:update_action] if args.key?(:update_action)
208
+ end
209
+ end
210
+
211
+ #
212
+ class AddOrderDealsResponse
213
+ include Google::Apis::Core::Hashable
214
+
215
+ # List of deals added (in the same proposal as passed in the request)
216
+ # Corresponds to the JSON property `deals`
217
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
218
+ attr_accessor :deals
219
+
220
+ # The updated revision number for the proposal.
221
+ # Corresponds to the JSON property `proposalRevisionNumber`
222
+ # @return [Fixnum]
223
+ attr_accessor :proposal_revision_number
224
+
225
+ def initialize(**args)
226
+ update!(**args)
227
+ end
228
+
229
+ # Update properties of this object
230
+ def update!(**args)
231
+ @deals = args[:deals] if args.key?(:deals)
232
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
233
+ end
234
+ end
235
+
236
+ #
237
+ class AddOrderNotesRequest
238
+ include Google::Apis::Core::Hashable
239
+
240
+ # The list of notes to add.
241
+ # Corresponds to the JSON property `notes`
242
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceNote>]
243
+ attr_accessor :notes
244
+
245
+ def initialize(**args)
246
+ update!(**args)
247
+ end
248
+
249
+ # Update properties of this object
250
+ def update!(**args)
251
+ @notes = args[:notes] if args.key?(:notes)
252
+ end
253
+ end
254
+
255
+ #
256
+ class AddOrderNotesResponse
257
+ include Google::Apis::Core::Hashable
258
+
259
+ #
260
+ # Corresponds to the JSON property `notes`
261
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceNote>]
262
+ attr_accessor :notes
263
+
264
+ def initialize(**args)
265
+ update!(**args)
266
+ end
267
+
268
+ # Update properties of this object
269
+ def update!(**args)
270
+ @notes = args[:notes] if args.key?(:notes)
271
+ end
272
+ end
273
+
274
+ # The configuration data for an Ad Exchange billing info.
275
+ class BillingInfo
276
+ include Google::Apis::Core::Hashable
277
+
278
+ # Account id.
279
+ # Corresponds to the JSON property `accountId`
280
+ # @return [Fixnum]
281
+ attr_accessor :account_id
282
+
283
+ # Account name.
284
+ # Corresponds to the JSON property `accountName`
285
+ # @return [String]
286
+ attr_accessor :account_name
287
+
288
+ # A list of adgroup IDs associated with this particular account. These IDs may
289
+ # show up as part of a realtime bidding BidRequest, which indicates a bid
290
+ # request for this account.
291
+ # Corresponds to the JSON property `billingId`
292
+ # @return [Array<String>]
293
+ attr_accessor :billing_id
294
+
295
+ # Resource type.
296
+ # Corresponds to the JSON property `kind`
297
+ # @return [String]
298
+ attr_accessor :kind
299
+
300
+ def initialize(**args)
301
+ update!(**args)
302
+ end
303
+
304
+ # Update properties of this object
305
+ def update!(**args)
306
+ @account_id = args[:account_id] if args.key?(:account_id)
307
+ @account_name = args[:account_name] if args.key?(:account_name)
308
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
309
+ @kind = args[:kind] if args.key?(:kind)
310
+ end
311
+ end
312
+
313
+ # A billing info feed lists Billing Info the Ad Exchange buyer account has
314
+ # access to. Each entry in the feed corresponds to a single billing info.
315
+ class BillingInfoList
316
+ include Google::Apis::Core::Hashable
317
+
318
+ # A list of billing info relevant for your account.
319
+ # Corresponds to the JSON property `items`
320
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::BillingInfo>]
321
+ attr_accessor :items
322
+
323
+ # Resource type.
324
+ # Corresponds to the JSON property `kind`
325
+ # @return [String]
326
+ attr_accessor :kind
327
+
328
+ def initialize(**args)
329
+ update!(**args)
330
+ end
331
+
332
+ # Update properties of this object
333
+ def update!(**args)
334
+ @items = args[:items] if args.key?(:items)
335
+ @kind = args[:kind] if args.key?(:kind)
336
+ end
337
+ end
338
+
339
+ # The configuration data for Ad Exchange RTB - Budget API.
340
+ class Budget
341
+ include Google::Apis::Core::Hashable
342
+
343
+ # The id of the account. This is required for get and update requests.
344
+ # Corresponds to the JSON property `accountId`
345
+ # @return [Fixnum]
346
+ attr_accessor :account_id
347
+
348
+ # The billing id to determine which adgroup to provide budget information for.
349
+ # This is required for get and update requests.
350
+ # Corresponds to the JSON property `billingId`
351
+ # @return [Fixnum]
352
+ attr_accessor :billing_id
353
+
354
+ # The daily budget amount in unit amount of the account currency to apply for
355
+ # the billingId provided. This is required for update requests.
356
+ # Corresponds to the JSON property `budgetAmount`
357
+ # @return [Fixnum]
358
+ attr_accessor :budget_amount
359
+
360
+ # The currency code for the buyer. This cannot be altered here.
361
+ # Corresponds to the JSON property `currencyCode`
362
+ # @return [String]
363
+ attr_accessor :currency_code
364
+
365
+ # The unique id that describes this item.
366
+ # Corresponds to the JSON property `id`
367
+ # @return [String]
368
+ attr_accessor :id
369
+
370
+ # The kind of the resource, i.e. "adexchangebuyer#budget".
371
+ # Corresponds to the JSON property `kind`
372
+ # @return [String]
373
+ attr_accessor :kind
374
+
375
+ def initialize(**args)
376
+ update!(**args)
377
+ end
378
+
379
+ # Update properties of this object
380
+ def update!(**args)
381
+ @account_id = args[:account_id] if args.key?(:account_id)
382
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
383
+ @budget_amount = args[:budget_amount] if args.key?(:budget_amount)
384
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
385
+ @id = args[:id] if args.key?(:id)
386
+ @kind = args[:kind] if args.key?(:kind)
387
+ end
388
+ end
389
+
390
+ #
391
+ class Buyer
392
+ include Google::Apis::Core::Hashable
393
+
394
+ # Adx account id of the buyer.
395
+ # Corresponds to the JSON property `accountId`
396
+ # @return [String]
397
+ attr_accessor :account_id
398
+
399
+ def initialize(**args)
400
+ update!(**args)
401
+ end
402
+
403
+ # Update properties of this object
404
+ def update!(**args)
405
+ @account_id = args[:account_id] if args.key?(:account_id)
406
+ end
407
+ end
408
+
409
+ #
410
+ class ContactInformation
411
+ include Google::Apis::Core::Hashable
412
+
413
+ # Email address of the contact.
414
+ # Corresponds to the JSON property `email`
415
+ # @return [String]
416
+ attr_accessor :email
417
+
418
+ # The name of the contact.
419
+ # Corresponds to the JSON property `name`
420
+ # @return [String]
421
+ attr_accessor :name
422
+
423
+ def initialize(**args)
424
+ update!(**args)
425
+ end
426
+
427
+ # Update properties of this object
428
+ def update!(**args)
429
+ @email = args[:email] if args.key?(:email)
430
+ @name = args[:name] if args.key?(:name)
431
+ end
432
+ end
433
+
434
+ #
435
+ class CreateOrdersRequest
436
+ include Google::Apis::Core::Hashable
437
+
438
+ # The list of proposals to create.
439
+ # Corresponds to the JSON property `proposals`
440
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Proposal>]
441
+ attr_accessor :proposals
442
+
443
+ # Web property id of the seller creating these orders
444
+ # Corresponds to the JSON property `webPropertyCode`
445
+ # @return [String]
446
+ attr_accessor :web_property_code
447
+
448
+ def initialize(**args)
449
+ update!(**args)
450
+ end
451
+
452
+ # Update properties of this object
453
+ def update!(**args)
454
+ @proposals = args[:proposals] if args.key?(:proposals)
455
+ @web_property_code = args[:web_property_code] if args.key?(:web_property_code)
456
+ end
457
+ end
458
+
459
+ #
460
+ class CreateOrdersResponse
461
+ include Google::Apis::Core::Hashable
462
+
463
+ # The list of proposals successfully created.
464
+ # Corresponds to the JSON property `proposals`
465
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Proposal>]
466
+ attr_accessor :proposals
467
+
468
+ def initialize(**args)
469
+ update!(**args)
470
+ end
471
+
472
+ # Update properties of this object
473
+ def update!(**args)
474
+ @proposals = args[:proposals] if args.key?(:proposals)
475
+ end
476
+ end
477
+
478
+ # A creative and its classification data.
479
+ class Creative
480
+ include Google::Apis::Core::Hashable
481
+
482
+ # The HTML snippet that displays the ad when inserted in the web page. If set,
483
+ # videoURL, videoVastXML, and nativeAd should not be set.
484
+ # Corresponds to the JSON property `HTMLSnippet`
485
+ # @return [String]
486
+ attr_accessor :html_snippet
487
+
488
+ # Account id.
489
+ # Corresponds to the JSON property `accountId`
490
+ # @return [Fixnum]
491
+ attr_accessor :account_id
492
+
493
+ # The link to the Ad Preferences page. This is only supported for native ads.
494
+ # Corresponds to the JSON property `adChoicesDestinationUrl`
495
+ # @return [String]
496
+ attr_accessor :ad_choices_destination_url
497
+
498
+ #
499
+ # Corresponds to the JSON property `adTechnologyProviders`
500
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::AdTechnologyProviders]
501
+ attr_accessor :ad_technology_providers
502
+
503
+ # Detected advertiser id, if any. Read-only. This field should not be set in
504
+ # requests.
505
+ # Corresponds to the JSON property `advertiserId`
506
+ # @return [Array<Fixnum>]
507
+ attr_accessor :advertiser_id
508
+
509
+ # The name of the company being advertised in the creative. A list of
510
+ # advertisers is provided in the advertisers.txt file.
511
+ # Corresponds to the JSON property `advertiserName`
512
+ # @return [String]
513
+ attr_accessor :advertiser_name
514
+
515
+ # The agency id for this creative.
516
+ # Corresponds to the JSON property `agencyId`
517
+ # @return [Fixnum]
518
+ attr_accessor :agency_id
519
+
520
+ # The last upload timestamp of this creative if it was uploaded via API. Read-
521
+ # only. The value of this field is generated, and will be ignored for uploads. (
522
+ # formatted RFC 3339 timestamp).
523
+ # Corresponds to the JSON property `apiUploadTimestamp`
524
+ # @return [DateTime]
525
+ attr_accessor :api_upload_timestamp
526
+
527
+ # List of buyer selectable attributes for the ads that may be shown from this
528
+ # snippet. Each attribute is represented by an integer as defined in buyer-
529
+ # declarable-creative-attributes.txt.
530
+ # Corresponds to the JSON property `attribute`
531
+ # @return [Array<Fixnum>]
532
+ attr_accessor :attribute
533
+
534
+ # A buyer-specific id identifying the creative in this ad.
535
+ # Corresponds to the JSON property `buyerCreativeId`
536
+ # @return [String]
537
+ attr_accessor :buyer_creative_id
538
+
539
+ # The set of destination urls for the snippet.
540
+ # Corresponds to the JSON property `clickThroughUrl`
541
+ # @return [Array<String>]
542
+ attr_accessor :click_through_url
543
+
544
+ # Shows any corrections that were applied to this creative. Read-only. This
545
+ # field should not be set in requests.
546
+ # Corresponds to the JSON property `corrections`
547
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::Correction>]
548
+ attr_accessor :corrections
549
+
550
+ # Creative status identity type that the creative item applies to. Ad Exchange
551
+ # real-time bidding is migrating to the sizeless creative verification.
552
+ # Originally, Ad Exchange assigned creative verification status to a unique
553
+ # combination of a buyer creative ID and creative dimensions. Post-migration, a
554
+ # single verification status will be assigned at the buyer creative ID level.
555
+ # This field allows to distinguish whether a given creative status applies to a
556
+ # unique combination of a buyer creative ID and creative dimensions, or to a
557
+ # buyer creative ID as a whole.
558
+ # Corresponds to the JSON property `creativeStatusIdentityType`
559
+ # @return [String]
560
+ attr_accessor :creative_status_identity_type
561
+
562
+ # Top-level deals status. Read-only. This field should not be set in requests.
563
+ # If disapproved, an entry for auctionType=DIRECT_DEALS (or ALL) in
564
+ # servingRestrictions will also exist. Note that this may be nuanced with other
565
+ # contextual restrictions, in which case it may be preferable to read from
566
+ # servingRestrictions directly.
567
+ # Corresponds to the JSON property `dealsStatus`
568
+ # @return [String]
569
+ attr_accessor :deals_status
570
+
571
+ # Detected domains for this creative. Read-only. This field should not be set in
572
+ # requests.
573
+ # Corresponds to the JSON property `detectedDomains`
574
+ # @return [Array<String>]
575
+ attr_accessor :detected_domains
576
+
577
+ # The filtering reasons for the creative. Read-only. This field should not be
578
+ # set in requests.
579
+ # Corresponds to the JSON property `filteringReasons`
580
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::FilteringReasons]
581
+ attr_accessor :filtering_reasons
582
+
583
+ # Ad height.
584
+ # Corresponds to the JSON property `height`
585
+ # @return [Fixnum]
586
+ attr_accessor :height
587
+
588
+ # The set of urls to be called to record an impression.
589
+ # Corresponds to the JSON property `impressionTrackingUrl`
590
+ # @return [Array<String>]
591
+ attr_accessor :impression_tracking_url
592
+
593
+ # Resource type.
594
+ # Corresponds to the JSON property `kind`
595
+ # @return [String]
596
+ attr_accessor :kind
597
+
598
+ # Detected languages for this creative. Read-only. This field should not be set
599
+ # in requests.
600
+ # Corresponds to the JSON property `languages`
601
+ # @return [Array<String>]
602
+ attr_accessor :languages
603
+
604
+ # If nativeAd is set, HTMLSnippet, videoVastXML, and the videoURL outside of
605
+ # nativeAd should not be set. (The videoURL inside nativeAd can be set.)
606
+ # Corresponds to the JSON property `nativeAd`
607
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::NativeAd]
608
+ attr_accessor :native_ad
609
+
610
+ # Top-level open auction status. Read-only. This field should not be set in
611
+ # requests. If disapproved, an entry for auctionType=OPEN_AUCTION (or ALL) in
612
+ # servingRestrictions will also exist. Note that this may be nuanced with other
613
+ # contextual restrictions, in which case it may be preferable to read from
614
+ # ServingRestrictions directly.
615
+ # Corresponds to the JSON property `openAuctionStatus`
616
+ # @return [String]
617
+ attr_accessor :open_auction_status
618
+
619
+ # Detected product categories, if any. Each category is represented by an
620
+ # integer as defined in ad-product-categories.txt. Read-only. This field should
621
+ # not be set in requests.
622
+ # Corresponds to the JSON property `productCategories`
623
+ # @return [Array<Fixnum>]
624
+ attr_accessor :product_categories
625
+
626
+ # All restricted categories for the ads that may be shown from this snippet.
627
+ # Each category is represented by an integer as defined in the ad-restricted-
628
+ # categories.txt.
629
+ # Corresponds to the JSON property `restrictedCategories`
630
+ # @return [Array<Fixnum>]
631
+ attr_accessor :restricted_categories
632
+
633
+ # Detected sensitive categories, if any. Each category is represented by an
634
+ # integer as defined in ad-sensitive-categories.txt. Read-only. This field
635
+ # should not be set in requests.
636
+ # Corresponds to the JSON property `sensitiveCategories`
637
+ # @return [Array<Fixnum>]
638
+ attr_accessor :sensitive_categories
639
+
640
+ # The granular status of this ad in specific contexts. A context here relates to
641
+ # where something ultimately serves (for example, a physical location, a
642
+ # platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This
643
+ # field should not be set in requests. See the examples in the Creatives guide
644
+ # for more details.
645
+ # Corresponds to the JSON property `servingRestrictions`
646
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::ServingRestriction>]
647
+ attr_accessor :serving_restrictions
648
+
649
+ # List of vendor types for the ads that may be shown from this snippet. Each
650
+ # vendor type is represented by an integer as defined in vendors.txt.
651
+ # Corresponds to the JSON property `vendorType`
652
+ # @return [Array<Fixnum>]
653
+ attr_accessor :vendor_type
654
+
655
+ # The version for this creative. Read-only. This field should not be set in
656
+ # requests.
657
+ # Corresponds to the JSON property `version`
658
+ # @return [Fixnum]
659
+ attr_accessor :version
660
+
661
+ # The URL to fetch a video ad. If set, HTMLSnippet, videoVastXML, and nativeAd
662
+ # should not be set. Note, this is different from resource.native_ad.video_url
663
+ # above.
664
+ # Corresponds to the JSON property `videoURL`
665
+ # @return [String]
666
+ attr_accessor :video_url
667
+
668
+ # The contents of a VAST document for a video ad. This document should conform
669
+ # to the VAST 2.0 or 3.0 standard. If set, HTMLSnippet, videoURL, and nativeAd
670
+ # and should not be set.
671
+ # Corresponds to the JSON property `videoVastXML`
672
+ # @return [String]
673
+ attr_accessor :video_vast_xml
674
+
675
+ # Ad width.
676
+ # Corresponds to the JSON property `width`
677
+ # @return [Fixnum]
678
+ attr_accessor :width
679
+
680
+ def initialize(**args)
681
+ update!(**args)
682
+ end
683
+
684
+ # Update properties of this object
685
+ def update!(**args)
686
+ @html_snippet = args[:html_snippet] if args.key?(:html_snippet)
687
+ @account_id = args[:account_id] if args.key?(:account_id)
688
+ @ad_choices_destination_url = args[:ad_choices_destination_url] if args.key?(:ad_choices_destination_url)
689
+ @ad_technology_providers = args[:ad_technology_providers] if args.key?(:ad_technology_providers)
690
+ @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
691
+ @advertiser_name = args[:advertiser_name] if args.key?(:advertiser_name)
692
+ @agency_id = args[:agency_id] if args.key?(:agency_id)
693
+ @api_upload_timestamp = args[:api_upload_timestamp] if args.key?(:api_upload_timestamp)
694
+ @attribute = args[:attribute] if args.key?(:attribute)
695
+ @buyer_creative_id = args[:buyer_creative_id] if args.key?(:buyer_creative_id)
696
+ @click_through_url = args[:click_through_url] if args.key?(:click_through_url)
697
+ @corrections = args[:corrections] if args.key?(:corrections)
698
+ @creative_status_identity_type = args[:creative_status_identity_type] if args.key?(:creative_status_identity_type)
699
+ @deals_status = args[:deals_status] if args.key?(:deals_status)
700
+ @detected_domains = args[:detected_domains] if args.key?(:detected_domains)
701
+ @filtering_reasons = args[:filtering_reasons] if args.key?(:filtering_reasons)
702
+ @height = args[:height] if args.key?(:height)
703
+ @impression_tracking_url = args[:impression_tracking_url] if args.key?(:impression_tracking_url)
704
+ @kind = args[:kind] if args.key?(:kind)
705
+ @languages = args[:languages] if args.key?(:languages)
706
+ @native_ad = args[:native_ad] if args.key?(:native_ad)
707
+ @open_auction_status = args[:open_auction_status] if args.key?(:open_auction_status)
708
+ @product_categories = args[:product_categories] if args.key?(:product_categories)
709
+ @restricted_categories = args[:restricted_categories] if args.key?(:restricted_categories)
710
+ @sensitive_categories = args[:sensitive_categories] if args.key?(:sensitive_categories)
711
+ @serving_restrictions = args[:serving_restrictions] if args.key?(:serving_restrictions)
712
+ @vendor_type = args[:vendor_type] if args.key?(:vendor_type)
713
+ @version = args[:version] if args.key?(:version)
714
+ @video_url = args[:video_url] if args.key?(:video_url)
715
+ @video_vast_xml = args[:video_vast_xml] if args.key?(:video_vast_xml)
716
+ @width = args[:width] if args.key?(:width)
717
+ end
718
+
719
+ #
720
+ class AdTechnologyProviders
721
+ include Google::Apis::Core::Hashable
722
+
723
+ # The detected ad technology provider IDs for this creative. See https://storage.
724
+ # googleapis.com/adx-rtb-dictionaries/providers.csv for mapping of provider ID
725
+ # to provided name, a privacy policy URL, and a list of domains which can be
726
+ # attributed to the provider. If this creative contains provider IDs that are
727
+ # outside of those listed in the `BidRequest.adslot.consented_providers_settings.
728
+ # consented_providers` field on the Authorized Buyers Real-Time Bidding
729
+ # protocol or the `BidRequest.user.ext.consented_providers_settings.
730
+ # consented_providers` field on the OpenRTB protocol, a bid submitted for a
731
+ # European Economic Area (EEA) user with this creative is not compliant with the
732
+ # GDPR policies as mentioned in the "Third-party Ad Technology Vendors" section
733
+ # of Authorized Buyers Program Guidelines.
734
+ # Corresponds to the JSON property `detectedProviderIds`
735
+ # @return [Array<Fixnum>]
736
+ attr_accessor :detected_provider_ids
737
+
738
+ # Whether the creative contains an unidentified ad technology provider. If true,
739
+ # a bid submitted for a European Economic Area (EEA) user with this creative is
740
+ # not compliant with the GDPR policies as mentioned in the "Third-party Ad
741
+ # Technology Vendors" section of Authorized Buyers Program Guidelines.
742
+ # Corresponds to the JSON property `hasUnidentifiedProvider`
743
+ # @return [Boolean]
744
+ attr_accessor :has_unidentified_provider
745
+ alias_method :has_unidentified_provider?, :has_unidentified_provider
746
+
747
+ def initialize(**args)
748
+ update!(**args)
749
+ end
750
+
751
+ # Update properties of this object
752
+ def update!(**args)
753
+ @detected_provider_ids = args[:detected_provider_ids] if args.key?(:detected_provider_ids)
754
+ @has_unidentified_provider = args[:has_unidentified_provider] if args.key?(:has_unidentified_provider)
755
+ end
756
+ end
757
+
758
+ #
759
+ class Correction
760
+ include Google::Apis::Core::Hashable
761
+
762
+ # All known serving contexts containing serving status information.
763
+ # Corresponds to the JSON property `contexts`
764
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::Correction::Context>]
765
+ attr_accessor :contexts
766
+
767
+ # Additional details about the correction.
768
+ # Corresponds to the JSON property `details`
769
+ # @return [Array<String>]
770
+ attr_accessor :details
771
+
772
+ # The type of correction that was applied to the creative.
773
+ # Corresponds to the JSON property `reason`
774
+ # @return [String]
775
+ attr_accessor :reason
776
+
777
+ def initialize(**args)
778
+ update!(**args)
779
+ end
780
+
781
+ # Update properties of this object
782
+ def update!(**args)
783
+ @contexts = args[:contexts] if args.key?(:contexts)
784
+ @details = args[:details] if args.key?(:details)
785
+ @reason = args[:reason] if args.key?(:reason)
786
+ end
787
+
788
+ #
789
+ class Context
790
+ include Google::Apis::Core::Hashable
791
+
792
+ # Only set when contextType=AUCTION_TYPE. Represents the auction types this
793
+ # correction applies to.
794
+ # Corresponds to the JSON property `auctionType`
795
+ # @return [Array<String>]
796
+ attr_accessor :auction_type
797
+
798
+ # The type of context (e.g., location, platform, auction type, SSL-ness).
799
+ # Corresponds to the JSON property `contextType`
800
+ # @return [String]
801
+ attr_accessor :context_type
802
+
803
+ # Only set when contextType=LOCATION. Represents the geo criterias this
804
+ # correction applies to.
805
+ # Corresponds to the JSON property `geoCriteriaId`
806
+ # @return [Array<Fixnum>]
807
+ attr_accessor :geo_criteria_id
808
+
809
+ # Only set when contextType=PLATFORM. Represents the platforms this correction
810
+ # applies to.
811
+ # Corresponds to the JSON property `platform`
812
+ # @return [Array<String>]
813
+ attr_accessor :platform
814
+
815
+ def initialize(**args)
816
+ update!(**args)
817
+ end
818
+
819
+ # Update properties of this object
820
+ def update!(**args)
821
+ @auction_type = args[:auction_type] if args.key?(:auction_type)
822
+ @context_type = args[:context_type] if args.key?(:context_type)
823
+ @geo_criteria_id = args[:geo_criteria_id] if args.key?(:geo_criteria_id)
824
+ @platform = args[:platform] if args.key?(:platform)
825
+ end
826
+ end
827
+ end
828
+
829
+ # The filtering reasons for the creative. Read-only. This field should not be
830
+ # set in requests.
831
+ class FilteringReasons
832
+ include Google::Apis::Core::Hashable
833
+
834
+ # The date in ISO 8601 format for the data. The data is collected from 00:00:00
835
+ # to 23:59:59 in PST.
836
+ # Corresponds to the JSON property `date`
837
+ # @return [String]
838
+ attr_accessor :date
839
+
840
+ # The filtering reasons.
841
+ # Corresponds to the JSON property `reasons`
842
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::FilteringReasons::Reason>]
843
+ attr_accessor :reasons
844
+
845
+ def initialize(**args)
846
+ update!(**args)
847
+ end
848
+
849
+ # Update properties of this object
850
+ def update!(**args)
851
+ @date = args[:date] if args.key?(:date)
852
+ @reasons = args[:reasons] if args.key?(:reasons)
853
+ end
854
+
855
+ #
856
+ class Reason
857
+ include Google::Apis::Core::Hashable
858
+
859
+ # The number of times the creative was filtered for the status. The count is
860
+ # aggregated across all publishers on the exchange.
861
+ # Corresponds to the JSON property `filteringCount`
862
+ # @return [Fixnum]
863
+ attr_accessor :filtering_count
864
+
865
+ # The filtering status code as defined in creative-status-codes.txt.
866
+ # Corresponds to the JSON property `filteringStatus`
867
+ # @return [Fixnum]
868
+ attr_accessor :filtering_status
869
+
870
+ def initialize(**args)
871
+ update!(**args)
872
+ end
873
+
874
+ # Update properties of this object
875
+ def update!(**args)
876
+ @filtering_count = args[:filtering_count] if args.key?(:filtering_count)
877
+ @filtering_status = args[:filtering_status] if args.key?(:filtering_status)
878
+ end
879
+ end
880
+ end
881
+
882
+ # If nativeAd is set, HTMLSnippet, videoVastXML, and the videoURL outside of
883
+ # nativeAd should not be set. (The videoURL inside nativeAd can be set.)
884
+ class NativeAd
885
+ include Google::Apis::Core::Hashable
886
+
887
+ #
888
+ # Corresponds to the JSON property `advertiser`
889
+ # @return [String]
890
+ attr_accessor :advertiser
891
+
892
+ # The app icon, for app download ads.
893
+ # Corresponds to the JSON property `appIcon`
894
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::NativeAd::AppIcon]
895
+ attr_accessor :app_icon
896
+
897
+ # A long description of the ad.
898
+ # Corresponds to the JSON property `body`
899
+ # @return [String]
900
+ attr_accessor :body
901
+
902
+ # A label for the button that the user is supposed to click.
903
+ # Corresponds to the JSON property `callToAction`
904
+ # @return [String]
905
+ attr_accessor :call_to_action
906
+
907
+ # The URL that the browser/SDK will load when the user clicks the ad.
908
+ # Corresponds to the JSON property `clickLinkUrl`
909
+ # @return [String]
910
+ attr_accessor :click_link_url
911
+
912
+ # The URL to use for click tracking.
913
+ # Corresponds to the JSON property `clickTrackingUrl`
914
+ # @return [String]
915
+ attr_accessor :click_tracking_url
916
+
917
+ # A short title for the ad.
918
+ # Corresponds to the JSON property `headline`
919
+ # @return [String]
920
+ attr_accessor :headline
921
+
922
+ # A large image.
923
+ # Corresponds to the JSON property `image`
924
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::NativeAd::Image]
925
+ attr_accessor :image
926
+
927
+ # The URLs are called when the impression is rendered.
928
+ # Corresponds to the JSON property `impressionTrackingUrl`
929
+ # @return [Array<String>]
930
+ attr_accessor :impression_tracking_url
931
+
932
+ # A smaller image, for the advertiser logo.
933
+ # Corresponds to the JSON property `logo`
934
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::NativeAd::Logo]
935
+ attr_accessor :logo
936
+
937
+ # The price of the promoted app including the currency info.
938
+ # Corresponds to the JSON property `price`
939
+ # @return [String]
940
+ attr_accessor :price
941
+
942
+ # The app rating in the app store. Must be in the range [0-5].
943
+ # Corresponds to the JSON property `starRating`
944
+ # @return [Float]
945
+ attr_accessor :star_rating
946
+
947
+ # The URL of the XML VAST for a native ad. Note this is a separate field from
948
+ # resource.video_url.
949
+ # Corresponds to the JSON property `videoURL`
950
+ # @return [String]
951
+ attr_accessor :video_url
952
+
953
+ def initialize(**args)
954
+ update!(**args)
955
+ end
956
+
957
+ # Update properties of this object
958
+ def update!(**args)
959
+ @advertiser = args[:advertiser] if args.key?(:advertiser)
960
+ @app_icon = args[:app_icon] if args.key?(:app_icon)
961
+ @body = args[:body] if args.key?(:body)
962
+ @call_to_action = args[:call_to_action] if args.key?(:call_to_action)
963
+ @click_link_url = args[:click_link_url] if args.key?(:click_link_url)
964
+ @click_tracking_url = args[:click_tracking_url] if args.key?(:click_tracking_url)
965
+ @headline = args[:headline] if args.key?(:headline)
966
+ @image = args[:image] if args.key?(:image)
967
+ @impression_tracking_url = args[:impression_tracking_url] if args.key?(:impression_tracking_url)
968
+ @logo = args[:logo] if args.key?(:logo)
969
+ @price = args[:price] if args.key?(:price)
970
+ @star_rating = args[:star_rating] if args.key?(:star_rating)
971
+ @video_url = args[:video_url] if args.key?(:video_url)
972
+ end
973
+
974
+ # The app icon, for app download ads.
975
+ class AppIcon
976
+ include Google::Apis::Core::Hashable
977
+
978
+ #
979
+ # Corresponds to the JSON property `height`
980
+ # @return [Fixnum]
981
+ attr_accessor :height
982
+
983
+ #
984
+ # Corresponds to the JSON property `url`
985
+ # @return [String]
986
+ attr_accessor :url
987
+
988
+ #
989
+ # Corresponds to the JSON property `width`
990
+ # @return [Fixnum]
991
+ attr_accessor :width
992
+
993
+ def initialize(**args)
994
+ update!(**args)
995
+ end
996
+
997
+ # Update properties of this object
998
+ def update!(**args)
999
+ @height = args[:height] if args.key?(:height)
1000
+ @url = args[:url] if args.key?(:url)
1001
+ @width = args[:width] if args.key?(:width)
1002
+ end
1003
+ end
1004
+
1005
+ # A large image.
1006
+ class Image
1007
+ include Google::Apis::Core::Hashable
1008
+
1009
+ #
1010
+ # Corresponds to the JSON property `height`
1011
+ # @return [Fixnum]
1012
+ attr_accessor :height
1013
+
1014
+ #
1015
+ # Corresponds to the JSON property `url`
1016
+ # @return [String]
1017
+ attr_accessor :url
1018
+
1019
+ #
1020
+ # Corresponds to the JSON property `width`
1021
+ # @return [Fixnum]
1022
+ attr_accessor :width
1023
+
1024
+ def initialize(**args)
1025
+ update!(**args)
1026
+ end
1027
+
1028
+ # Update properties of this object
1029
+ def update!(**args)
1030
+ @height = args[:height] if args.key?(:height)
1031
+ @url = args[:url] if args.key?(:url)
1032
+ @width = args[:width] if args.key?(:width)
1033
+ end
1034
+ end
1035
+
1036
+ # A smaller image, for the advertiser logo.
1037
+ class Logo
1038
+ include Google::Apis::Core::Hashable
1039
+
1040
+ #
1041
+ # Corresponds to the JSON property `height`
1042
+ # @return [Fixnum]
1043
+ attr_accessor :height
1044
+
1045
+ #
1046
+ # Corresponds to the JSON property `url`
1047
+ # @return [String]
1048
+ attr_accessor :url
1049
+
1050
+ #
1051
+ # Corresponds to the JSON property `width`
1052
+ # @return [Fixnum]
1053
+ attr_accessor :width
1054
+
1055
+ def initialize(**args)
1056
+ update!(**args)
1057
+ end
1058
+
1059
+ # Update properties of this object
1060
+ def update!(**args)
1061
+ @height = args[:height] if args.key?(:height)
1062
+ @url = args[:url] if args.key?(:url)
1063
+ @width = args[:width] if args.key?(:width)
1064
+ end
1065
+ end
1066
+ end
1067
+
1068
+ #
1069
+ class ServingRestriction
1070
+ include Google::Apis::Core::Hashable
1071
+
1072
+ # All known contexts/restrictions.
1073
+ # Corresponds to the JSON property `contexts`
1074
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::ServingRestriction::Context>]
1075
+ attr_accessor :contexts
1076
+
1077
+ # The reasons for disapproval within this restriction, if any. Note that not all
1078
+ # disapproval reasons may be categorized, so it is possible for the creative to
1079
+ # have a status of DISAPPROVED or CONDITIONALLY_APPROVED with an empty list for
1080
+ # disapproval_reasons. In this case, please reach out to your TAM to help debug
1081
+ # the issue.
1082
+ # Corresponds to the JSON property `disapprovalReasons`
1083
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::ServingRestriction::DisapprovalReason>]
1084
+ attr_accessor :disapproval_reasons
1085
+
1086
+ # Why the creative is ineligible to serve in this context (e.g., it has been
1087
+ # explicitly disapproved or is pending review).
1088
+ # Corresponds to the JSON property `reason`
1089
+ # @return [String]
1090
+ attr_accessor :reason
1091
+
1092
+ def initialize(**args)
1093
+ update!(**args)
1094
+ end
1095
+
1096
+ # Update properties of this object
1097
+ def update!(**args)
1098
+ @contexts = args[:contexts] if args.key?(:contexts)
1099
+ @disapproval_reasons = args[:disapproval_reasons] if args.key?(:disapproval_reasons)
1100
+ @reason = args[:reason] if args.key?(:reason)
1101
+ end
1102
+
1103
+ #
1104
+ class Context
1105
+ include Google::Apis::Core::Hashable
1106
+
1107
+ # Only set when contextType=AUCTION_TYPE. Represents the auction types this
1108
+ # restriction applies to.
1109
+ # Corresponds to the JSON property `auctionType`
1110
+ # @return [Array<String>]
1111
+ attr_accessor :auction_type
1112
+
1113
+ # The type of context (e.g., location, platform, auction type, SSL-ness).
1114
+ # Corresponds to the JSON property `contextType`
1115
+ # @return [String]
1116
+ attr_accessor :context_type
1117
+
1118
+ # Only set when contextType=LOCATION. Represents the geo criterias this
1119
+ # restriction applies to. Impressions are considered to match a context if
1120
+ # either the user location or publisher location matches a given geoCriteriaId.
1121
+ # Corresponds to the JSON property `geoCriteriaId`
1122
+ # @return [Array<Fixnum>]
1123
+ attr_accessor :geo_criteria_id
1124
+
1125
+ # Only set when contextType=PLATFORM. Represents the platforms this restriction
1126
+ # applies to.
1127
+ # Corresponds to the JSON property `platform`
1128
+ # @return [Array<String>]
1129
+ attr_accessor :platform
1130
+
1131
+ def initialize(**args)
1132
+ update!(**args)
1133
+ end
1134
+
1135
+ # Update properties of this object
1136
+ def update!(**args)
1137
+ @auction_type = args[:auction_type] if args.key?(:auction_type)
1138
+ @context_type = args[:context_type] if args.key?(:context_type)
1139
+ @geo_criteria_id = args[:geo_criteria_id] if args.key?(:geo_criteria_id)
1140
+ @platform = args[:platform] if args.key?(:platform)
1141
+ end
1142
+ end
1143
+
1144
+ #
1145
+ class DisapprovalReason
1146
+ include Google::Apis::Core::Hashable
1147
+
1148
+ # Additional details about the reason for disapproval.
1149
+ # Corresponds to the JSON property `details`
1150
+ # @return [Array<String>]
1151
+ attr_accessor :details
1152
+
1153
+ # The categorized reason for disapproval.
1154
+ # Corresponds to the JSON property `reason`
1155
+ # @return [String]
1156
+ attr_accessor :reason
1157
+
1158
+ def initialize(**args)
1159
+ update!(**args)
1160
+ end
1161
+
1162
+ # Update properties of this object
1163
+ def update!(**args)
1164
+ @details = args[:details] if args.key?(:details)
1165
+ @reason = args[:reason] if args.key?(:reason)
1166
+ end
1167
+ end
1168
+ end
1169
+ end
1170
+
1171
+ # The external deal ids associated with a creative.
1172
+ class CreativeDealIds
1173
+ include Google::Apis::Core::Hashable
1174
+
1175
+ # A list of external deal ids and ARC approval status.
1176
+ # Corresponds to the JSON property `dealStatuses`
1177
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::CreativeDealIds::DealStatus>]
1178
+ attr_accessor :deal_statuses
1179
+
1180
+ # Resource type.
1181
+ # Corresponds to the JSON property `kind`
1182
+ # @return [String]
1183
+ attr_accessor :kind
1184
+
1185
+ def initialize(**args)
1186
+ update!(**args)
1187
+ end
1188
+
1189
+ # Update properties of this object
1190
+ def update!(**args)
1191
+ @deal_statuses = args[:deal_statuses] if args.key?(:deal_statuses)
1192
+ @kind = args[:kind] if args.key?(:kind)
1193
+ end
1194
+
1195
+ #
1196
+ class DealStatus
1197
+ include Google::Apis::Core::Hashable
1198
+
1199
+ # ARC approval status.
1200
+ # Corresponds to the JSON property `arcStatus`
1201
+ # @return [String]
1202
+ attr_accessor :arc_status
1203
+
1204
+ # External deal ID.
1205
+ # Corresponds to the JSON property `dealId`
1206
+ # @return [Fixnum]
1207
+ attr_accessor :deal_id
1208
+
1209
+ # Publisher ID.
1210
+ # Corresponds to the JSON property `webPropertyId`
1211
+ # @return [Fixnum]
1212
+ attr_accessor :web_property_id
1213
+
1214
+ def initialize(**args)
1215
+ update!(**args)
1216
+ end
1217
+
1218
+ # Update properties of this object
1219
+ def update!(**args)
1220
+ @arc_status = args[:arc_status] if args.key?(:arc_status)
1221
+ @deal_id = args[:deal_id] if args.key?(:deal_id)
1222
+ @web_property_id = args[:web_property_id] if args.key?(:web_property_id)
1223
+ end
1224
+ end
1225
+ end
1226
+
1227
+ # The creatives feed lists the active creatives for the Ad Exchange buyer
1228
+ # accounts that the user has access to. Each entry in the feed corresponds to a
1229
+ # single creative.
1230
+ class CreativesList
1231
+ include Google::Apis::Core::Hashable
1232
+
1233
+ # A list of creatives.
1234
+ # Corresponds to the JSON property `items`
1235
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative>]
1236
+ attr_accessor :items
1237
+
1238
+ # Resource type.
1239
+ # Corresponds to the JSON property `kind`
1240
+ # @return [String]
1241
+ attr_accessor :kind
1242
+
1243
+ # Continuation token used to page through creatives. To retrieve the next page
1244
+ # of results, set the next request's "pageToken" value to this.
1245
+ # Corresponds to the JSON property `nextPageToken`
1246
+ # @return [String]
1247
+ attr_accessor :next_page_token
1248
+
1249
+ def initialize(**args)
1250
+ update!(**args)
1251
+ end
1252
+
1253
+ # Update properties of this object
1254
+ def update!(**args)
1255
+ @items = args[:items] if args.key?(:items)
1256
+ @kind = args[:kind] if args.key?(:kind)
1257
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1258
+ end
1259
+ end
1260
+
1261
+ #
1262
+ class DealServingMetadata
1263
+ include Google::Apis::Core::Hashable
1264
+
1265
+ # True if alcohol ads are allowed for this deal (read-only). This field is only
1266
+ # populated when querying for finalized orders using the method
1267
+ # GetFinalizedOrderDeals
1268
+ # Corresponds to the JSON property `alcoholAdsAllowed`
1269
+ # @return [Boolean]
1270
+ attr_accessor :alcohol_ads_allowed
1271
+ alias_method :alcohol_ads_allowed?, :alcohol_ads_allowed
1272
+
1273
+ # Tracks which parties (if any) have paused a deal. The deal is considered
1274
+ # paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused
1275
+ # or the has_seller_paused bits can be set independently.
1276
+ # Corresponds to the JSON property `dealPauseStatus`
1277
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealServingMetadataDealPauseStatus]
1278
+ attr_accessor :deal_pause_status
1279
+
1280
+ def initialize(**args)
1281
+ update!(**args)
1282
+ end
1283
+
1284
+ # Update properties of this object
1285
+ def update!(**args)
1286
+ @alcohol_ads_allowed = args[:alcohol_ads_allowed] if args.key?(:alcohol_ads_allowed)
1287
+ @deal_pause_status = args[:deal_pause_status] if args.key?(:deal_pause_status)
1288
+ end
1289
+ end
1290
+
1291
+ # Tracks which parties (if any) have paused a deal. The deal is considered
1292
+ # paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused
1293
+ # or the has_seller_paused bits can be set independently.
1294
+ class DealServingMetadataDealPauseStatus
1295
+ include Google::Apis::Core::Hashable
1296
+
1297
+ #
1298
+ # Corresponds to the JSON property `buyerPauseReason`
1299
+ # @return [String]
1300
+ attr_accessor :buyer_pause_reason
1301
+
1302
+ # If the deal is paused, records which party paused the deal first.
1303
+ # Corresponds to the JSON property `firstPausedBy`
1304
+ # @return [String]
1305
+ attr_accessor :first_paused_by
1306
+
1307
+ #
1308
+ # Corresponds to the JSON property `hasBuyerPaused`
1309
+ # @return [Boolean]
1310
+ attr_accessor :has_buyer_paused
1311
+ alias_method :has_buyer_paused?, :has_buyer_paused
1312
+
1313
+ #
1314
+ # Corresponds to the JSON property `hasSellerPaused`
1315
+ # @return [Boolean]
1316
+ attr_accessor :has_seller_paused
1317
+ alias_method :has_seller_paused?, :has_seller_paused
1318
+
1319
+ #
1320
+ # Corresponds to the JSON property `sellerPauseReason`
1321
+ # @return [String]
1322
+ attr_accessor :seller_pause_reason
1323
+
1324
+ def initialize(**args)
1325
+ update!(**args)
1326
+ end
1327
+
1328
+ # Update properties of this object
1329
+ def update!(**args)
1330
+ @buyer_pause_reason = args[:buyer_pause_reason] if args.key?(:buyer_pause_reason)
1331
+ @first_paused_by = args[:first_paused_by] if args.key?(:first_paused_by)
1332
+ @has_buyer_paused = args[:has_buyer_paused] if args.key?(:has_buyer_paused)
1333
+ @has_seller_paused = args[:has_seller_paused] if args.key?(:has_seller_paused)
1334
+ @seller_pause_reason = args[:seller_pause_reason] if args.key?(:seller_pause_reason)
1335
+ end
1336
+ end
1337
+
1338
+ #
1339
+ class DealTerms
1340
+ include Google::Apis::Core::Hashable
1341
+
1342
+ # Visibility of the URL in bid requests.
1343
+ # Corresponds to the JSON property `brandingType`
1344
+ # @return [String]
1345
+ attr_accessor :branding_type
1346
+
1347
+ # Indicates that this ExternalDealId exists under at least two different
1348
+ # AdxInventoryDeals. Currently, the only case that the same ExternalDealId will
1349
+ # exist is programmatic cross sell case.
1350
+ # Corresponds to the JSON property `crossListedExternalDealIdType`
1351
+ # @return [String]
1352
+ attr_accessor :cross_listed_external_deal_id_type
1353
+
1354
+ # Description for the proposed terms of the deal.
1355
+ # Corresponds to the JSON property `description`
1356
+ # @return [String]
1357
+ attr_accessor :description
1358
+
1359
+ # Non-binding estimate of the estimated gross spend for this deal Can be set by
1360
+ # buyer or seller.
1361
+ # Corresponds to the JSON property `estimatedGrossSpend`
1362
+ # @return [Google::Apis::AdexchangebuyerV1_4::Price]
1363
+ attr_accessor :estimated_gross_spend
1364
+
1365
+ # Non-binding estimate of the impressions served per day Can be set by buyer or
1366
+ # seller.
1367
+ # Corresponds to the JSON property `estimatedImpressionsPerDay`
1368
+ # @return [Fixnum]
1369
+ attr_accessor :estimated_impressions_per_day
1370
+
1371
+ # The terms for guaranteed fixed price deals.
1372
+ # Corresponds to the JSON property `guaranteedFixedPriceTerms`
1373
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTermsGuaranteedFixedPriceTerms]
1374
+ attr_accessor :guaranteed_fixed_price_terms
1375
+
1376
+ # The terms for non-guaranteed auction deals.
1377
+ # Corresponds to the JSON property `nonGuaranteedAuctionTerms`
1378
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTermsNonGuaranteedAuctionTerms]
1379
+ attr_accessor :non_guaranteed_auction_terms
1380
+
1381
+ # The terms for non-guaranteed fixed price deals.
1382
+ # Corresponds to the JSON property `nonGuaranteedFixedPriceTerms`
1383
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTermsNonGuaranteedFixedPriceTerms]
1384
+ attr_accessor :non_guaranteed_fixed_price_terms
1385
+
1386
+ # The terms for rubicon non-guaranteed deals.
1387
+ # Corresponds to the JSON property `rubiconNonGuaranteedTerms`
1388
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTermsRubiconNonGuaranteedTerms]
1389
+ attr_accessor :rubicon_non_guaranteed_terms
1390
+
1391
+ # For deals with Cost Per Day billing, defines the timezone used to mark the
1392
+ # boundaries of a day (buyer-readonly)
1393
+ # Corresponds to the JSON property `sellerTimeZone`
1394
+ # @return [String]
1395
+ attr_accessor :seller_time_zone
1396
+
1397
+ def initialize(**args)
1398
+ update!(**args)
1399
+ end
1400
+
1401
+ # Update properties of this object
1402
+ def update!(**args)
1403
+ @branding_type = args[:branding_type] if args.key?(:branding_type)
1404
+ @cross_listed_external_deal_id_type = args[:cross_listed_external_deal_id_type] if args.key?(:cross_listed_external_deal_id_type)
1405
+ @description = args[:description] if args.key?(:description)
1406
+ @estimated_gross_spend = args[:estimated_gross_spend] if args.key?(:estimated_gross_spend)
1407
+ @estimated_impressions_per_day = args[:estimated_impressions_per_day] if args.key?(:estimated_impressions_per_day)
1408
+ @guaranteed_fixed_price_terms = args[:guaranteed_fixed_price_terms] if args.key?(:guaranteed_fixed_price_terms)
1409
+ @non_guaranteed_auction_terms = args[:non_guaranteed_auction_terms] if args.key?(:non_guaranteed_auction_terms)
1410
+ @non_guaranteed_fixed_price_terms = args[:non_guaranteed_fixed_price_terms] if args.key?(:non_guaranteed_fixed_price_terms)
1411
+ @rubicon_non_guaranteed_terms = args[:rubicon_non_guaranteed_terms] if args.key?(:rubicon_non_guaranteed_terms)
1412
+ @seller_time_zone = args[:seller_time_zone] if args.key?(:seller_time_zone)
1413
+ end
1414
+ end
1415
+
1416
+ #
1417
+ class DealTermsGuaranteedFixedPriceTerms
1418
+ include Google::Apis::Core::Hashable
1419
+
1420
+ # External billing info for this Deal. This field is relevant when external
1421
+ # billing info such as price has a different currency code than DFP/AdX.
1422
+ # Corresponds to the JSON property `billingInfo`
1423
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTermsGuaranteedFixedPriceTermsBillingInfo]
1424
+ attr_accessor :billing_info
1425
+
1426
+ # Fixed price for the specified buyer.
1427
+ # Corresponds to the JSON property `fixedPrices`
1428
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PricePerBuyer>]
1429
+ attr_accessor :fixed_prices
1430
+
1431
+ # Guaranteed impressions as a percentage. This is the percentage of guaranteed
1432
+ # looks that the buyer is guaranteeing to buy.
1433
+ # Corresponds to the JSON property `guaranteedImpressions`
1434
+ # @return [Fixnum]
1435
+ attr_accessor :guaranteed_impressions
1436
+
1437
+ # Count of guaranteed looks. Required for deal, optional for product. For CPD
1438
+ # deals, buyer changes to guaranteed_looks will be ignored.
1439
+ # Corresponds to the JSON property `guaranteedLooks`
1440
+ # @return [Fixnum]
1441
+ attr_accessor :guaranteed_looks
1442
+
1443
+ # Count of minimum daily looks for a CPD deal. For CPD deals, buyer should
1444
+ # negotiate on this field instead of guaranteed_looks.
1445
+ # Corresponds to the JSON property `minimumDailyLooks`
1446
+ # @return [Fixnum]
1447
+ attr_accessor :minimum_daily_looks
1448
+
1449
+ def initialize(**args)
1450
+ update!(**args)
1451
+ end
1452
+
1453
+ # Update properties of this object
1454
+ def update!(**args)
1455
+ @billing_info = args[:billing_info] if args.key?(:billing_info)
1456
+ @fixed_prices = args[:fixed_prices] if args.key?(:fixed_prices)
1457
+ @guaranteed_impressions = args[:guaranteed_impressions] if args.key?(:guaranteed_impressions)
1458
+ @guaranteed_looks = args[:guaranteed_looks] if args.key?(:guaranteed_looks)
1459
+ @minimum_daily_looks = args[:minimum_daily_looks] if args.key?(:minimum_daily_looks)
1460
+ end
1461
+ end
1462
+
1463
+ #
1464
+ class DealTermsGuaranteedFixedPriceTermsBillingInfo
1465
+ include Google::Apis::Core::Hashable
1466
+
1467
+ # The timestamp (in ms since epoch) when the original reservation price for the
1468
+ # deal was first converted to DFP currency. This is used to convert the
1469
+ # contracted price into buyer's currency without discrepancy.
1470
+ # Corresponds to the JSON property `currencyConversionTimeMs`
1471
+ # @return [Fixnum]
1472
+ attr_accessor :currency_conversion_time_ms
1473
+
1474
+ # The DFP line item id associated with this deal. For features like CPD, buyers
1475
+ # can retrieve the DFP line item for billing reconciliation.
1476
+ # Corresponds to the JSON property `dfpLineItemId`
1477
+ # @return [Fixnum]
1478
+ attr_accessor :dfp_line_item_id
1479
+
1480
+ # The original contracted quantity (# impressions) for this deal. To ensure
1481
+ # delivery, sometimes the publisher will book the deal with a impression buffer,
1482
+ # such that guaranteed_looks is greater than the contracted quantity. However
1483
+ # clients are billed using the original contracted quantity.
1484
+ # Corresponds to the JSON property `originalContractedQuantity`
1485
+ # @return [Fixnum]
1486
+ attr_accessor :original_contracted_quantity
1487
+
1488
+ # The original reservation price for the deal, if the currency code is different
1489
+ # from the one used in negotiation.
1490
+ # Corresponds to the JSON property `price`
1491
+ # @return [Google::Apis::AdexchangebuyerV1_4::Price]
1492
+ attr_accessor :price
1493
+
1494
+ def initialize(**args)
1495
+ update!(**args)
1496
+ end
1497
+
1498
+ # Update properties of this object
1499
+ def update!(**args)
1500
+ @currency_conversion_time_ms = args[:currency_conversion_time_ms] if args.key?(:currency_conversion_time_ms)
1501
+ @dfp_line_item_id = args[:dfp_line_item_id] if args.key?(:dfp_line_item_id)
1502
+ @original_contracted_quantity = args[:original_contracted_quantity] if args.key?(:original_contracted_quantity)
1503
+ @price = args[:price] if args.key?(:price)
1504
+ end
1505
+ end
1506
+
1507
+ #
1508
+ class DealTermsNonGuaranteedAuctionTerms
1509
+ include Google::Apis::Core::Hashable
1510
+
1511
+ # True if open auction buyers are allowed to compete with invited buyers in this
1512
+ # private auction (buyer-readonly).
1513
+ # Corresponds to the JSON property `autoOptimizePrivateAuction`
1514
+ # @return [Boolean]
1515
+ attr_accessor :auto_optimize_private_auction
1516
+ alias_method :auto_optimize_private_auction?, :auto_optimize_private_auction
1517
+
1518
+ # Reserve price for the specified buyer.
1519
+ # Corresponds to the JSON property `reservePricePerBuyers`
1520
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PricePerBuyer>]
1521
+ attr_accessor :reserve_price_per_buyers
1522
+
1523
+ def initialize(**args)
1524
+ update!(**args)
1525
+ end
1526
+
1527
+ # Update properties of this object
1528
+ def update!(**args)
1529
+ @auto_optimize_private_auction = args[:auto_optimize_private_auction] if args.key?(:auto_optimize_private_auction)
1530
+ @reserve_price_per_buyers = args[:reserve_price_per_buyers] if args.key?(:reserve_price_per_buyers)
1531
+ end
1532
+ end
1533
+
1534
+ #
1535
+ class DealTermsNonGuaranteedFixedPriceTerms
1536
+ include Google::Apis::Core::Hashable
1537
+
1538
+ # Fixed price for the specified buyer.
1539
+ # Corresponds to the JSON property `fixedPrices`
1540
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PricePerBuyer>]
1541
+ attr_accessor :fixed_prices
1542
+
1543
+ def initialize(**args)
1544
+ update!(**args)
1545
+ end
1546
+
1547
+ # Update properties of this object
1548
+ def update!(**args)
1549
+ @fixed_prices = args[:fixed_prices] if args.key?(:fixed_prices)
1550
+ end
1551
+ end
1552
+
1553
+ #
1554
+ class DealTermsRubiconNonGuaranteedTerms
1555
+ include Google::Apis::Core::Hashable
1556
+
1557
+ # Optional price for Rubicon priority access in the auction.
1558
+ # Corresponds to the JSON property `priorityPrice`
1559
+ # @return [Google::Apis::AdexchangebuyerV1_4::Price]
1560
+ attr_accessor :priority_price
1561
+
1562
+ # Optional price for Rubicon standard access in the auction.
1563
+ # Corresponds to the JSON property `standardPrice`
1564
+ # @return [Google::Apis::AdexchangebuyerV1_4::Price]
1565
+ attr_accessor :standard_price
1566
+
1567
+ def initialize(**args)
1568
+ update!(**args)
1569
+ end
1570
+
1571
+ # Update properties of this object
1572
+ def update!(**args)
1573
+ @priority_price = args[:priority_price] if args.key?(:priority_price)
1574
+ @standard_price = args[:standard_price] if args.key?(:standard_price)
1575
+ end
1576
+ end
1577
+
1578
+ #
1579
+ class DeleteOrderDealsRequest
1580
+ include Google::Apis::Core::Hashable
1581
+
1582
+ # List of deals to delete for a given proposal
1583
+ # Corresponds to the JSON property `dealIds`
1584
+ # @return [Array<String>]
1585
+ attr_accessor :deal_ids
1586
+
1587
+ # The last known proposal revision number.
1588
+ # Corresponds to the JSON property `proposalRevisionNumber`
1589
+ # @return [Fixnum]
1590
+ attr_accessor :proposal_revision_number
1591
+
1592
+ # Indicates an optional action to take on the proposal
1593
+ # Corresponds to the JSON property `updateAction`
1594
+ # @return [String]
1595
+ attr_accessor :update_action
1596
+
1597
+ def initialize(**args)
1598
+ update!(**args)
1599
+ end
1600
+
1601
+ # Update properties of this object
1602
+ def update!(**args)
1603
+ @deal_ids = args[:deal_ids] if args.key?(:deal_ids)
1604
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
1605
+ @update_action = args[:update_action] if args.key?(:update_action)
1606
+ end
1607
+ end
1608
+
1609
+ #
1610
+ class DeleteOrderDealsResponse
1611
+ include Google::Apis::Core::Hashable
1612
+
1613
+ # List of deals deleted (in the same proposal as passed in the request)
1614
+ # Corresponds to the JSON property `deals`
1615
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
1616
+ attr_accessor :deals
1617
+
1618
+ # The updated revision number for the proposal.
1619
+ # Corresponds to the JSON property `proposalRevisionNumber`
1620
+ # @return [Fixnum]
1621
+ attr_accessor :proposal_revision_number
1622
+
1623
+ def initialize(**args)
1624
+ update!(**args)
1625
+ end
1626
+
1627
+ # Update properties of this object
1628
+ def update!(**args)
1629
+ @deals = args[:deals] if args.key?(:deals)
1630
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
1631
+ end
1632
+ end
1633
+
1634
+ #
1635
+ class DeliveryControl
1636
+ include Google::Apis::Core::Hashable
1637
+
1638
+ #
1639
+ # Corresponds to the JSON property `creativeBlockingLevel`
1640
+ # @return [String]
1641
+ attr_accessor :creative_blocking_level
1642
+
1643
+ #
1644
+ # Corresponds to the JSON property `deliveryRateType`
1645
+ # @return [String]
1646
+ attr_accessor :delivery_rate_type
1647
+
1648
+ #
1649
+ # Corresponds to the JSON property `frequencyCaps`
1650
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::DeliveryControlFrequencyCap>]
1651
+ attr_accessor :frequency_caps
1652
+
1653
+ def initialize(**args)
1654
+ update!(**args)
1655
+ end
1656
+
1657
+ # Update properties of this object
1658
+ def update!(**args)
1659
+ @creative_blocking_level = args[:creative_blocking_level] if args.key?(:creative_blocking_level)
1660
+ @delivery_rate_type = args[:delivery_rate_type] if args.key?(:delivery_rate_type)
1661
+ @frequency_caps = args[:frequency_caps] if args.key?(:frequency_caps)
1662
+ end
1663
+ end
1664
+
1665
+ #
1666
+ class DeliveryControlFrequencyCap
1667
+ include Google::Apis::Core::Hashable
1668
+
1669
+ #
1670
+ # Corresponds to the JSON property `maxImpressions`
1671
+ # @return [Fixnum]
1672
+ attr_accessor :max_impressions
1673
+
1674
+ #
1675
+ # Corresponds to the JSON property `numTimeUnits`
1676
+ # @return [Fixnum]
1677
+ attr_accessor :num_time_units
1678
+
1679
+ #
1680
+ # Corresponds to the JSON property `timeUnitType`
1681
+ # @return [String]
1682
+ attr_accessor :time_unit_type
1683
+
1684
+ def initialize(**args)
1685
+ update!(**args)
1686
+ end
1687
+
1688
+ # Update properties of this object
1689
+ def update!(**args)
1690
+ @max_impressions = args[:max_impressions] if args.key?(:max_impressions)
1691
+ @num_time_units = args[:num_time_units] if args.key?(:num_time_units)
1692
+ @time_unit_type = args[:time_unit_type] if args.key?(:time_unit_type)
1693
+ end
1694
+ end
1695
+
1696
+ # This message carries publisher provided breakdown. E.g. `dimension_type: '
1697
+ # COUNTRY', [`dimension_value: `id: 1, name: 'US'``, `dimension_value: `id: 2,
1698
+ # name: 'UK'``]`
1699
+ class Dimension
1700
+ include Google::Apis::Core::Hashable
1701
+
1702
+ #
1703
+ # Corresponds to the JSON property `dimensionType`
1704
+ # @return [String]
1705
+ attr_accessor :dimension_type
1706
+
1707
+ #
1708
+ # Corresponds to the JSON property `dimensionValues`
1709
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::DimensionDimensionValue>]
1710
+ attr_accessor :dimension_values
1711
+
1712
+ def initialize(**args)
1713
+ update!(**args)
1714
+ end
1715
+
1716
+ # Update properties of this object
1717
+ def update!(**args)
1718
+ @dimension_type = args[:dimension_type] if args.key?(:dimension_type)
1719
+ @dimension_values = args[:dimension_values] if args.key?(:dimension_values)
1720
+ end
1721
+ end
1722
+
1723
+ # Value of the dimension.
1724
+ class DimensionDimensionValue
1725
+ include Google::Apis::Core::Hashable
1726
+
1727
+ # Id of the dimension.
1728
+ # Corresponds to the JSON property `id`
1729
+ # @return [Fixnum]
1730
+ attr_accessor :id
1731
+
1732
+ # Name of the dimension mainly for debugging purposes, except for the case of
1733
+ # CREATIVE_SIZE. For CREATIVE_SIZE, strings are used instead of ids.
1734
+ # Corresponds to the JSON property `name`
1735
+ # @return [String]
1736
+ attr_accessor :name
1737
+
1738
+ # Percent of total impressions for a dimension type. e.g. `dimension_type: '
1739
+ # GENDER', [`dimension_value: `id: 1, name: 'MALE', percentage: 60``]` Gender
1740
+ # MALE is 60% of all impressions which have gender.
1741
+ # Corresponds to the JSON property `percentage`
1742
+ # @return [Fixnum]
1743
+ attr_accessor :percentage
1744
+
1745
+ def initialize(**args)
1746
+ update!(**args)
1747
+ end
1748
+
1749
+ # Update properties of this object
1750
+ def update!(**args)
1751
+ @id = args[:id] if args.key?(:id)
1752
+ @name = args[:name] if args.key?(:name)
1753
+ @percentage = args[:percentage] if args.key?(:percentage)
1754
+ end
1755
+ end
1756
+
1757
+ #
1758
+ class EditAllOrderDealsRequest
1759
+ include Google::Apis::Core::Hashable
1760
+
1761
+ # List of deals to edit. Service may perform 3 different operations based on
1762
+ # comparison of deals in this list vs deals already persisted in database: 1.
1763
+ # Add new deal to proposal If a deal in this list does not exist in the proposal,
1764
+ # the service will create a new deal and add it to the proposal. Validation
1765
+ # will follow AddOrderDealsRequest. 2. Update existing deal in the proposal If a
1766
+ # deal in this list already exist in the proposal, the service will update that
1767
+ # existing deal to this new deal in the request. Validation will follow
1768
+ # UpdateOrderDealsRequest. 3. Delete deals from the proposal (just need the id)
1769
+ # If a existing deal in the proposal is not present in this list, the service
1770
+ # will delete that deal from the proposal. Validation will follow
1771
+ # DeleteOrderDealsRequest.
1772
+ # Corresponds to the JSON property `deals`
1773
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
1774
+ attr_accessor :deals
1775
+
1776
+ # Represents a proposal in the marketplace. A proposal is the unit of
1777
+ # negotiation between a seller and a buyer and contains deals which are served.
1778
+ # Each field in a proposal can have one of the following setting:
1779
+ # (readonly) - It is an error to try and set this field. (buyer-readonly) - Only
1780
+ # the seller can set this field. (seller-readonly) - Only the buyer can set this
1781
+ # field. (updatable) - The field is updatable at all times by either buyer or
1782
+ # the seller.
1783
+ # Corresponds to the JSON property `proposal`
1784
+ # @return [Google::Apis::AdexchangebuyerV1_4::Proposal]
1785
+ attr_accessor :proposal
1786
+
1787
+ # The last known revision number for the proposal.
1788
+ # Corresponds to the JSON property `proposalRevisionNumber`
1789
+ # @return [Fixnum]
1790
+ attr_accessor :proposal_revision_number
1791
+
1792
+ # Indicates an optional action to take on the proposal
1793
+ # Corresponds to the JSON property `updateAction`
1794
+ # @return [String]
1795
+ attr_accessor :update_action
1796
+
1797
+ def initialize(**args)
1798
+ update!(**args)
1799
+ end
1800
+
1801
+ # Update properties of this object
1802
+ def update!(**args)
1803
+ @deals = args[:deals] if args.key?(:deals)
1804
+ @proposal = args[:proposal] if args.key?(:proposal)
1805
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
1806
+ @update_action = args[:update_action] if args.key?(:update_action)
1807
+ end
1808
+ end
1809
+
1810
+ #
1811
+ class EditAllOrderDealsResponse
1812
+ include Google::Apis::Core::Hashable
1813
+
1814
+ # List of all deals in the proposal after edit.
1815
+ # Corresponds to the JSON property `deals`
1816
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
1817
+ attr_accessor :deals
1818
+
1819
+ # The latest revision number after the update has been applied.
1820
+ # Corresponds to the JSON property `orderRevisionNumber`
1821
+ # @return [Fixnum]
1822
+ attr_accessor :order_revision_number
1823
+
1824
+ def initialize(**args)
1825
+ update!(**args)
1826
+ end
1827
+
1828
+ # Update properties of this object
1829
+ def update!(**args)
1830
+ @deals = args[:deals] if args.key?(:deals)
1831
+ @order_revision_number = args[:order_revision_number] if args.key?(:order_revision_number)
1832
+ end
1833
+ end
1834
+
1835
+ #
1836
+ class GetOffersResponse
1837
+ include Google::Apis::Core::Hashable
1838
+
1839
+ # The returned list of products.
1840
+ # Corresponds to the JSON property `products`
1841
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Product>]
1842
+ attr_accessor :products
1843
+
1844
+ def initialize(**args)
1845
+ update!(**args)
1846
+ end
1847
+
1848
+ # Update properties of this object
1849
+ def update!(**args)
1850
+ @products = args[:products] if args.key?(:products)
1851
+ end
1852
+ end
1853
+
1854
+ #
1855
+ class GetOrderDealsResponse
1856
+ include Google::Apis::Core::Hashable
1857
+
1858
+ # List of deals for the proposal
1859
+ # Corresponds to the JSON property `deals`
1860
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
1861
+ attr_accessor :deals
1862
+
1863
+ def initialize(**args)
1864
+ update!(**args)
1865
+ end
1866
+
1867
+ # Update properties of this object
1868
+ def update!(**args)
1869
+ @deals = args[:deals] if args.key?(:deals)
1870
+ end
1871
+ end
1872
+
1873
+ #
1874
+ class GetOrderNotesResponse
1875
+ include Google::Apis::Core::Hashable
1876
+
1877
+ # The list of matching notes. The notes for a proposal are ordered from oldest
1878
+ # to newest. If the notes span multiple proposals, they will be grouped by
1879
+ # proposal, with the notes for the most recently modified proposal appearing
1880
+ # first.
1881
+ # Corresponds to the JSON property `notes`
1882
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceNote>]
1883
+ attr_accessor :notes
1884
+
1885
+ def initialize(**args)
1886
+ update!(**args)
1887
+ end
1888
+
1889
+ # Update properties of this object
1890
+ def update!(**args)
1891
+ @notes = args[:notes] if args.key?(:notes)
1892
+ end
1893
+ end
1894
+
1895
+ #
1896
+ class GetOrdersResponse
1897
+ include Google::Apis::Core::Hashable
1898
+
1899
+ # The list of matching proposals.
1900
+ # Corresponds to the JSON property `proposals`
1901
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Proposal>]
1902
+ attr_accessor :proposals
1903
+
1904
+ def initialize(**args)
1905
+ update!(**args)
1906
+ end
1907
+
1908
+ # Update properties of this object
1909
+ def update!(**args)
1910
+ @proposals = args[:proposals] if args.key?(:proposals)
1911
+ end
1912
+ end
1913
+
1914
+ #
1915
+ class GetPublisherProfilesByAccountIdResponse
1916
+ include Google::Apis::Core::Hashable
1917
+
1918
+ # Profiles for the requested publisher
1919
+ # Corresponds to the JSON property `profiles`
1920
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PublisherProfileApiProto>]
1921
+ attr_accessor :profiles
1922
+
1923
+ def initialize(**args)
1924
+ update!(**args)
1925
+ end
1926
+
1927
+ # Update properties of this object
1928
+ def update!(**args)
1929
+ @profiles = args[:profiles] if args.key?(:profiles)
1930
+ end
1931
+ end
1932
+
1933
+ # A proposal can contain multiple deals. A deal contains the terms and targeting
1934
+ # information that is used for serving.
1935
+ class MarketplaceDeal
1936
+ include Google::Apis::Core::Hashable
1937
+
1938
+ # Buyer private data (hidden from seller).
1939
+ # Corresponds to the JSON property `buyerPrivateData`
1940
+ # @return [Google::Apis::AdexchangebuyerV1_4::PrivateData]
1941
+ attr_accessor :buyer_private_data
1942
+
1943
+ # The time (ms since epoch) of the deal creation. (readonly)
1944
+ # Corresponds to the JSON property `creationTimeMs`
1945
+ # @return [Fixnum]
1946
+ attr_accessor :creation_time_ms
1947
+
1948
+ # Specifies the creative pre-approval policy (buyer-readonly)
1949
+ # Corresponds to the JSON property `creativePreApprovalPolicy`
1950
+ # @return [String]
1951
+ attr_accessor :creative_pre_approval_policy
1952
+
1953
+ # Specifies whether the creative is safeFrame compatible (buyer-readonly)
1954
+ # Corresponds to the JSON property `creativeSafeFrameCompatibility`
1955
+ # @return [String]
1956
+ attr_accessor :creative_safe_frame_compatibility
1957
+
1958
+ # A unique deal-id for the deal (readonly).
1959
+ # Corresponds to the JSON property `dealId`
1960
+ # @return [String]
1961
+ attr_accessor :deal_id
1962
+
1963
+ # Metadata about the serving status of this deal (readonly, writes via custom
1964
+ # actions)
1965
+ # Corresponds to the JSON property `dealServingMetadata`
1966
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealServingMetadata]
1967
+ attr_accessor :deal_serving_metadata
1968
+
1969
+ # The set of fields around delivery control that are interesting for a buyer to
1970
+ # see but are non-negotiable. These are set by the publisher. This message is
1971
+ # assigned an id of 100 since some day we would want to model this as a protobuf
1972
+ # extension.
1973
+ # Corresponds to the JSON property `deliveryControl`
1974
+ # @return [Google::Apis::AdexchangebuyerV1_4::DeliveryControl]
1975
+ attr_accessor :delivery_control
1976
+
1977
+ # The external deal id assigned to this deal once the deal is finalized. This is
1978
+ # the deal-id that shows up in serving/reporting etc. (readonly)
1979
+ # Corresponds to the JSON property `externalDealId`
1980
+ # @return [String]
1981
+ attr_accessor :external_deal_id
1982
+
1983
+ # Proposed flight end time of the deal (ms since epoch) This will generally be
1984
+ # stored in a granularity of a second. (updatable)
1985
+ # Corresponds to the JSON property `flightEndTimeMs`
1986
+ # @return [Fixnum]
1987
+ attr_accessor :flight_end_time_ms
1988
+
1989
+ # Proposed flight start time of the deal (ms since epoch) This will generally be
1990
+ # stored in a granularity of a second. (updatable)
1991
+ # Corresponds to the JSON property `flightStartTimeMs`
1992
+ # @return [Fixnum]
1993
+ attr_accessor :flight_start_time_ms
1994
+
1995
+ # Description for the deal terms. (buyer-readonly)
1996
+ # Corresponds to the JSON property `inventoryDescription`
1997
+ # @return [String]
1998
+ attr_accessor :inventory_description
1999
+
2000
+ # Indicates whether the current deal is a RFP template. RFP template is created
2001
+ # by buyer and not based on seller created products.
2002
+ # Corresponds to the JSON property `isRfpTemplate`
2003
+ # @return [Boolean]
2004
+ attr_accessor :is_rfp_template
2005
+ alias_method :is_rfp_template?, :is_rfp_template
2006
+
2007
+ # True, if the buyside inventory setup is complete for this deal. (readonly,
2008
+ # except via OrderSetupCompleted action)
2009
+ # Corresponds to the JSON property `isSetupComplete`
2010
+ # @return [Boolean]
2011
+ attr_accessor :is_setup_complete
2012
+ alias_method :is_setup_complete?, :is_setup_complete
2013
+
2014
+ # Identifies what kind of resource this is. Value: the fixed string "
2015
+ # adexchangebuyer#marketplaceDeal".
2016
+ # Corresponds to the JSON property `kind`
2017
+ # @return [String]
2018
+ attr_accessor :kind
2019
+
2020
+ # The time (ms since epoch) when the deal was last updated. (readonly)
2021
+ # Corresponds to the JSON property `lastUpdateTimeMs`
2022
+ # @return [Fixnum]
2023
+ attr_accessor :last_update_time_ms
2024
+
2025
+ #
2026
+ # Corresponds to the JSON property `makegoodRequestedReason`
2027
+ # @return [String]
2028
+ attr_accessor :makegood_requested_reason
2029
+
2030
+ # The name of the deal. (updatable)
2031
+ # Corresponds to the JSON property `name`
2032
+ # @return [String]
2033
+ attr_accessor :name
2034
+
2035
+ # The product-id from which this deal was created. (readonly, except on create)
2036
+ # Corresponds to the JSON property `productId`
2037
+ # @return [String]
2038
+ attr_accessor :product_id
2039
+
2040
+ # The revision number of the product that the deal was created from (readonly,
2041
+ # except on create)
2042
+ # Corresponds to the JSON property `productRevisionNumber`
2043
+ # @return [Fixnum]
2044
+ attr_accessor :product_revision_number
2045
+
2046
+ # Specifies the creative source for programmatic deals, PUBLISHER means creative
2047
+ # is provided by seller and ADVERTISR means creative is provided by buyer. (
2048
+ # buyer-readonly)
2049
+ # Corresponds to the JSON property `programmaticCreativeSource`
2050
+ # @return [String]
2051
+ attr_accessor :programmatic_creative_source
2052
+
2053
+ #
2054
+ # Corresponds to the JSON property `proposalId`
2055
+ # @return [String]
2056
+ attr_accessor :proposal_id
2057
+
2058
+ # Optional Seller contact information for the deal (buyer-readonly)
2059
+ # Corresponds to the JSON property `sellerContacts`
2060
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::ContactInformation>]
2061
+ attr_accessor :seller_contacts
2062
+
2063
+ # The shared targeting visible to buyers and sellers. Each shared targeting
2064
+ # entity is AND'd together. (updatable)
2065
+ # Corresponds to the JSON property `sharedTargetings`
2066
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::SharedTargeting>]
2067
+ attr_accessor :shared_targetings
2068
+
2069
+ # The syndication product associated with the deal. (readonly, except on create)
2070
+ # Corresponds to the JSON property `syndicationProduct`
2071
+ # @return [String]
2072
+ attr_accessor :syndication_product
2073
+
2074
+ # The negotiable terms of the deal. (updatable)
2075
+ # Corresponds to the JSON property `terms`
2076
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTerms]
2077
+ attr_accessor :terms
2078
+
2079
+ #
2080
+ # Corresponds to the JSON property `webPropertyCode`
2081
+ # @return [String]
2082
+ attr_accessor :web_property_code
2083
+
2084
+ def initialize(**args)
2085
+ update!(**args)
2086
+ end
2087
+
2088
+ # Update properties of this object
2089
+ def update!(**args)
2090
+ @buyer_private_data = args[:buyer_private_data] if args.key?(:buyer_private_data)
2091
+ @creation_time_ms = args[:creation_time_ms] if args.key?(:creation_time_ms)
2092
+ @creative_pre_approval_policy = args[:creative_pre_approval_policy] if args.key?(:creative_pre_approval_policy)
2093
+ @creative_safe_frame_compatibility = args[:creative_safe_frame_compatibility] if args.key?(:creative_safe_frame_compatibility)
2094
+ @deal_id = args[:deal_id] if args.key?(:deal_id)
2095
+ @deal_serving_metadata = args[:deal_serving_metadata] if args.key?(:deal_serving_metadata)
2096
+ @delivery_control = args[:delivery_control] if args.key?(:delivery_control)
2097
+ @external_deal_id = args[:external_deal_id] if args.key?(:external_deal_id)
2098
+ @flight_end_time_ms = args[:flight_end_time_ms] if args.key?(:flight_end_time_ms)
2099
+ @flight_start_time_ms = args[:flight_start_time_ms] if args.key?(:flight_start_time_ms)
2100
+ @inventory_description = args[:inventory_description] if args.key?(:inventory_description)
2101
+ @is_rfp_template = args[:is_rfp_template] if args.key?(:is_rfp_template)
2102
+ @is_setup_complete = args[:is_setup_complete] if args.key?(:is_setup_complete)
2103
+ @kind = args[:kind] if args.key?(:kind)
2104
+ @last_update_time_ms = args[:last_update_time_ms] if args.key?(:last_update_time_ms)
2105
+ @makegood_requested_reason = args[:makegood_requested_reason] if args.key?(:makegood_requested_reason)
2106
+ @name = args[:name] if args.key?(:name)
2107
+ @product_id = args[:product_id] if args.key?(:product_id)
2108
+ @product_revision_number = args[:product_revision_number] if args.key?(:product_revision_number)
2109
+ @programmatic_creative_source = args[:programmatic_creative_source] if args.key?(:programmatic_creative_source)
2110
+ @proposal_id = args[:proposal_id] if args.key?(:proposal_id)
2111
+ @seller_contacts = args[:seller_contacts] if args.key?(:seller_contacts)
2112
+ @shared_targetings = args[:shared_targetings] if args.key?(:shared_targetings)
2113
+ @syndication_product = args[:syndication_product] if args.key?(:syndication_product)
2114
+ @terms = args[:terms] if args.key?(:terms)
2115
+ @web_property_code = args[:web_property_code] if args.key?(:web_property_code)
2116
+ end
2117
+ end
2118
+
2119
+ #
2120
+ class MarketplaceDealParty
2121
+ include Google::Apis::Core::Hashable
2122
+
2123
+ # The buyer/seller associated with the deal. One of buyer/seller is specified
2124
+ # for a deal-party.
2125
+ # Corresponds to the JSON property `buyer`
2126
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
2127
+ attr_accessor :buyer
2128
+
2129
+ # The buyer/seller associated with the deal. One of buyer/seller is specified
2130
+ # for a deal party.
2131
+ # Corresponds to the JSON property `seller`
2132
+ # @return [Google::Apis::AdexchangebuyerV1_4::Seller]
2133
+ attr_accessor :seller
2134
+
2135
+ def initialize(**args)
2136
+ update!(**args)
2137
+ end
2138
+
2139
+ # Update properties of this object
2140
+ def update!(**args)
2141
+ @buyer = args[:buyer] if args.key?(:buyer)
2142
+ @seller = args[:seller] if args.key?(:seller)
2143
+ end
2144
+ end
2145
+
2146
+ #
2147
+ class MarketplaceLabel
2148
+ include Google::Apis::Core::Hashable
2149
+
2150
+ # The accountId of the party that created the label.
2151
+ # Corresponds to the JSON property `accountId`
2152
+ # @return [String]
2153
+ attr_accessor :account_id
2154
+
2155
+ # The creation time (in ms since epoch) for the label.
2156
+ # Corresponds to the JSON property `createTimeMs`
2157
+ # @return [Fixnum]
2158
+ attr_accessor :create_time_ms
2159
+
2160
+ # Information about the party that created the label.
2161
+ # Corresponds to the JSON property `deprecatedMarketplaceDealParty`
2162
+ # @return [Google::Apis::AdexchangebuyerV1_4::MarketplaceDealParty]
2163
+ attr_accessor :deprecated_marketplace_deal_party
2164
+
2165
+ # The label to use.
2166
+ # Corresponds to the JSON property `label`
2167
+ # @return [String]
2168
+ attr_accessor :label
2169
+
2170
+ def initialize(**args)
2171
+ update!(**args)
2172
+ end
2173
+
2174
+ # Update properties of this object
2175
+ def update!(**args)
2176
+ @account_id = args[:account_id] if args.key?(:account_id)
2177
+ @create_time_ms = args[:create_time_ms] if args.key?(:create_time_ms)
2178
+ @deprecated_marketplace_deal_party = args[:deprecated_marketplace_deal_party] if args.key?(:deprecated_marketplace_deal_party)
2179
+ @label = args[:label] if args.key?(:label)
2180
+ end
2181
+ end
2182
+
2183
+ # A proposal is associated with a bunch of notes which may optionally be
2184
+ # associated with a deal and/or revision number.
2185
+ class MarketplaceNote
2186
+ include Google::Apis::Core::Hashable
2187
+
2188
+ # The role of the person (buyer/seller) creating the note. (readonly)
2189
+ # Corresponds to the JSON property `creatorRole`
2190
+ # @return [String]
2191
+ attr_accessor :creator_role
2192
+
2193
+ # Notes can optionally be associated with a deal. (readonly, except on create)
2194
+ # Corresponds to the JSON property `dealId`
2195
+ # @return [String]
2196
+ attr_accessor :deal_id
2197
+
2198
+ # Identifies what kind of resource this is. Value: the fixed string "
2199
+ # adexchangebuyer#marketplaceNote".
2200
+ # Corresponds to the JSON property `kind`
2201
+ # @return [String]
2202
+ attr_accessor :kind
2203
+
2204
+ # The actual note to attach. (readonly, except on create)
2205
+ # Corresponds to the JSON property `note`
2206
+ # @return [String]
2207
+ attr_accessor :note
2208
+
2209
+ # The unique id for the note. (readonly)
2210
+ # Corresponds to the JSON property `noteId`
2211
+ # @return [String]
2212
+ attr_accessor :note_id
2213
+
2214
+ # The proposalId that a note is attached to. (readonly)
2215
+ # Corresponds to the JSON property `proposalId`
2216
+ # @return [String]
2217
+ attr_accessor :proposal_id
2218
+
2219
+ # If the note is associated with a proposal revision number, then store that
2220
+ # here. (readonly, except on create)
2221
+ # Corresponds to the JSON property `proposalRevisionNumber`
2222
+ # @return [Fixnum]
2223
+ attr_accessor :proposal_revision_number
2224
+
2225
+ # The timestamp (ms since epoch) that this note was created. (readonly)
2226
+ # Corresponds to the JSON property `timestampMs`
2227
+ # @return [Fixnum]
2228
+ attr_accessor :timestamp_ms
2229
+
2230
+ def initialize(**args)
2231
+ update!(**args)
2232
+ end
2233
+
2234
+ # Update properties of this object
2235
+ def update!(**args)
2236
+ @creator_role = args[:creator_role] if args.key?(:creator_role)
2237
+ @deal_id = args[:deal_id] if args.key?(:deal_id)
2238
+ @kind = args[:kind] if args.key?(:kind)
2239
+ @note = args[:note] if args.key?(:note)
2240
+ @note_id = args[:note_id] if args.key?(:note_id)
2241
+ @proposal_id = args[:proposal_id] if args.key?(:proposal_id)
2242
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
2243
+ @timestamp_ms = args[:timestamp_ms] if args.key?(:timestamp_ms)
2244
+ end
2245
+ end
2246
+
2247
+ #
2248
+ class MobileApplication
2249
+ include Google::Apis::Core::Hashable
2250
+
2251
+ #
2252
+ # Corresponds to the JSON property `appStore`
2253
+ # @return [String]
2254
+ attr_accessor :app_store
2255
+
2256
+ #
2257
+ # Corresponds to the JSON property `externalAppId`
2258
+ # @return [String]
2259
+ attr_accessor :external_app_id
2260
+
2261
+ def initialize(**args)
2262
+ update!(**args)
2263
+ end
2264
+
2265
+ # Update properties of this object
2266
+ def update!(**args)
2267
+ @app_store = args[:app_store] if args.key?(:app_store)
2268
+ @external_app_id = args[:external_app_id] if args.key?(:external_app_id)
2269
+ end
2270
+ end
2271
+
2272
+ # The configuration data for an Ad Exchange performance report list.
2273
+ class PerformanceReport
2274
+ include Google::Apis::Core::Hashable
2275
+
2276
+ # The number of bid responses with an ad.
2277
+ # Corresponds to the JSON property `bidRate`
2278
+ # @return [Float]
2279
+ attr_accessor :bid_rate
2280
+
2281
+ # The number of bid requests sent to your bidder.
2282
+ # Corresponds to the JSON property `bidRequestRate`
2283
+ # @return [Float]
2284
+ attr_accessor :bid_request_rate
2285
+
2286
+ # Rate of various prefiltering statuses per match. Please refer to the callout-
2287
+ # status-codes.txt file for different statuses.
2288
+ # Corresponds to the JSON property `calloutStatusRate`
2289
+ # @return [Array<Object>]
2290
+ attr_accessor :callout_status_rate
2291
+
2292
+ # Average QPS for cookie matcher operations.
2293
+ # Corresponds to the JSON property `cookieMatcherStatusRate`
2294
+ # @return [Array<Object>]
2295
+ attr_accessor :cookie_matcher_status_rate
2296
+
2297
+ # Rate of ads with a given status. Please refer to the creative-status-codes.txt
2298
+ # file for different statuses.
2299
+ # Corresponds to the JSON property `creativeStatusRate`
2300
+ # @return [Array<Object>]
2301
+ attr_accessor :creative_status_rate
2302
+
2303
+ # The number of bid responses that were filtered due to a policy violation or
2304
+ # other errors.
2305
+ # Corresponds to the JSON property `filteredBidRate`
2306
+ # @return [Float]
2307
+ attr_accessor :filtered_bid_rate
2308
+
2309
+ # Average QPS for hosted match operations.
2310
+ # Corresponds to the JSON property `hostedMatchStatusRate`
2311
+ # @return [Array<Object>]
2312
+ attr_accessor :hosted_match_status_rate
2313
+
2314
+ # The number of potential queries based on your pretargeting settings.
2315
+ # Corresponds to the JSON property `inventoryMatchRate`
2316
+ # @return [Float]
2317
+ attr_accessor :inventory_match_rate
2318
+
2319
+ # Resource type.
2320
+ # Corresponds to the JSON property `kind`
2321
+ # @return [String]
2322
+ attr_accessor :kind
2323
+
2324
+ # The 50th percentile round trip latency(ms) as perceived from Google servers
2325
+ # for the duration period covered by the report.
2326
+ # Corresponds to the JSON property `latency50thPercentile`
2327
+ # @return [Float]
2328
+ attr_accessor :latency_50th_percentile
2329
+
2330
+ # The 85th percentile round trip latency(ms) as perceived from Google servers
2331
+ # for the duration period covered by the report.
2332
+ # Corresponds to the JSON property `latency85thPercentile`
2333
+ # @return [Float]
2334
+ attr_accessor :latency_85th_percentile
2335
+
2336
+ # The 95th percentile round trip latency(ms) as perceived from Google servers
2337
+ # for the duration period covered by the report.
2338
+ # Corresponds to the JSON property `latency95thPercentile`
2339
+ # @return [Float]
2340
+ attr_accessor :latency_95th_percentile
2341
+
2342
+ # Rate of various quota account statuses per quota check.
2343
+ # Corresponds to the JSON property `noQuotaInRegion`
2344
+ # @return [Float]
2345
+ attr_accessor :no_quota_in_region
2346
+
2347
+ # Rate of various quota account statuses per quota check.
2348
+ # Corresponds to the JSON property `outOfQuota`
2349
+ # @return [Float]
2350
+ attr_accessor :out_of_quota
2351
+
2352
+ # Average QPS for pixel match requests from clients.
2353
+ # Corresponds to the JSON property `pixelMatchRequests`
2354
+ # @return [Float]
2355
+ attr_accessor :pixel_match_requests
2356
+
2357
+ # Average QPS for pixel match responses from clients.
2358
+ # Corresponds to the JSON property `pixelMatchResponses`
2359
+ # @return [Float]
2360
+ attr_accessor :pixel_match_responses
2361
+
2362
+ # The configured quota limits for this account.
2363
+ # Corresponds to the JSON property `quotaConfiguredLimit`
2364
+ # @return [Float]
2365
+ attr_accessor :quota_configured_limit
2366
+
2367
+ # The throttled quota limits for this account.
2368
+ # Corresponds to the JSON property `quotaThrottledLimit`
2369
+ # @return [Float]
2370
+ attr_accessor :quota_throttled_limit
2371
+
2372
+ # The trading location of this data.
2373
+ # Corresponds to the JSON property `region`
2374
+ # @return [String]
2375
+ attr_accessor :region
2376
+
2377
+ # The number of properly formed bid responses received by our servers within the
2378
+ # deadline.
2379
+ # Corresponds to the JSON property `successfulRequestRate`
2380
+ # @return [Float]
2381
+ attr_accessor :successful_request_rate
2382
+
2383
+ # The unix timestamp of the starting time of this performance data.
2384
+ # Corresponds to the JSON property `timestamp`
2385
+ # @return [Fixnum]
2386
+ attr_accessor :timestamp
2387
+
2388
+ # The number of bid responses that were unsuccessful due to timeouts, incorrect
2389
+ # formatting, etc.
2390
+ # Corresponds to the JSON property `unsuccessfulRequestRate`
2391
+ # @return [Float]
2392
+ attr_accessor :unsuccessful_request_rate
2393
+
2394
+ def initialize(**args)
2395
+ update!(**args)
2396
+ end
2397
+
2398
+ # Update properties of this object
2399
+ def update!(**args)
2400
+ @bid_rate = args[:bid_rate] if args.key?(:bid_rate)
2401
+ @bid_request_rate = args[:bid_request_rate] if args.key?(:bid_request_rate)
2402
+ @callout_status_rate = args[:callout_status_rate] if args.key?(:callout_status_rate)
2403
+ @cookie_matcher_status_rate = args[:cookie_matcher_status_rate] if args.key?(:cookie_matcher_status_rate)
2404
+ @creative_status_rate = args[:creative_status_rate] if args.key?(:creative_status_rate)
2405
+ @filtered_bid_rate = args[:filtered_bid_rate] if args.key?(:filtered_bid_rate)
2406
+ @hosted_match_status_rate = args[:hosted_match_status_rate] if args.key?(:hosted_match_status_rate)
2407
+ @inventory_match_rate = args[:inventory_match_rate] if args.key?(:inventory_match_rate)
2408
+ @kind = args[:kind] if args.key?(:kind)
2409
+ @latency_50th_percentile = args[:latency_50th_percentile] if args.key?(:latency_50th_percentile)
2410
+ @latency_85th_percentile = args[:latency_85th_percentile] if args.key?(:latency_85th_percentile)
2411
+ @latency_95th_percentile = args[:latency_95th_percentile] if args.key?(:latency_95th_percentile)
2412
+ @no_quota_in_region = args[:no_quota_in_region] if args.key?(:no_quota_in_region)
2413
+ @out_of_quota = args[:out_of_quota] if args.key?(:out_of_quota)
2414
+ @pixel_match_requests = args[:pixel_match_requests] if args.key?(:pixel_match_requests)
2415
+ @pixel_match_responses = args[:pixel_match_responses] if args.key?(:pixel_match_responses)
2416
+ @quota_configured_limit = args[:quota_configured_limit] if args.key?(:quota_configured_limit)
2417
+ @quota_throttled_limit = args[:quota_throttled_limit] if args.key?(:quota_throttled_limit)
2418
+ @region = args[:region] if args.key?(:region)
2419
+ @successful_request_rate = args[:successful_request_rate] if args.key?(:successful_request_rate)
2420
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
2421
+ @unsuccessful_request_rate = args[:unsuccessful_request_rate] if args.key?(:unsuccessful_request_rate)
2422
+ end
2423
+ end
2424
+
2425
+ # The configuration data for an Ad Exchange performance report list.
2426
+ class PerformanceReportList
2427
+ include Google::Apis::Core::Hashable
2428
+
2429
+ # Resource type.
2430
+ # Corresponds to the JSON property `kind`
2431
+ # @return [String]
2432
+ attr_accessor :kind
2433
+
2434
+ # A list of performance reports relevant for the account.
2435
+ # Corresponds to the JSON property `performanceReport`
2436
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PerformanceReport>]
2437
+ attr_accessor :performance_report
2438
+
2439
+ def initialize(**args)
2440
+ update!(**args)
2441
+ end
2442
+
2443
+ # Update properties of this object
2444
+ def update!(**args)
2445
+ @kind = args[:kind] if args.key?(:kind)
2446
+ @performance_report = args[:performance_report] if args.key?(:performance_report)
2447
+ end
2448
+ end
2449
+
2450
+ #
2451
+ class PretargetingConfig
2452
+ include Google::Apis::Core::Hashable
2453
+
2454
+ # The id for billing purposes, provided for reference. Leave this field blank
2455
+ # for insert requests; the id will be generated automatically.
2456
+ # Corresponds to the JSON property `billingId`
2457
+ # @return [Fixnum]
2458
+ attr_accessor :billing_id
2459
+
2460
+ # The config id; generated automatically. Leave this field blank for insert
2461
+ # requests.
2462
+ # Corresponds to the JSON property `configId`
2463
+ # @return [Fixnum]
2464
+ attr_accessor :config_id
2465
+
2466
+ # The name of the config. Must be unique. Required for all requests.
2467
+ # Corresponds to the JSON property `configName`
2468
+ # @return [String]
2469
+ attr_accessor :config_name
2470
+
2471
+ # List must contain exactly one of PRETARGETING_CREATIVE_TYPE_HTML or
2472
+ # PRETARGETING_CREATIVE_TYPE_VIDEO.
2473
+ # Corresponds to the JSON property `creativeType`
2474
+ # @return [Array<String>]
2475
+ attr_accessor :creative_type
2476
+
2477
+ # Requests which allow one of these (width, height) pairs will match. All pairs
2478
+ # must be supported ad dimensions.
2479
+ # Corresponds to the JSON property `dimensions`
2480
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig::Dimension>]
2481
+ attr_accessor :dimensions
2482
+
2483
+ # Requests with any of these content labels will not match. Values are from
2484
+ # content-labels.txt in the downloadable files section.
2485
+ # Corresponds to the JSON property `excludedContentLabels`
2486
+ # @return [Array<Fixnum>]
2487
+ attr_accessor :excluded_content_labels
2488
+
2489
+ # Requests containing any of these geo criteria ids will not match.
2490
+ # Corresponds to the JSON property `excludedGeoCriteriaIds`
2491
+ # @return [Array<Fixnum>]
2492
+ attr_accessor :excluded_geo_criteria_ids
2493
+
2494
+ # Requests containing any of these placements will not match.
2495
+ # Corresponds to the JSON property `excludedPlacements`
2496
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig::ExcludedPlacement>]
2497
+ attr_accessor :excluded_placements
2498
+
2499
+ # Requests containing any of these users list ids will not match.
2500
+ # Corresponds to the JSON property `excludedUserLists`
2501
+ # @return [Array<Fixnum>]
2502
+ attr_accessor :excluded_user_lists
2503
+
2504
+ # Requests containing any of these vertical ids will not match. Values are from
2505
+ # the publisher-verticals.txt file in the downloadable files section.
2506
+ # Corresponds to the JSON property `excludedVerticals`
2507
+ # @return [Array<Fixnum>]
2508
+ attr_accessor :excluded_verticals
2509
+
2510
+ # Requests containing any of these geo criteria ids will match.
2511
+ # Corresponds to the JSON property `geoCriteriaIds`
2512
+ # @return [Array<Fixnum>]
2513
+ attr_accessor :geo_criteria_ids
2514
+
2515
+ # Whether this config is active. Required for all requests.
2516
+ # Corresponds to the JSON property `isActive`
2517
+ # @return [Boolean]
2518
+ attr_accessor :is_active
2519
+ alias_method :is_active?, :is_active
2520
+
2521
+ # The kind of the resource, i.e. "adexchangebuyer#pretargetingConfig".
2522
+ # Corresponds to the JSON property `kind`
2523
+ # @return [String]
2524
+ attr_accessor :kind
2525
+
2526
+ # Request containing any of these language codes will match.
2527
+ # Corresponds to the JSON property `languages`
2528
+ # @return [Array<String>]
2529
+ attr_accessor :languages
2530
+
2531
+ # The maximum QPS allocated to this pretargeting configuration, used for
2532
+ # pretargeting-level QPS limits. By default, this is not set, which indicates
2533
+ # that there is no QPS limit at the configuration level (a global or account-
2534
+ # level limit may still be imposed).
2535
+ # Corresponds to the JSON property `maximumQps`
2536
+ # @return [Fixnum]
2537
+ attr_accessor :maximum_qps
2538
+
2539
+ # Requests where the predicted viewability is below the specified decile will
2540
+ # not match. E.g. if the buyer sets this value to 5, requests from slots where
2541
+ # the predicted viewability is below 50% will not match. If the predicted
2542
+ # viewability is unknown this field will be ignored.
2543
+ # Corresponds to the JSON property `minimumViewabilityDecile`
2544
+ # @return [Fixnum]
2545
+ attr_accessor :minimum_viewability_decile
2546
+
2547
+ # Requests containing any of these mobile carrier ids will match. Values are
2548
+ # from mobile-carriers.csv in the downloadable files section.
2549
+ # Corresponds to the JSON property `mobileCarriers`
2550
+ # @return [Array<Fixnum>]
2551
+ attr_accessor :mobile_carriers
2552
+
2553
+ # Requests containing any of these mobile device ids will match. Values are from
2554
+ # mobile-devices.csv in the downloadable files section.
2555
+ # Corresponds to the JSON property `mobileDevices`
2556
+ # @return [Array<Fixnum>]
2557
+ attr_accessor :mobile_devices
2558
+
2559
+ # Requests containing any of these mobile operating system version ids will
2560
+ # match. Values are from mobile-os.csv in the downloadable files section.
2561
+ # Corresponds to the JSON property `mobileOperatingSystemVersions`
2562
+ # @return [Array<Fixnum>]
2563
+ attr_accessor :mobile_operating_system_versions
2564
+
2565
+ # Requests containing any of these placements will match.
2566
+ # Corresponds to the JSON property `placements`
2567
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig::Placement>]
2568
+ attr_accessor :placements
2569
+
2570
+ # Requests matching any of these platforms will match. Possible values are
2571
+ # PRETARGETING_PLATFORM_MOBILE, PRETARGETING_PLATFORM_DESKTOP, and
2572
+ # PRETARGETING_PLATFORM_TABLET.
2573
+ # Corresponds to the JSON property `platforms`
2574
+ # @return [Array<String>]
2575
+ attr_accessor :platforms
2576
+
2577
+ # Creative attributes should be declared here if all creatives corresponding to
2578
+ # this pretargeting configuration have that creative attribute. Values are from
2579
+ # pretargetable-creative-attributes.txt in the downloadable files section.
2580
+ # Corresponds to the JSON property `supportedCreativeAttributes`
2581
+ # @return [Array<Fixnum>]
2582
+ attr_accessor :supported_creative_attributes
2583
+
2584
+ # Requests containing the specified type of user data will match. Possible
2585
+ # values are HOSTED_MATCH_DATA, which means the request is cookie-targetable and
2586
+ # has a match in the buyer's hosted match table, and COOKIE_OR_IDFA, which means
2587
+ # the request has either a targetable cookie or an iOS IDFA.
2588
+ # Corresponds to the JSON property `userIdentifierDataRequired`
2589
+ # @return [Array<String>]
2590
+ attr_accessor :user_identifier_data_required
2591
+
2592
+ # Requests containing any of these user list ids will match.
2593
+ # Corresponds to the JSON property `userLists`
2594
+ # @return [Array<Fixnum>]
2595
+ attr_accessor :user_lists
2596
+
2597
+ # Requests that allow any of these vendor ids will match. Values are from
2598
+ # vendors.txt in the downloadable files section.
2599
+ # Corresponds to the JSON property `vendorTypes`
2600
+ # @return [Array<Fixnum>]
2601
+ attr_accessor :vendor_types
2602
+
2603
+ # Requests containing any of these vertical ids will match.
2604
+ # Corresponds to the JSON property `verticals`
2605
+ # @return [Array<Fixnum>]
2606
+ attr_accessor :verticals
2607
+
2608
+ # Video requests satisfying any of these player size constraints will match.
2609
+ # Corresponds to the JSON property `videoPlayerSizes`
2610
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig::VideoPlayerSize>]
2611
+ attr_accessor :video_player_sizes
2612
+
2613
+ def initialize(**args)
2614
+ update!(**args)
2615
+ end
2616
+
2617
+ # Update properties of this object
2618
+ def update!(**args)
2619
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
2620
+ @config_id = args[:config_id] if args.key?(:config_id)
2621
+ @config_name = args[:config_name] if args.key?(:config_name)
2622
+ @creative_type = args[:creative_type] if args.key?(:creative_type)
2623
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
2624
+ @excluded_content_labels = args[:excluded_content_labels] if args.key?(:excluded_content_labels)
2625
+ @excluded_geo_criteria_ids = args[:excluded_geo_criteria_ids] if args.key?(:excluded_geo_criteria_ids)
2626
+ @excluded_placements = args[:excluded_placements] if args.key?(:excluded_placements)
2627
+ @excluded_user_lists = args[:excluded_user_lists] if args.key?(:excluded_user_lists)
2628
+ @excluded_verticals = args[:excluded_verticals] if args.key?(:excluded_verticals)
2629
+ @geo_criteria_ids = args[:geo_criteria_ids] if args.key?(:geo_criteria_ids)
2630
+ @is_active = args[:is_active] if args.key?(:is_active)
2631
+ @kind = args[:kind] if args.key?(:kind)
2632
+ @languages = args[:languages] if args.key?(:languages)
2633
+ @maximum_qps = args[:maximum_qps] if args.key?(:maximum_qps)
2634
+ @minimum_viewability_decile = args[:minimum_viewability_decile] if args.key?(:minimum_viewability_decile)
2635
+ @mobile_carriers = args[:mobile_carriers] if args.key?(:mobile_carriers)
2636
+ @mobile_devices = args[:mobile_devices] if args.key?(:mobile_devices)
2637
+ @mobile_operating_system_versions = args[:mobile_operating_system_versions] if args.key?(:mobile_operating_system_versions)
2638
+ @placements = args[:placements] if args.key?(:placements)
2639
+ @platforms = args[:platforms] if args.key?(:platforms)
2640
+ @supported_creative_attributes = args[:supported_creative_attributes] if args.key?(:supported_creative_attributes)
2641
+ @user_identifier_data_required = args[:user_identifier_data_required] if args.key?(:user_identifier_data_required)
2642
+ @user_lists = args[:user_lists] if args.key?(:user_lists)
2643
+ @vendor_types = args[:vendor_types] if args.key?(:vendor_types)
2644
+ @verticals = args[:verticals] if args.key?(:verticals)
2645
+ @video_player_sizes = args[:video_player_sizes] if args.key?(:video_player_sizes)
2646
+ end
2647
+
2648
+ #
2649
+ class Dimension
2650
+ include Google::Apis::Core::Hashable
2651
+
2652
+ # Height in pixels.
2653
+ # Corresponds to the JSON property `height`
2654
+ # @return [Fixnum]
2655
+ attr_accessor :height
2656
+
2657
+ # Width in pixels.
2658
+ # Corresponds to the JSON property `width`
2659
+ # @return [Fixnum]
2660
+ attr_accessor :width
2661
+
2662
+ def initialize(**args)
2663
+ update!(**args)
2664
+ end
2665
+
2666
+ # Update properties of this object
2667
+ def update!(**args)
2668
+ @height = args[:height] if args.key?(:height)
2669
+ @width = args[:width] if args.key?(:width)
2670
+ end
2671
+ end
2672
+
2673
+ #
2674
+ class ExcludedPlacement
2675
+ include Google::Apis::Core::Hashable
2676
+
2677
+ # The value of the placement. Interpretation depends on the placement type, e.g.
2678
+ # URL for a site placement, channel name for a channel placement, app id for a
2679
+ # mobile app placement.
2680
+ # Corresponds to the JSON property `token`
2681
+ # @return [String]
2682
+ attr_accessor :token
2683
+
2684
+ # The type of the placement.
2685
+ # Corresponds to the JSON property `type`
2686
+ # @return [String]
2687
+ attr_accessor :type
2688
+
2689
+ def initialize(**args)
2690
+ update!(**args)
2691
+ end
2692
+
2693
+ # Update properties of this object
2694
+ def update!(**args)
2695
+ @token = args[:token] if args.key?(:token)
2696
+ @type = args[:type] if args.key?(:type)
2697
+ end
2698
+ end
2699
+
2700
+ #
2701
+ class Placement
2702
+ include Google::Apis::Core::Hashable
2703
+
2704
+ # The value of the placement. Interpretation depends on the placement type, e.g.
2705
+ # URL for a site placement, channel name for a channel placement, app id for a
2706
+ # mobile app placement.
2707
+ # Corresponds to the JSON property `token`
2708
+ # @return [String]
2709
+ attr_accessor :token
2710
+
2711
+ # The type of the placement.
2712
+ # Corresponds to the JSON property `type`
2713
+ # @return [String]
2714
+ attr_accessor :type
2715
+
2716
+ def initialize(**args)
2717
+ update!(**args)
2718
+ end
2719
+
2720
+ # Update properties of this object
2721
+ def update!(**args)
2722
+ @token = args[:token] if args.key?(:token)
2723
+ @type = args[:type] if args.key?(:type)
2724
+ end
2725
+ end
2726
+
2727
+ #
2728
+ class VideoPlayerSize
2729
+ include Google::Apis::Core::Hashable
2730
+
2731
+ # The type of aspect ratio. Leave this field blank to match all aspect ratios.
2732
+ # Corresponds to the JSON property `aspectRatio`
2733
+ # @return [String]
2734
+ attr_accessor :aspect_ratio
2735
+
2736
+ # The minimum player height in pixels. Leave this field blank to match any
2737
+ # player height.
2738
+ # Corresponds to the JSON property `minHeight`
2739
+ # @return [Fixnum]
2740
+ attr_accessor :min_height
2741
+
2742
+ # The minimum player width in pixels. Leave this field blank to match any player
2743
+ # width.
2744
+ # Corresponds to the JSON property `minWidth`
2745
+ # @return [Fixnum]
2746
+ attr_accessor :min_width
2747
+
2748
+ def initialize(**args)
2749
+ update!(**args)
2750
+ end
2751
+
2752
+ # Update properties of this object
2753
+ def update!(**args)
2754
+ @aspect_ratio = args[:aspect_ratio] if args.key?(:aspect_ratio)
2755
+ @min_height = args[:min_height] if args.key?(:min_height)
2756
+ @min_width = args[:min_width] if args.key?(:min_width)
2757
+ end
2758
+ end
2759
+ end
2760
+
2761
+ #
2762
+ class PretargetingConfigList
2763
+ include Google::Apis::Core::Hashable
2764
+
2765
+ # A list of pretargeting configs
2766
+ # Corresponds to the JSON property `items`
2767
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig>]
2768
+ attr_accessor :items
2769
+
2770
+ # Resource type.
2771
+ # Corresponds to the JSON property `kind`
2772
+ # @return [String]
2773
+ attr_accessor :kind
2774
+
2775
+ def initialize(**args)
2776
+ update!(**args)
2777
+ end
2778
+
2779
+ # Update properties of this object
2780
+ def update!(**args)
2781
+ @items = args[:items] if args.key?(:items)
2782
+ @kind = args[:kind] if args.key?(:kind)
2783
+ end
2784
+ end
2785
+
2786
+ #
2787
+ class Price
2788
+ include Google::Apis::Core::Hashable
2789
+
2790
+ # The price value in micros.
2791
+ # Corresponds to the JSON property `amountMicros`
2792
+ # @return [Float]
2793
+ attr_accessor :amount_micros
2794
+
2795
+ # The currency code for the price.
2796
+ # Corresponds to the JSON property `currencyCode`
2797
+ # @return [String]
2798
+ attr_accessor :currency_code
2799
+
2800
+ # In case of CPD deals, the expected CPM in micros.
2801
+ # Corresponds to the JSON property `expectedCpmMicros`
2802
+ # @return [Float]
2803
+ attr_accessor :expected_cpm_micros
2804
+
2805
+ # The pricing type for the deal/product.
2806
+ # Corresponds to the JSON property `pricingType`
2807
+ # @return [String]
2808
+ attr_accessor :pricing_type
2809
+
2810
+ def initialize(**args)
2811
+ update!(**args)
2812
+ end
2813
+
2814
+ # Update properties of this object
2815
+ def update!(**args)
2816
+ @amount_micros = args[:amount_micros] if args.key?(:amount_micros)
2817
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
2818
+ @expected_cpm_micros = args[:expected_cpm_micros] if args.key?(:expected_cpm_micros)
2819
+ @pricing_type = args[:pricing_type] if args.key?(:pricing_type)
2820
+ end
2821
+ end
2822
+
2823
+ # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can
2824
+ # become [0,1] deals. To check if there is a PricePerBuyer for a particular
2825
+ # buyer we look for the most specific matching rule - we first look for a rule
2826
+ # matching the buyer and otherwise look for a matching rule where no buyer is
2827
+ # set.
2828
+ class PricePerBuyer
2829
+ include Google::Apis::Core::Hashable
2830
+
2831
+ # Optional access type for this buyer.
2832
+ # Corresponds to the JSON property `auctionTier`
2833
+ # @return [String]
2834
+ attr_accessor :auction_tier
2835
+
2836
+ # Reference to the buyer that will get billed.
2837
+ # Corresponds to the JSON property `billedBuyer`
2838
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
2839
+ attr_accessor :billed_buyer
2840
+
2841
+ # The buyer who will pay this price. If unset, all buyers can pay this price (if
2842
+ # the advertisers match, and there's no more specific rule matching the buyer).
2843
+ # Corresponds to the JSON property `buyer`
2844
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
2845
+ attr_accessor :buyer
2846
+
2847
+ # The specified price
2848
+ # Corresponds to the JSON property `price`
2849
+ # @return [Google::Apis::AdexchangebuyerV1_4::Price]
2850
+ attr_accessor :price
2851
+
2852
+ def initialize(**args)
2853
+ update!(**args)
2854
+ end
2855
+
2856
+ # Update properties of this object
2857
+ def update!(**args)
2858
+ @auction_tier = args[:auction_tier] if args.key?(:auction_tier)
2859
+ @billed_buyer = args[:billed_buyer] if args.key?(:billed_buyer)
2860
+ @buyer = args[:buyer] if args.key?(:buyer)
2861
+ @price = args[:price] if args.key?(:price)
2862
+ end
2863
+ end
2864
+
2865
+ #
2866
+ class PrivateData
2867
+ include Google::Apis::Core::Hashable
2868
+
2869
+ #
2870
+ # Corresponds to the JSON property `referenceId`
2871
+ # @return [String]
2872
+ attr_accessor :reference_id
2873
+
2874
+ #
2875
+ # Corresponds to the JSON property `referencePayload`
2876
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2877
+ # @return [String]
2878
+ attr_accessor :reference_payload
2879
+
2880
+ def initialize(**args)
2881
+ update!(**args)
2882
+ end
2883
+
2884
+ # Update properties of this object
2885
+ def update!(**args)
2886
+ @reference_id = args[:reference_id] if args.key?(:reference_id)
2887
+ @reference_payload = args[:reference_payload] if args.key?(:reference_payload)
2888
+ end
2889
+ end
2890
+
2891
+ # A product is segment of inventory that a seller wishes to sell. It is
2892
+ # associated with certain terms and targeting information which helps buyer know
2893
+ # more about the inventory. Each field in a product can have one of the
2894
+ # following setting:
2895
+ # (readonly) - It is an error to try and set this field. (buyer-readonly) - Only
2896
+ # the seller can set this field. (seller-readonly) - Only the buyer can set this
2897
+ # field. (updatable) - The field is updatable at all times by either buyer or
2898
+ # the seller.
2899
+ class Product
2900
+ include Google::Apis::Core::Hashable
2901
+
2902
+ # The billed buyer corresponding to the buyer that created the offer. (readonly,
2903
+ # except on create)
2904
+ # Corresponds to the JSON property `billedBuyer`
2905
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
2906
+ attr_accessor :billed_buyer
2907
+
2908
+ # The buyer that created the offer if this is a buyer initiated offer (readonly,
2909
+ # except on create)
2910
+ # Corresponds to the JSON property `buyer`
2911
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
2912
+ attr_accessor :buyer
2913
+
2914
+ # Creation time in ms. since epoch (readonly)
2915
+ # Corresponds to the JSON property `creationTimeMs`
2916
+ # @return [Fixnum]
2917
+ attr_accessor :creation_time_ms
2918
+
2919
+ # Optional contact information for the creator of this product. (buyer-readonly)
2920
+ # Corresponds to the JSON property `creatorContacts`
2921
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::ContactInformation>]
2922
+ attr_accessor :creator_contacts
2923
+
2924
+ # The role that created the offer. Set to BUYER for buyer initiated offers.
2925
+ # Corresponds to the JSON property `creatorRole`
2926
+ # @return [String]
2927
+ attr_accessor :creator_role
2928
+
2929
+ # The set of fields around delivery control that are interesting for a buyer to
2930
+ # see but are non-negotiable. These are set by the publisher. This message is
2931
+ # assigned an id of 100 since some day we would want to model this as a protobuf
2932
+ # extension.
2933
+ # Corresponds to the JSON property `deliveryControl`
2934
+ # @return [Google::Apis::AdexchangebuyerV1_4::DeliveryControl]
2935
+ attr_accessor :delivery_control
2936
+
2937
+ # The proposed end time for the deal (ms since epoch) (buyer-readonly)
2938
+ # Corresponds to the JSON property `flightEndTimeMs`
2939
+ # @return [Fixnum]
2940
+ attr_accessor :flight_end_time_ms
2941
+
2942
+ # Inventory availability dates. (times are in ms since epoch) The granularity is
2943
+ # generally in the order of seconds. (buyer-readonly)
2944
+ # Corresponds to the JSON property `flightStartTimeMs`
2945
+ # @return [Fixnum]
2946
+ attr_accessor :flight_start_time_ms
2947
+
2948
+ # If the creator has already signed off on the product, then the buyer can
2949
+ # finalize the deal by accepting the product as is. When copying to a proposal,
2950
+ # if any of the terms are changed, then auto_finalize is automatically set to
2951
+ # false.
2952
+ # Corresponds to the JSON property `hasCreatorSignedOff`
2953
+ # @return [Boolean]
2954
+ attr_accessor :has_creator_signed_off
2955
+ alias_method :has_creator_signed_off?, :has_creator_signed_off
2956
+
2957
+ # What exchange will provide this inventory (readonly, except on create).
2958
+ # Corresponds to the JSON property `inventorySource`
2959
+ # @return [String]
2960
+ attr_accessor :inventory_source
2961
+
2962
+ # Identifies what kind of resource this is. Value: the fixed string "
2963
+ # adexchangebuyer#product".
2964
+ # Corresponds to the JSON property `kind`
2965
+ # @return [String]
2966
+ attr_accessor :kind
2967
+
2968
+ # Optional List of labels for the product (optional, buyer-readonly).
2969
+ # Corresponds to the JSON property `labels`
2970
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceLabel>]
2971
+ attr_accessor :labels
2972
+
2973
+ # Time of last update in ms. since epoch (readonly)
2974
+ # Corresponds to the JSON property `lastUpdateTimeMs`
2975
+ # @return [Fixnum]
2976
+ attr_accessor :last_update_time_ms
2977
+
2978
+ # Optional legacy offer id if this offer is a preferred deal offer.
2979
+ # Corresponds to the JSON property `legacyOfferId`
2980
+ # @return [String]
2981
+ attr_accessor :legacy_offer_id
2982
+
2983
+ # Marketplace publisher profile Id. This Id differs from the regular
2984
+ # publisher_profile_id in that 1. This is a new id, the old Id will be
2985
+ # deprecated in 2017. 2. This id uniquely identifies a publisher profile by
2986
+ # itself.
2987
+ # Corresponds to the JSON property `marketplacePublisherProfileId`
2988
+ # @return [String]
2989
+ attr_accessor :marketplace_publisher_profile_id
2990
+
2991
+ # The name for this product as set by the seller. (buyer-readonly)
2992
+ # Corresponds to the JSON property `name`
2993
+ # @return [String]
2994
+ attr_accessor :name
2995
+
2996
+ # Optional private auction id if this offer is a private auction offer.
2997
+ # Corresponds to the JSON property `privateAuctionId`
2998
+ # @return [String]
2999
+ attr_accessor :private_auction_id
3000
+
3001
+ # The unique id for the product (readonly)
3002
+ # Corresponds to the JSON property `productId`
3003
+ # @return [String]
3004
+ attr_accessor :product_id
3005
+
3006
+ # Id of the publisher profile for a given seller. A (seller.account_id,
3007
+ # publisher_profile_id) pair uniquely identifies a publisher profile. Buyers can
3008
+ # call the PublisherProfiles::List endpoint to get a list of publisher profiles
3009
+ # for a given seller.
3010
+ # Corresponds to the JSON property `publisherProfileId`
3011
+ # @return [String]
3012
+ attr_accessor :publisher_profile_id
3013
+
3014
+ # This message carries publisher provided forecasting information.
3015
+ # Corresponds to the JSON property `publisherProvidedForecast`
3016
+ # @return [Google::Apis::AdexchangebuyerV1_4::PublisherProvidedForecast]
3017
+ attr_accessor :publisher_provided_forecast
3018
+
3019
+ # The revision number of the product. (readonly)
3020
+ # Corresponds to the JSON property `revisionNumber`
3021
+ # @return [Fixnum]
3022
+ attr_accessor :revision_number
3023
+
3024
+ # Information about the seller that created this product (readonly, except on
3025
+ # create)
3026
+ # Corresponds to the JSON property `seller`
3027
+ # @return [Google::Apis::AdexchangebuyerV1_4::Seller]
3028
+ attr_accessor :seller
3029
+
3030
+ # Targeting that is shared between the buyer and the seller. Each targeting
3031
+ # criteria has a specified key and for each key there is a list of inclusion
3032
+ # value or exclusion values. (buyer-readonly)
3033
+ # Corresponds to the JSON property `sharedTargetings`
3034
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::SharedTargeting>]
3035
+ attr_accessor :shared_targetings
3036
+
3037
+ # The state of the product. (buyer-readonly)
3038
+ # Corresponds to the JSON property `state`
3039
+ # @return [String]
3040
+ attr_accessor :state
3041
+
3042
+ # The syndication product associated with the deal. (readonly, except on create)
3043
+ # Corresponds to the JSON property `syndicationProduct`
3044
+ # @return [String]
3045
+ attr_accessor :syndication_product
3046
+
3047
+ # The negotiable terms of the deal (buyer-readonly)
3048
+ # Corresponds to the JSON property `terms`
3049
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTerms]
3050
+ attr_accessor :terms
3051
+
3052
+ # The web property code for the seller. This field is meant to be copied over as
3053
+ # is when creating deals.
3054
+ # Corresponds to the JSON property `webPropertyCode`
3055
+ # @return [String]
3056
+ attr_accessor :web_property_code
3057
+
3058
+ def initialize(**args)
3059
+ update!(**args)
3060
+ end
3061
+
3062
+ # Update properties of this object
3063
+ def update!(**args)
3064
+ @billed_buyer = args[:billed_buyer] if args.key?(:billed_buyer)
3065
+ @buyer = args[:buyer] if args.key?(:buyer)
3066
+ @creation_time_ms = args[:creation_time_ms] if args.key?(:creation_time_ms)
3067
+ @creator_contacts = args[:creator_contacts] if args.key?(:creator_contacts)
3068
+ @creator_role = args[:creator_role] if args.key?(:creator_role)
3069
+ @delivery_control = args[:delivery_control] if args.key?(:delivery_control)
3070
+ @flight_end_time_ms = args[:flight_end_time_ms] if args.key?(:flight_end_time_ms)
3071
+ @flight_start_time_ms = args[:flight_start_time_ms] if args.key?(:flight_start_time_ms)
3072
+ @has_creator_signed_off = args[:has_creator_signed_off] if args.key?(:has_creator_signed_off)
3073
+ @inventory_source = args[:inventory_source] if args.key?(:inventory_source)
3074
+ @kind = args[:kind] if args.key?(:kind)
3075
+ @labels = args[:labels] if args.key?(:labels)
3076
+ @last_update_time_ms = args[:last_update_time_ms] if args.key?(:last_update_time_ms)
3077
+ @legacy_offer_id = args[:legacy_offer_id] if args.key?(:legacy_offer_id)
3078
+ @marketplace_publisher_profile_id = args[:marketplace_publisher_profile_id] if args.key?(:marketplace_publisher_profile_id)
3079
+ @name = args[:name] if args.key?(:name)
3080
+ @private_auction_id = args[:private_auction_id] if args.key?(:private_auction_id)
3081
+ @product_id = args[:product_id] if args.key?(:product_id)
3082
+ @publisher_profile_id = args[:publisher_profile_id] if args.key?(:publisher_profile_id)
3083
+ @publisher_provided_forecast = args[:publisher_provided_forecast] if args.key?(:publisher_provided_forecast)
3084
+ @revision_number = args[:revision_number] if args.key?(:revision_number)
3085
+ @seller = args[:seller] if args.key?(:seller)
3086
+ @shared_targetings = args[:shared_targetings] if args.key?(:shared_targetings)
3087
+ @state = args[:state] if args.key?(:state)
3088
+ @syndication_product = args[:syndication_product] if args.key?(:syndication_product)
3089
+ @terms = args[:terms] if args.key?(:terms)
3090
+ @web_property_code = args[:web_property_code] if args.key?(:web_property_code)
3091
+ end
3092
+ end
3093
+
3094
+ # Represents a proposal in the marketplace. A proposal is the unit of
3095
+ # negotiation between a seller and a buyer and contains deals which are served.
3096
+ # Each field in a proposal can have one of the following setting:
3097
+ # (readonly) - It is an error to try and set this field. (buyer-readonly) - Only
3098
+ # the seller can set this field. (seller-readonly) - Only the buyer can set this
3099
+ # field. (updatable) - The field is updatable at all times by either buyer or
3100
+ # the seller.
3101
+ class Proposal
3102
+ include Google::Apis::Core::Hashable
3103
+
3104
+ # Reference to the buyer that will get billed for this proposal. (readonly)
3105
+ # Corresponds to the JSON property `billedBuyer`
3106
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
3107
+ attr_accessor :billed_buyer
3108
+
3109
+ # Reference to the buyer on the proposal. (readonly, except on create)
3110
+ # Corresponds to the JSON property `buyer`
3111
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
3112
+ attr_accessor :buyer
3113
+
3114
+ # Optional contact information of the buyer. (seller-readonly)
3115
+ # Corresponds to the JSON property `buyerContacts`
3116
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::ContactInformation>]
3117
+ attr_accessor :buyer_contacts
3118
+
3119
+ # Private data for buyer. (hidden from seller).
3120
+ # Corresponds to the JSON property `buyerPrivateData`
3121
+ # @return [Google::Apis::AdexchangebuyerV1_4::PrivateData]
3122
+ attr_accessor :buyer_private_data
3123
+
3124
+ # IDs of DBM advertisers permission to this proposal.
3125
+ # Corresponds to the JSON property `dbmAdvertiserIds`
3126
+ # @return [Array<String>]
3127
+ attr_accessor :dbm_advertiser_ids
3128
+
3129
+ # When an proposal is in an accepted state, indicates whether the buyer has
3130
+ # signed off. Once both sides have signed off on a deal, the proposal can be
3131
+ # finalized by the seller. (seller-readonly)
3132
+ # Corresponds to the JSON property `hasBuyerSignedOff`
3133
+ # @return [Boolean]
3134
+ attr_accessor :has_buyer_signed_off
3135
+ alias_method :has_buyer_signed_off?, :has_buyer_signed_off
3136
+
3137
+ # When an proposal is in an accepted state, indicates whether the buyer has
3138
+ # signed off Once both sides have signed off on a deal, the proposal can be
3139
+ # finalized by the seller. (buyer-readonly)
3140
+ # Corresponds to the JSON property `hasSellerSignedOff`
3141
+ # @return [Boolean]
3142
+ attr_accessor :has_seller_signed_off
3143
+ alias_method :has_seller_signed_off?, :has_seller_signed_off
3144
+
3145
+ # What exchange will provide this inventory (readonly, except on create).
3146
+ # Corresponds to the JSON property `inventorySource`
3147
+ # @return [String]
3148
+ attr_accessor :inventory_source
3149
+
3150
+ # True if the proposal is being renegotiated (readonly).
3151
+ # Corresponds to the JSON property `isRenegotiating`
3152
+ # @return [Boolean]
3153
+ attr_accessor :is_renegotiating
3154
+ alias_method :is_renegotiating?, :is_renegotiating
3155
+
3156
+ # True, if the buyside inventory setup is complete for this proposal. (readonly,
3157
+ # except via OrderSetupCompleted action) Deprecated in favor of deal level setup
3158
+ # complete flag.
3159
+ # Corresponds to the JSON property `isSetupComplete`
3160
+ # @return [Boolean]
3161
+ attr_accessor :is_setup_complete
3162
+ alias_method :is_setup_complete?, :is_setup_complete
3163
+
3164
+ # Identifies what kind of resource this is. Value: the fixed string "
3165
+ # adexchangebuyer#proposal".
3166
+ # Corresponds to the JSON property `kind`
3167
+ # @return [String]
3168
+ attr_accessor :kind
3169
+
3170
+ # List of labels associated with the proposal. (readonly)
3171
+ # Corresponds to the JSON property `labels`
3172
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceLabel>]
3173
+ attr_accessor :labels
3174
+
3175
+ # The role of the last user that either updated the proposal or left a comment. (
3176
+ # readonly)
3177
+ # Corresponds to the JSON property `lastUpdaterOrCommentorRole`
3178
+ # @return [String]
3179
+ attr_accessor :last_updater_or_commentor_role
3180
+
3181
+ # The name for the proposal (updatable)
3182
+ # Corresponds to the JSON property `name`
3183
+ # @return [String]
3184
+ attr_accessor :name
3185
+
3186
+ # Optional negotiation id if this proposal is a preferred deal proposal.
3187
+ # Corresponds to the JSON property `negotiationId`
3188
+ # @return [String]
3189
+ attr_accessor :negotiation_id
3190
+
3191
+ # Indicates whether the buyer/seller created the proposal.(readonly)
3192
+ # Corresponds to the JSON property `originatorRole`
3193
+ # @return [String]
3194
+ attr_accessor :originator_role
3195
+
3196
+ # Optional private auction id if this proposal is a private auction proposal.
3197
+ # Corresponds to the JSON property `privateAuctionId`
3198
+ # @return [String]
3199
+ attr_accessor :private_auction_id
3200
+
3201
+ # The unique id of the proposal. (readonly).
3202
+ # Corresponds to the JSON property `proposalId`
3203
+ # @return [String]
3204
+ attr_accessor :proposal_id
3205
+
3206
+ # The current state of the proposal. (readonly)
3207
+ # Corresponds to the JSON property `proposalState`
3208
+ # @return [String]
3209
+ attr_accessor :proposal_state
3210
+
3211
+ # The revision number for the proposal (readonly).
3212
+ # Corresponds to the JSON property `revisionNumber`
3213
+ # @return [Fixnum]
3214
+ attr_accessor :revision_number
3215
+
3216
+ # The time (ms since epoch) when the proposal was last revised (readonly).
3217
+ # Corresponds to the JSON property `revisionTimeMs`
3218
+ # @return [Fixnum]
3219
+ attr_accessor :revision_time_ms
3220
+
3221
+ # Reference to the seller on the proposal. (readonly, except on create)
3222
+ # Corresponds to the JSON property `seller`
3223
+ # @return [Google::Apis::AdexchangebuyerV1_4::Seller]
3224
+ attr_accessor :seller
3225
+
3226
+ # Optional contact information of the seller (buyer-readonly).
3227
+ # Corresponds to the JSON property `sellerContacts`
3228
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::ContactInformation>]
3229
+ attr_accessor :seller_contacts
3230
+
3231
+ def initialize(**args)
3232
+ update!(**args)
3233
+ end
3234
+
3235
+ # Update properties of this object
3236
+ def update!(**args)
3237
+ @billed_buyer = args[:billed_buyer] if args.key?(:billed_buyer)
3238
+ @buyer = args[:buyer] if args.key?(:buyer)
3239
+ @buyer_contacts = args[:buyer_contacts] if args.key?(:buyer_contacts)
3240
+ @buyer_private_data = args[:buyer_private_data] if args.key?(:buyer_private_data)
3241
+ @dbm_advertiser_ids = args[:dbm_advertiser_ids] if args.key?(:dbm_advertiser_ids)
3242
+ @has_buyer_signed_off = args[:has_buyer_signed_off] if args.key?(:has_buyer_signed_off)
3243
+ @has_seller_signed_off = args[:has_seller_signed_off] if args.key?(:has_seller_signed_off)
3244
+ @inventory_source = args[:inventory_source] if args.key?(:inventory_source)
3245
+ @is_renegotiating = args[:is_renegotiating] if args.key?(:is_renegotiating)
3246
+ @is_setup_complete = args[:is_setup_complete] if args.key?(:is_setup_complete)
3247
+ @kind = args[:kind] if args.key?(:kind)
3248
+ @labels = args[:labels] if args.key?(:labels)
3249
+ @last_updater_or_commentor_role = args[:last_updater_or_commentor_role] if args.key?(:last_updater_or_commentor_role)
3250
+ @name = args[:name] if args.key?(:name)
3251
+ @negotiation_id = args[:negotiation_id] if args.key?(:negotiation_id)
3252
+ @originator_role = args[:originator_role] if args.key?(:originator_role)
3253
+ @private_auction_id = args[:private_auction_id] if args.key?(:private_auction_id)
3254
+ @proposal_id = args[:proposal_id] if args.key?(:proposal_id)
3255
+ @proposal_state = args[:proposal_state] if args.key?(:proposal_state)
3256
+ @revision_number = args[:revision_number] if args.key?(:revision_number)
3257
+ @revision_time_ms = args[:revision_time_ms] if args.key?(:revision_time_ms)
3258
+ @seller = args[:seller] if args.key?(:seller)
3259
+ @seller_contacts = args[:seller_contacts] if args.key?(:seller_contacts)
3260
+ end
3261
+ end
3262
+
3263
+ #
3264
+ class PublisherProfileApiProto
3265
+ include Google::Apis::Core::Hashable
3266
+
3267
+ # Publisher provided info on its audience.
3268
+ # Corresponds to the JSON property `audience`
3269
+ # @return [String]
3270
+ attr_accessor :audience
3271
+
3272
+ # A pitch statement for the buyer
3273
+ # Corresponds to the JSON property `buyerPitchStatement`
3274
+ # @return [String]
3275
+ attr_accessor :buyer_pitch_statement
3276
+
3277
+ # Direct contact for the publisher profile.
3278
+ # Corresponds to the JSON property `directContact`
3279
+ # @return [String]
3280
+ attr_accessor :direct_contact
3281
+
3282
+ # Exchange where this publisher profile is from. E.g. AdX, Rubicon etc...
3283
+ # Corresponds to the JSON property `exchange`
3284
+ # @return [String]
3285
+ attr_accessor :exchange
3286
+
3287
+ # Link to publisher's Google+ page.
3288
+ # Corresponds to the JSON property `googlePlusLink`
3289
+ # @return [String]
3290
+ attr_accessor :google_plus_link
3291
+
3292
+ # True, if this is the parent profile, which represents all domains owned by the
3293
+ # publisher.
3294
+ # Corresponds to the JSON property `isParent`
3295
+ # @return [Boolean]
3296
+ attr_accessor :is_parent
3297
+ alias_method :is_parent?, :is_parent
3298
+
3299
+ # True, if this profile is published. Deprecated for state.
3300
+ # Corresponds to the JSON property `isPublished`
3301
+ # @return [Boolean]
3302
+ attr_accessor :is_published
3303
+ alias_method :is_published?, :is_published
3304
+
3305
+ # Identifies what kind of resource this is. Value: the fixed string "
3306
+ # adexchangebuyer#publisherProfileApiProto".
3307
+ # Corresponds to the JSON property `kind`
3308
+ # @return [String]
3309
+ attr_accessor :kind
3310
+
3311
+ # The url to the logo for the publisher.
3312
+ # Corresponds to the JSON property `logoUrl`
3313
+ # @return [String]
3314
+ attr_accessor :logo_url
3315
+
3316
+ # The url for additional marketing and sales materials.
3317
+ # Corresponds to the JSON property `mediaKitLink`
3318
+ # @return [String]
3319
+ attr_accessor :media_kit_link
3320
+
3321
+ #
3322
+ # Corresponds to the JSON property `name`
3323
+ # @return [String]
3324
+ attr_accessor :name
3325
+
3326
+ # Publisher provided overview.
3327
+ # Corresponds to the JSON property `overview`
3328
+ # @return [String]
3329
+ attr_accessor :overview
3330
+
3331
+ # The pair of (seller.account_id, profile_id) uniquely identifies a publisher
3332
+ # profile for a given publisher.
3333
+ # Corresponds to the JSON property `profileId`
3334
+ # @return [Fixnum]
3335
+ attr_accessor :profile_id
3336
+
3337
+ # Programmatic contact for the publisher profile.
3338
+ # Corresponds to the JSON property `programmaticContact`
3339
+ # @return [String]
3340
+ attr_accessor :programmatic_contact
3341
+
3342
+ # The list of app IDs represented in this pubisher profile. Empty if this is a
3343
+ # parent profile. Deprecated in favor of publisher_app.
3344
+ # Corresponds to the JSON property `publisherAppIds`
3345
+ # @return [Array<Fixnum>]
3346
+ attr_accessor :publisher_app_ids
3347
+
3348
+ # The list of apps represented in this pubisher profile. Empty if this is a
3349
+ # parent profile.
3350
+ # Corresponds to the JSON property `publisherApps`
3351
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MobileApplication>]
3352
+ attr_accessor :publisher_apps
3353
+
3354
+ # The list of domains represented in this publisher profile. Empty if this is a
3355
+ # parent profile.
3356
+ # Corresponds to the JSON property `publisherDomains`
3357
+ # @return [Array<String>]
3358
+ attr_accessor :publisher_domains
3359
+
3360
+ # Unique Id for publisher profile.
3361
+ # Corresponds to the JSON property `publisherProfileId`
3362
+ # @return [String]
3363
+ attr_accessor :publisher_profile_id
3364
+
3365
+ # This message carries publisher provided forecasting information.
3366
+ # Corresponds to the JSON property `publisherProvidedForecast`
3367
+ # @return [Google::Apis::AdexchangebuyerV1_4::PublisherProvidedForecast]
3368
+ attr_accessor :publisher_provided_forecast
3369
+
3370
+ # Link to publisher rate card
3371
+ # Corresponds to the JSON property `rateCardInfoLink`
3372
+ # @return [String]
3373
+ attr_accessor :rate_card_info_link
3374
+
3375
+ # Link for a sample content page.
3376
+ # Corresponds to the JSON property `samplePageLink`
3377
+ # @return [String]
3378
+ attr_accessor :sample_page_link
3379
+
3380
+ # Seller of the publisher profile.
3381
+ # Corresponds to the JSON property `seller`
3382
+ # @return [Google::Apis::AdexchangebuyerV1_4::Seller]
3383
+ attr_accessor :seller
3384
+
3385
+ # State of the publisher profile.
3386
+ # Corresponds to the JSON property `state`
3387
+ # @return [String]
3388
+ attr_accessor :state
3389
+
3390
+ # Publisher provided key metrics and rankings.
3391
+ # Corresponds to the JSON property `topHeadlines`
3392
+ # @return [Array<String>]
3393
+ attr_accessor :top_headlines
3394
+
3395
+ def initialize(**args)
3396
+ update!(**args)
3397
+ end
3398
+
3399
+ # Update properties of this object
3400
+ def update!(**args)
3401
+ @audience = args[:audience] if args.key?(:audience)
3402
+ @buyer_pitch_statement = args[:buyer_pitch_statement] if args.key?(:buyer_pitch_statement)
3403
+ @direct_contact = args[:direct_contact] if args.key?(:direct_contact)
3404
+ @exchange = args[:exchange] if args.key?(:exchange)
3405
+ @google_plus_link = args[:google_plus_link] if args.key?(:google_plus_link)
3406
+ @is_parent = args[:is_parent] if args.key?(:is_parent)
3407
+ @is_published = args[:is_published] if args.key?(:is_published)
3408
+ @kind = args[:kind] if args.key?(:kind)
3409
+ @logo_url = args[:logo_url] if args.key?(:logo_url)
3410
+ @media_kit_link = args[:media_kit_link] if args.key?(:media_kit_link)
3411
+ @name = args[:name] if args.key?(:name)
3412
+ @overview = args[:overview] if args.key?(:overview)
3413
+ @profile_id = args[:profile_id] if args.key?(:profile_id)
3414
+ @programmatic_contact = args[:programmatic_contact] if args.key?(:programmatic_contact)
3415
+ @publisher_app_ids = args[:publisher_app_ids] if args.key?(:publisher_app_ids)
3416
+ @publisher_apps = args[:publisher_apps] if args.key?(:publisher_apps)
3417
+ @publisher_domains = args[:publisher_domains] if args.key?(:publisher_domains)
3418
+ @publisher_profile_id = args[:publisher_profile_id] if args.key?(:publisher_profile_id)
3419
+ @publisher_provided_forecast = args[:publisher_provided_forecast] if args.key?(:publisher_provided_forecast)
3420
+ @rate_card_info_link = args[:rate_card_info_link] if args.key?(:rate_card_info_link)
3421
+ @sample_page_link = args[:sample_page_link] if args.key?(:sample_page_link)
3422
+ @seller = args[:seller] if args.key?(:seller)
3423
+ @state = args[:state] if args.key?(:state)
3424
+ @top_headlines = args[:top_headlines] if args.key?(:top_headlines)
3425
+ end
3426
+ end
3427
+
3428
+ # This message carries publisher provided forecasting information.
3429
+ class PublisherProvidedForecast
3430
+ include Google::Apis::Core::Hashable
3431
+
3432
+ # Publisher provided dimensions. E.g. geo, sizes etc...
3433
+ # Corresponds to the JSON property `dimensions`
3434
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Dimension>]
3435
+ attr_accessor :dimensions
3436
+
3437
+ # Publisher provided weekly impressions.
3438
+ # Corresponds to the JSON property `weeklyImpressions`
3439
+ # @return [Fixnum]
3440
+ attr_accessor :weekly_impressions
3441
+
3442
+ # Publisher provided weekly uniques.
3443
+ # Corresponds to the JSON property `weeklyUniques`
3444
+ # @return [Fixnum]
3445
+ attr_accessor :weekly_uniques
3446
+
3447
+ def initialize(**args)
3448
+ update!(**args)
3449
+ end
3450
+
3451
+ # Update properties of this object
3452
+ def update!(**args)
3453
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
3454
+ @weekly_impressions = args[:weekly_impressions] if args.key?(:weekly_impressions)
3455
+ @weekly_uniques = args[:weekly_uniques] if args.key?(:weekly_uniques)
3456
+ end
3457
+ end
3458
+
3459
+ #
3460
+ class Seller
3461
+ include Google::Apis::Core::Hashable
3462
+
3463
+ # The unique id for the seller. The seller fills in this field. The seller
3464
+ # account id is then available to buyer in the product.
3465
+ # Corresponds to the JSON property `accountId`
3466
+ # @return [String]
3467
+ attr_accessor :account_id
3468
+
3469
+ # Optional sub-account id for the seller.
3470
+ # Corresponds to the JSON property `subAccountId`
3471
+ # @return [String]
3472
+ attr_accessor :sub_account_id
3473
+
3474
+ def initialize(**args)
3475
+ update!(**args)
3476
+ end
3477
+
3478
+ # Update properties of this object
3479
+ def update!(**args)
3480
+ @account_id = args[:account_id] if args.key?(:account_id)
3481
+ @sub_account_id = args[:sub_account_id] if args.key?(:sub_account_id)
3482
+ end
3483
+ end
3484
+
3485
+ #
3486
+ class SharedTargeting
3487
+ include Google::Apis::Core::Hashable
3488
+
3489
+ # The list of values to exclude from targeting. Each value is AND'd together.
3490
+ # Corresponds to the JSON property `exclusions`
3491
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::TargetingValue>]
3492
+ attr_accessor :exclusions
3493
+
3494
+ # The list of value to include as part of the targeting. Each value is OR'd
3495
+ # together.
3496
+ # Corresponds to the JSON property `inclusions`
3497
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::TargetingValue>]
3498
+ attr_accessor :inclusions
3499
+
3500
+ # The key representing the shared targeting criterion.
3501
+ # Corresponds to the JSON property `key`
3502
+ # @return [String]
3503
+ attr_accessor :key
3504
+
3505
+ def initialize(**args)
3506
+ update!(**args)
3507
+ end
3508
+
3509
+ # Update properties of this object
3510
+ def update!(**args)
3511
+ @exclusions = args[:exclusions] if args.key?(:exclusions)
3512
+ @inclusions = args[:inclusions] if args.key?(:inclusions)
3513
+ @key = args[:key] if args.key?(:key)
3514
+ end
3515
+ end
3516
+
3517
+ #
3518
+ class TargetingValue
3519
+ include Google::Apis::Core::Hashable
3520
+
3521
+ # Next Id: 7
3522
+ # Corresponds to the JSON property `creativeSizeValue`
3523
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueCreativeSize]
3524
+ attr_accessor :creative_size_value
3525
+
3526
+ # The daypart targeting to include / exclude. Filled in when the key is
3527
+ # GOOG_DAYPART_TARGETING.
3528
+ # Corresponds to the JSON property `dayPartTargetingValue`
3529
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueDayPartTargeting]
3530
+ attr_accessor :day_part_targeting_value
3531
+
3532
+ #
3533
+ # Corresponds to the JSON property `demogAgeCriteriaValue`
3534
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueDemogAgeCriteria]
3535
+ attr_accessor :demog_age_criteria_value
3536
+
3537
+ #
3538
+ # Corresponds to the JSON property `demogGenderCriteriaValue`
3539
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueDemogGenderCriteria]
3540
+ attr_accessor :demog_gender_criteria_value
3541
+
3542
+ # The long value to exclude/include.
3543
+ # Corresponds to the JSON property `longValue`
3544
+ # @return [Fixnum]
3545
+ attr_accessor :long_value
3546
+
3547
+ #
3548
+ # Corresponds to the JSON property `requestPlatformTargetingValue`
3549
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueRequestPlatformTargeting]
3550
+ attr_accessor :request_platform_targeting_value
3551
+
3552
+ # The string value to exclude/include.
3553
+ # Corresponds to the JSON property `stringValue`
3554
+ # @return [String]
3555
+ attr_accessor :string_value
3556
+
3557
+ def initialize(**args)
3558
+ update!(**args)
3559
+ end
3560
+
3561
+ # Update properties of this object
3562
+ def update!(**args)
3563
+ @creative_size_value = args[:creative_size_value] if args.key?(:creative_size_value)
3564
+ @day_part_targeting_value = args[:day_part_targeting_value] if args.key?(:day_part_targeting_value)
3565
+ @demog_age_criteria_value = args[:demog_age_criteria_value] if args.key?(:demog_age_criteria_value)
3566
+ @demog_gender_criteria_value = args[:demog_gender_criteria_value] if args.key?(:demog_gender_criteria_value)
3567
+ @long_value = args[:long_value] if args.key?(:long_value)
3568
+ @request_platform_targeting_value = args[:request_platform_targeting_value] if args.key?(:request_platform_targeting_value)
3569
+ @string_value = args[:string_value] if args.key?(:string_value)
3570
+ end
3571
+ end
3572
+
3573
+ # Next Id: 7
3574
+ class TargetingValueCreativeSize
3575
+ include Google::Apis::Core::Hashable
3576
+
3577
+ # The formats allowed by the publisher.
3578
+ # Corresponds to the JSON property `allowedFormats`
3579
+ # @return [Array<String>]
3580
+ attr_accessor :allowed_formats
3581
+
3582
+ # For video size type, the list of companion sizes.
3583
+ # Corresponds to the JSON property `companionSizes`
3584
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::TargetingValueSize>]
3585
+ attr_accessor :companion_sizes
3586
+
3587
+ # The Creative size type.
3588
+ # Corresponds to the JSON property `creativeSizeType`
3589
+ # @return [String]
3590
+ attr_accessor :creative_size_type
3591
+
3592
+ # The native template for native ad.
3593
+ # Corresponds to the JSON property `nativeTemplate`
3594
+ # @return [String]
3595
+ attr_accessor :native_template
3596
+
3597
+ # For regular or video creative size type, specifies the size of the creative.
3598
+ # Corresponds to the JSON property `size`
3599
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueSize]
3600
+ attr_accessor :size
3601
+
3602
+ # The skippable ad type for video size.
3603
+ # Corresponds to the JSON property `skippableAdType`
3604
+ # @return [String]
3605
+ attr_accessor :skippable_ad_type
3606
+
3607
+ def initialize(**args)
3608
+ update!(**args)
3609
+ end
3610
+
3611
+ # Update properties of this object
3612
+ def update!(**args)
3613
+ @allowed_formats = args[:allowed_formats] if args.key?(:allowed_formats)
3614
+ @companion_sizes = args[:companion_sizes] if args.key?(:companion_sizes)
3615
+ @creative_size_type = args[:creative_size_type] if args.key?(:creative_size_type)
3616
+ @native_template = args[:native_template] if args.key?(:native_template)
3617
+ @size = args[:size] if args.key?(:size)
3618
+ @skippable_ad_type = args[:skippable_ad_type] if args.key?(:skippable_ad_type)
3619
+ end
3620
+ end
3621
+
3622
+ #
3623
+ class TargetingValueDayPartTargeting
3624
+ include Google::Apis::Core::Hashable
3625
+
3626
+ #
3627
+ # Corresponds to the JSON property `dayParts`
3628
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::TargetingValueDayPartTargetingDayPart>]
3629
+ attr_accessor :day_parts
3630
+
3631
+ #
3632
+ # Corresponds to the JSON property `timeZoneType`
3633
+ # @return [String]
3634
+ attr_accessor :time_zone_type
3635
+
3636
+ def initialize(**args)
3637
+ update!(**args)
3638
+ end
3639
+
3640
+ # Update properties of this object
3641
+ def update!(**args)
3642
+ @day_parts = args[:day_parts] if args.key?(:day_parts)
3643
+ @time_zone_type = args[:time_zone_type] if args.key?(:time_zone_type)
3644
+ end
3645
+ end
3646
+
3647
+ #
3648
+ class TargetingValueDayPartTargetingDayPart
3649
+ include Google::Apis::Core::Hashable
3650
+
3651
+ #
3652
+ # Corresponds to the JSON property `dayOfWeek`
3653
+ # @return [String]
3654
+ attr_accessor :day_of_week
3655
+
3656
+ #
3657
+ # Corresponds to the JSON property `endHour`
3658
+ # @return [Fixnum]
3659
+ attr_accessor :end_hour
3660
+
3661
+ #
3662
+ # Corresponds to the JSON property `endMinute`
3663
+ # @return [Fixnum]
3664
+ attr_accessor :end_minute
3665
+
3666
+ #
3667
+ # Corresponds to the JSON property `startHour`
3668
+ # @return [Fixnum]
3669
+ attr_accessor :start_hour
3670
+
3671
+ #
3672
+ # Corresponds to the JSON property `startMinute`
3673
+ # @return [Fixnum]
3674
+ attr_accessor :start_minute
3675
+
3676
+ def initialize(**args)
3677
+ update!(**args)
3678
+ end
3679
+
3680
+ # Update properties of this object
3681
+ def update!(**args)
3682
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
3683
+ @end_hour = args[:end_hour] if args.key?(:end_hour)
3684
+ @end_minute = args[:end_minute] if args.key?(:end_minute)
3685
+ @start_hour = args[:start_hour] if args.key?(:start_hour)
3686
+ @start_minute = args[:start_minute] if args.key?(:start_minute)
3687
+ end
3688
+ end
3689
+
3690
+ #
3691
+ class TargetingValueDemogAgeCriteria
3692
+ include Google::Apis::Core::Hashable
3693
+
3694
+ #
3695
+ # Corresponds to the JSON property `demogAgeCriteriaIds`
3696
+ # @return [Array<String>]
3697
+ attr_accessor :demog_age_criteria_ids
3698
+
3699
+ def initialize(**args)
3700
+ update!(**args)
3701
+ end
3702
+
3703
+ # Update properties of this object
3704
+ def update!(**args)
3705
+ @demog_age_criteria_ids = args[:demog_age_criteria_ids] if args.key?(:demog_age_criteria_ids)
3706
+ end
3707
+ end
3708
+
3709
+ #
3710
+ class TargetingValueDemogGenderCriteria
3711
+ include Google::Apis::Core::Hashable
3712
+
3713
+ #
3714
+ # Corresponds to the JSON property `demogGenderCriteriaIds`
3715
+ # @return [Array<String>]
3716
+ attr_accessor :demog_gender_criteria_ids
3717
+
3718
+ def initialize(**args)
3719
+ update!(**args)
3720
+ end
3721
+
3722
+ # Update properties of this object
3723
+ def update!(**args)
3724
+ @demog_gender_criteria_ids = args[:demog_gender_criteria_ids] if args.key?(:demog_gender_criteria_ids)
3725
+ end
3726
+ end
3727
+
3728
+ #
3729
+ class TargetingValueRequestPlatformTargeting
3730
+ include Google::Apis::Core::Hashable
3731
+
3732
+ #
3733
+ # Corresponds to the JSON property `requestPlatforms`
3734
+ # @return [Array<String>]
3735
+ attr_accessor :request_platforms
3736
+
3737
+ def initialize(**args)
3738
+ update!(**args)
3739
+ end
3740
+
3741
+ # Update properties of this object
3742
+ def update!(**args)
3743
+ @request_platforms = args[:request_platforms] if args.key?(:request_platforms)
3744
+ end
3745
+ end
3746
+
3747
+ #
3748
+ class TargetingValueSize
3749
+ include Google::Apis::Core::Hashable
3750
+
3751
+ # The height of the creative.
3752
+ # Corresponds to the JSON property `height`
3753
+ # @return [Fixnum]
3754
+ attr_accessor :height
3755
+
3756
+ # The width of the creative.
3757
+ # Corresponds to the JSON property `width`
3758
+ # @return [Fixnum]
3759
+ attr_accessor :width
3760
+
3761
+ def initialize(**args)
3762
+ update!(**args)
3763
+ end
3764
+
3765
+ # Update properties of this object
3766
+ def update!(**args)
3767
+ @height = args[:height] if args.key?(:height)
3768
+ @width = args[:width] if args.key?(:width)
3769
+ end
3770
+ end
3771
+
3772
+ #
3773
+ class UpdatePrivateAuctionProposalRequest
3774
+ include Google::Apis::Core::Hashable
3775
+
3776
+ # The externalDealId of the deal to be updated.
3777
+ # Corresponds to the JSON property `externalDealId`
3778
+ # @return [String]
3779
+ attr_accessor :external_deal_id
3780
+
3781
+ # A proposal is associated with a bunch of notes which may optionally be
3782
+ # associated with a deal and/or revision number.
3783
+ # Corresponds to the JSON property `note`
3784
+ # @return [Google::Apis::AdexchangebuyerV1_4::MarketplaceNote]
3785
+ attr_accessor :note
3786
+
3787
+ # The current revision number of the proposal to be updated.
3788
+ # Corresponds to the JSON property `proposalRevisionNumber`
3789
+ # @return [Fixnum]
3790
+ attr_accessor :proposal_revision_number
3791
+
3792
+ # The proposed action on the private auction proposal.
3793
+ # Corresponds to the JSON property `updateAction`
3794
+ # @return [String]
3795
+ attr_accessor :update_action
3796
+
3797
+ def initialize(**args)
3798
+ update!(**args)
3799
+ end
3800
+
3801
+ # Update properties of this object
3802
+ def update!(**args)
3803
+ @external_deal_id = args[:external_deal_id] if args.key?(:external_deal_id)
3804
+ @note = args[:note] if args.key?(:note)
3805
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
3806
+ @update_action = args[:update_action] if args.key?(:update_action)
3807
+ end
3808
+ end
3809
+ end
3810
+ end
3811
+ end