google-apis-adexchangebuyer_v1_3 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: 033afb60c858aba9be7bb14ff06ed46fc60af60eb3542e987ed76e1e9b0b08cd
4
+ data.tar.gz: 3a2db8799742b417d266e0d8637998a1f0d8589944c7516035d263d23bd1cd2c
5
+ SHA512:
6
+ metadata.gz: cd67e06926e49ca44702e69017998dd73e0a032fbc796725e75e7237024fe36eef5dea879d7ea9b713433899a01b96e81a5cf23090bb9fe6bbdd23a39c4b7877
7
+ data.tar.gz: 11f569bc99e72ce6acc421c0eca1b66a3a5e54f26d5711b53c4e2c650140942edcc8a523788cb5ba6a4da7114df3007f30e9c951e91b42db6294cf0575bbc073
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-adexchangebuyer_v1_3
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/adexchangebuyer_v1_3/*.rb
9
+ lib/google/apis/adexchangebuyer_v1_3.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-adexchangebuyer_v1_3
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20191108
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_3 of the Ad Exchange Buyer API
2
+
3
+ This is a simple client library for version V1_3 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_3', '~> 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_3
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_3"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::AdexchangebuyerV1_3::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_3::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_3`, 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_3"
@@ -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_3/service.rb'
16
+ require 'google/apis/adexchangebuyer_v1_3/classes.rb'
17
+ require 'google/apis/adexchangebuyer_v1_3/representations.rb'
18
+ require 'google/apis/adexchangebuyer_v1_3/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_3
29
+ # Version of the Ad Exchange Buyer API this client connects to.
30
+ # This is NOT the gem version.
31
+ VERSION = 'V1_3'
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,1395 @@
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_3
24
+
25
+ # Configuration data for an Ad Exchange buyer account.
26
+ class Account
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Your bidder locations that have distinct URLs.
30
+ # Corresponds to the JSON property `bidderLocation`
31
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::Account::BidderLocation>]
32
+ attr_accessor :bidder_location
33
+
34
+ # The nid parameter value used in cookie match requests. Please contact your
35
+ # technical account manager if you need to change this.
36
+ # Corresponds to the JSON property `cookieMatchingNid`
37
+ # @return [String]
38
+ attr_accessor :cookie_matching_nid
39
+
40
+ # The base URL used in cookie match requests.
41
+ # Corresponds to the JSON property `cookieMatchingUrl`
42
+ # @return [String]
43
+ attr_accessor :cookie_matching_url
44
+
45
+ # Account id.
46
+ # Corresponds to the JSON property `id`
47
+ # @return [Fixnum]
48
+ attr_accessor :id
49
+
50
+ # Resource type.
51
+ # Corresponds to the JSON property `kind`
52
+ # @return [String]
53
+ attr_accessor :kind
54
+
55
+ # The maximum number of active creatives that an account can have, where a
56
+ # creative is active if it was inserted or bid with in the last 30 days. Please
57
+ # contact your technical account manager if you need to change this.
58
+ # Corresponds to the JSON property `maximumActiveCreatives`
59
+ # @return [Fixnum]
60
+ attr_accessor :maximum_active_creatives
61
+
62
+ # The sum of all bidderLocation.maximumQps values cannot exceed this. Please
63
+ # contact your technical account manager if you need to change this.
64
+ # Corresponds to the JSON property `maximumTotalQps`
65
+ # @return [Fixnum]
66
+ attr_accessor :maximum_total_qps
67
+
68
+ # The number of creatives that this account inserted or bid with in the last 30
69
+ # days.
70
+ # Corresponds to the JSON property `numberActiveCreatives`
71
+ # @return [Fixnum]
72
+ attr_accessor :number_active_creatives
73
+
74
+ def initialize(**args)
75
+ update!(**args)
76
+ end
77
+
78
+ # Update properties of this object
79
+ def update!(**args)
80
+ @bidder_location = args[:bidder_location] if args.key?(:bidder_location)
81
+ @cookie_matching_nid = args[:cookie_matching_nid] if args.key?(:cookie_matching_nid)
82
+ @cookie_matching_url = args[:cookie_matching_url] if args.key?(:cookie_matching_url)
83
+ @id = args[:id] if args.key?(:id)
84
+ @kind = args[:kind] if args.key?(:kind)
85
+ @maximum_active_creatives = args[:maximum_active_creatives] if args.key?(:maximum_active_creatives)
86
+ @maximum_total_qps = args[:maximum_total_qps] if args.key?(:maximum_total_qps)
87
+ @number_active_creatives = args[:number_active_creatives] if args.key?(:number_active_creatives)
88
+ end
89
+
90
+ #
91
+ class BidderLocation
92
+ include Google::Apis::Core::Hashable
93
+
94
+ # The maximum queries per second the Ad Exchange will send.
95
+ # Corresponds to the JSON property `maximumQps`
96
+ # @return [Fixnum]
97
+ attr_accessor :maximum_qps
98
+
99
+ # The geographical region the Ad Exchange should send requests from. Only used
100
+ # by some quota systems, but always setting the value is recommended. Allowed
101
+ # values:
102
+ # - ASIA
103
+ # - EUROPE
104
+ # - US_EAST
105
+ # - US_WEST
106
+ # Corresponds to the JSON property `region`
107
+ # @return [String]
108
+ attr_accessor :region
109
+
110
+ # The URL to which the Ad Exchange will send bid requests.
111
+ # Corresponds to the JSON property `url`
112
+ # @return [String]
113
+ attr_accessor :url
114
+
115
+ def initialize(**args)
116
+ update!(**args)
117
+ end
118
+
119
+ # Update properties of this object
120
+ def update!(**args)
121
+ @maximum_qps = args[:maximum_qps] if args.key?(:maximum_qps)
122
+ @region = args[:region] if args.key?(:region)
123
+ @url = args[:url] if args.key?(:url)
124
+ end
125
+ end
126
+ end
127
+
128
+ # An account feed lists Ad Exchange buyer accounts that the user has access to.
129
+ # Each entry in the feed corresponds to a single buyer account.
130
+ class AccountsList
131
+ include Google::Apis::Core::Hashable
132
+
133
+ # A list of accounts.
134
+ # Corresponds to the JSON property `items`
135
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::Account>]
136
+ attr_accessor :items
137
+
138
+ # Resource type.
139
+ # Corresponds to the JSON property `kind`
140
+ # @return [String]
141
+ attr_accessor :kind
142
+
143
+ def initialize(**args)
144
+ update!(**args)
145
+ end
146
+
147
+ # Update properties of this object
148
+ def update!(**args)
149
+ @items = args[:items] if args.key?(:items)
150
+ @kind = args[:kind] if args.key?(:kind)
151
+ end
152
+ end
153
+
154
+ # The configuration data for an Ad Exchange billing info.
155
+ class BillingInfo
156
+ include Google::Apis::Core::Hashable
157
+
158
+ # Account id.
159
+ # Corresponds to the JSON property `accountId`
160
+ # @return [Fixnum]
161
+ attr_accessor :account_id
162
+
163
+ # Account name.
164
+ # Corresponds to the JSON property `accountName`
165
+ # @return [String]
166
+ attr_accessor :account_name
167
+
168
+ # A list of adgroup IDs associated with this particular account. These IDs may
169
+ # show up as part of a realtime bidding BidRequest, which indicates a bid
170
+ # request for this account.
171
+ # Corresponds to the JSON property `billingId`
172
+ # @return [Array<String>]
173
+ attr_accessor :billing_id
174
+
175
+ # Resource type.
176
+ # Corresponds to the JSON property `kind`
177
+ # @return [String]
178
+ attr_accessor :kind
179
+
180
+ def initialize(**args)
181
+ update!(**args)
182
+ end
183
+
184
+ # Update properties of this object
185
+ def update!(**args)
186
+ @account_id = args[:account_id] if args.key?(:account_id)
187
+ @account_name = args[:account_name] if args.key?(:account_name)
188
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
189
+ @kind = args[:kind] if args.key?(:kind)
190
+ end
191
+ end
192
+
193
+ # A billing info feed lists Billing Info the Ad Exchange buyer account has
194
+ # access to. Each entry in the feed corresponds to a single billing info.
195
+ class BillingInfoList
196
+ include Google::Apis::Core::Hashable
197
+
198
+ # A list of billing info relevant for your account.
199
+ # Corresponds to the JSON property `items`
200
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::BillingInfo>]
201
+ attr_accessor :items
202
+
203
+ # Resource type.
204
+ # Corresponds to the JSON property `kind`
205
+ # @return [String]
206
+ attr_accessor :kind
207
+
208
+ def initialize(**args)
209
+ update!(**args)
210
+ end
211
+
212
+ # Update properties of this object
213
+ def update!(**args)
214
+ @items = args[:items] if args.key?(:items)
215
+ @kind = args[:kind] if args.key?(:kind)
216
+ end
217
+ end
218
+
219
+ # The configuration data for Ad Exchange RTB - Budget API.
220
+ class Budget
221
+ include Google::Apis::Core::Hashable
222
+
223
+ # The id of the account. This is required for get and update requests.
224
+ # Corresponds to the JSON property `accountId`
225
+ # @return [Fixnum]
226
+ attr_accessor :account_id
227
+
228
+ # The billing id to determine which adgroup to provide budget information for.
229
+ # This is required for get and update requests.
230
+ # Corresponds to the JSON property `billingId`
231
+ # @return [Fixnum]
232
+ attr_accessor :billing_id
233
+
234
+ # The daily budget amount in unit amount of the account currency to apply for
235
+ # the billingId provided. This is required for update requests.
236
+ # Corresponds to the JSON property `budgetAmount`
237
+ # @return [Fixnum]
238
+ attr_accessor :budget_amount
239
+
240
+ # The currency code for the buyer. This cannot be altered here.
241
+ # Corresponds to the JSON property `currencyCode`
242
+ # @return [String]
243
+ attr_accessor :currency_code
244
+
245
+ # The unique id that describes this item.
246
+ # Corresponds to the JSON property `id`
247
+ # @return [String]
248
+ attr_accessor :id
249
+
250
+ # The kind of the resource, i.e. "adexchangebuyer#budget".
251
+ # Corresponds to the JSON property `kind`
252
+ # @return [String]
253
+ attr_accessor :kind
254
+
255
+ def initialize(**args)
256
+ update!(**args)
257
+ end
258
+
259
+ # Update properties of this object
260
+ def update!(**args)
261
+ @account_id = args[:account_id] if args.key?(:account_id)
262
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
263
+ @budget_amount = args[:budget_amount] if args.key?(:budget_amount)
264
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
265
+ @id = args[:id] if args.key?(:id)
266
+ @kind = args[:kind] if args.key?(:kind)
267
+ end
268
+ end
269
+
270
+ # A creative and its classification data.
271
+ class Creative
272
+ include Google::Apis::Core::Hashable
273
+
274
+ # The HTML snippet that displays the ad when inserted in the web page. If set,
275
+ # videoURL should not be set.
276
+ # Corresponds to the JSON property `HTMLSnippet`
277
+ # @return [String]
278
+ attr_accessor :html_snippet
279
+
280
+ # Account id.
281
+ # Corresponds to the JSON property `accountId`
282
+ # @return [Fixnum]
283
+ attr_accessor :account_id
284
+
285
+ #
286
+ # Corresponds to the JSON property `adTechnologyProviders`
287
+ # @return [Google::Apis::AdexchangebuyerV1_3::Creative::AdTechnologyProviders]
288
+ attr_accessor :ad_technology_providers
289
+
290
+ # Detected advertiser id, if any. Read-only. This field should not be set in
291
+ # requests.
292
+ # Corresponds to the JSON property `advertiserId`
293
+ # @return [Array<Fixnum>]
294
+ attr_accessor :advertiser_id
295
+
296
+ # The name of the company being advertised in the creative.
297
+ # Corresponds to the JSON property `advertiserName`
298
+ # @return [String]
299
+ attr_accessor :advertiser_name
300
+
301
+ # The agency id for this creative.
302
+ # Corresponds to the JSON property `agencyId`
303
+ # @return [Fixnum]
304
+ attr_accessor :agency_id
305
+
306
+ # The last upload timestamp of this creative if it was uploaded via API. Read-
307
+ # only. The value of this field is generated, and will be ignored for uploads. (
308
+ # formatted RFC 3339 timestamp).
309
+ # Corresponds to the JSON property `apiUploadTimestamp`
310
+ # @return [DateTime]
311
+ attr_accessor :api_upload_timestamp
312
+
313
+ # All attributes for the ads that may be shown from this snippet.
314
+ # Corresponds to the JSON property `attribute`
315
+ # @return [Array<Fixnum>]
316
+ attr_accessor :attribute
317
+
318
+ # A buyer-specific id identifying the creative in this ad.
319
+ # Corresponds to the JSON property `buyerCreativeId`
320
+ # @return [String]
321
+ attr_accessor :buyer_creative_id
322
+
323
+ # The set of destination urls for the snippet.
324
+ # Corresponds to the JSON property `clickThroughUrl`
325
+ # @return [Array<String>]
326
+ attr_accessor :click_through_url
327
+
328
+ # Shows any corrections that were applied to this creative. Read-only. This
329
+ # field should not be set in requests.
330
+ # Corresponds to the JSON property `corrections`
331
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::Creative::Correction>]
332
+ attr_accessor :corrections
333
+
334
+ # The reasons for disapproval, if any. Note that not all disapproval reasons may
335
+ # be categorized, so it is possible for the creative to have a status of
336
+ # DISAPPROVED with an empty list for disapproval_reasons. In this case, please
337
+ # reach out to your TAM to help debug the issue. Read-only. This field should
338
+ # not be set in requests.
339
+ # Corresponds to the JSON property `disapprovalReasons`
340
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::Creative::DisapprovalReason>]
341
+ attr_accessor :disapproval_reasons
342
+
343
+ # The filtering reasons for the creative. Read-only. This field should not be
344
+ # set in requests.
345
+ # Corresponds to the JSON property `filteringReasons`
346
+ # @return [Google::Apis::AdexchangebuyerV1_3::Creative::FilteringReasons]
347
+ attr_accessor :filtering_reasons
348
+
349
+ # Ad height.
350
+ # Corresponds to the JSON property `height`
351
+ # @return [Fixnum]
352
+ attr_accessor :height
353
+
354
+ # The set of urls to be called to record an impression.
355
+ # Corresponds to the JSON property `impressionTrackingUrl`
356
+ # @return [Array<String>]
357
+ attr_accessor :impression_tracking_url
358
+
359
+ # Resource type.
360
+ # Corresponds to the JSON property `kind`
361
+ # @return [String]
362
+ attr_accessor :kind
363
+
364
+ # If nativeAd is set, HTMLSnippet and videoURL should not be set.
365
+ # Corresponds to the JSON property `nativeAd`
366
+ # @return [Google::Apis::AdexchangebuyerV1_3::Creative::NativeAd]
367
+ attr_accessor :native_ad
368
+
369
+ # Detected product categories, if any. Read-only. This field should not be set
370
+ # in requests.
371
+ # Corresponds to the JSON property `productCategories`
372
+ # @return [Array<Fixnum>]
373
+ attr_accessor :product_categories
374
+
375
+ # All restricted categories for the ads that may be shown from this snippet.
376
+ # Corresponds to the JSON property `restrictedCategories`
377
+ # @return [Array<Fixnum>]
378
+ attr_accessor :restricted_categories
379
+
380
+ # Detected sensitive categories, if any. Read-only. This field should not be set
381
+ # in requests.
382
+ # Corresponds to the JSON property `sensitiveCategories`
383
+ # @return [Array<Fixnum>]
384
+ attr_accessor :sensitive_categories
385
+
386
+ # Creative serving status. Read-only. This field should not be set in requests.
387
+ # Corresponds to the JSON property `status`
388
+ # @return [String]
389
+ attr_accessor :status
390
+
391
+ # All vendor types for the ads that may be shown from this snippet.
392
+ # Corresponds to the JSON property `vendorType`
393
+ # @return [Array<Fixnum>]
394
+ attr_accessor :vendor_type
395
+
396
+ # The version for this creative. Read-only. This field should not be set in
397
+ # requests.
398
+ # Corresponds to the JSON property `version`
399
+ # @return [Fixnum]
400
+ attr_accessor :version
401
+
402
+ # The URL to fetch a video ad. If set, HTMLSnippet and the nativeAd should not
403
+ # be set.
404
+ # Corresponds to the JSON property `videoURL`
405
+ # @return [String]
406
+ attr_accessor :video_url
407
+
408
+ # Ad width.
409
+ # Corresponds to the JSON property `width`
410
+ # @return [Fixnum]
411
+ attr_accessor :width
412
+
413
+ def initialize(**args)
414
+ update!(**args)
415
+ end
416
+
417
+ # Update properties of this object
418
+ def update!(**args)
419
+ @html_snippet = args[:html_snippet] if args.key?(:html_snippet)
420
+ @account_id = args[:account_id] if args.key?(:account_id)
421
+ @ad_technology_providers = args[:ad_technology_providers] if args.key?(:ad_technology_providers)
422
+ @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
423
+ @advertiser_name = args[:advertiser_name] if args.key?(:advertiser_name)
424
+ @agency_id = args[:agency_id] if args.key?(:agency_id)
425
+ @api_upload_timestamp = args[:api_upload_timestamp] if args.key?(:api_upload_timestamp)
426
+ @attribute = args[:attribute] if args.key?(:attribute)
427
+ @buyer_creative_id = args[:buyer_creative_id] if args.key?(:buyer_creative_id)
428
+ @click_through_url = args[:click_through_url] if args.key?(:click_through_url)
429
+ @corrections = args[:corrections] if args.key?(:corrections)
430
+ @disapproval_reasons = args[:disapproval_reasons] if args.key?(:disapproval_reasons)
431
+ @filtering_reasons = args[:filtering_reasons] if args.key?(:filtering_reasons)
432
+ @height = args[:height] if args.key?(:height)
433
+ @impression_tracking_url = args[:impression_tracking_url] if args.key?(:impression_tracking_url)
434
+ @kind = args[:kind] if args.key?(:kind)
435
+ @native_ad = args[:native_ad] if args.key?(:native_ad)
436
+ @product_categories = args[:product_categories] if args.key?(:product_categories)
437
+ @restricted_categories = args[:restricted_categories] if args.key?(:restricted_categories)
438
+ @sensitive_categories = args[:sensitive_categories] if args.key?(:sensitive_categories)
439
+ @status = args[:status] if args.key?(:status)
440
+ @vendor_type = args[:vendor_type] if args.key?(:vendor_type)
441
+ @version = args[:version] if args.key?(:version)
442
+ @video_url = args[:video_url] if args.key?(:video_url)
443
+ @width = args[:width] if args.key?(:width)
444
+ end
445
+
446
+ #
447
+ class AdTechnologyProviders
448
+ include Google::Apis::Core::Hashable
449
+
450
+ # The detected ad technology provider IDs for this creative. See https://storage.
451
+ # googleapis.com/adx-rtb-dictionaries/providers.csv for mapping of provider ID
452
+ # to provided name, a privacy policy URL, and a list of domains which can be
453
+ # attributed to the provider. If this creative contains provider IDs that are
454
+ # outside of those listed in the `BidRequest.adslot.consented_providers_settings.
455
+ # consented_providers` field on the Authorized Buyers Real-Time Bidding
456
+ # protocol or the `BidRequest.user.ext.consented_providers_settings.
457
+ # consented_providers` field on the OpenRTB protocol, a bid submitted for a
458
+ # European Economic Area (EEA) user with this creative is not compliant with the
459
+ # GDPR policies as mentioned in the "Third-party Ad Technology Vendors" section
460
+ # of Authorized Buyers Program Guidelines.
461
+ # Corresponds to the JSON property `detectedProviderIds`
462
+ # @return [Array<Fixnum>]
463
+ attr_accessor :detected_provider_ids
464
+
465
+ # Whether the creative contains an unidentified ad technology provider. If true,
466
+ # a bid submitted for a European Economic Area (EEA) user with this creative is
467
+ # not compliant with the GDPR policies as mentioned in the "Third-party Ad
468
+ # Technology Vendors" section of Authorized Buyers Program Guidelines.
469
+ # Corresponds to the JSON property `hasUnidentifiedProvider`
470
+ # @return [Boolean]
471
+ attr_accessor :has_unidentified_provider
472
+ alias_method :has_unidentified_provider?, :has_unidentified_provider
473
+
474
+ def initialize(**args)
475
+ update!(**args)
476
+ end
477
+
478
+ # Update properties of this object
479
+ def update!(**args)
480
+ @detected_provider_ids = args[:detected_provider_ids] if args.key?(:detected_provider_ids)
481
+ @has_unidentified_provider = args[:has_unidentified_provider] if args.key?(:has_unidentified_provider)
482
+ end
483
+ end
484
+
485
+ #
486
+ class Correction
487
+ include Google::Apis::Core::Hashable
488
+
489
+ # Additional details about the correction.
490
+ # Corresponds to the JSON property `details`
491
+ # @return [Array<String>]
492
+ attr_accessor :details
493
+
494
+ # The type of correction that was applied to the creative.
495
+ # Corresponds to the JSON property `reason`
496
+ # @return [String]
497
+ attr_accessor :reason
498
+
499
+ def initialize(**args)
500
+ update!(**args)
501
+ end
502
+
503
+ # Update properties of this object
504
+ def update!(**args)
505
+ @details = args[:details] if args.key?(:details)
506
+ @reason = args[:reason] if args.key?(:reason)
507
+ end
508
+ end
509
+
510
+ #
511
+ class DisapprovalReason
512
+ include Google::Apis::Core::Hashable
513
+
514
+ # Additional details about the reason for disapproval.
515
+ # Corresponds to the JSON property `details`
516
+ # @return [Array<String>]
517
+ attr_accessor :details
518
+
519
+ # The categorized reason for disapproval.
520
+ # Corresponds to the JSON property `reason`
521
+ # @return [String]
522
+ attr_accessor :reason
523
+
524
+ def initialize(**args)
525
+ update!(**args)
526
+ end
527
+
528
+ # Update properties of this object
529
+ def update!(**args)
530
+ @details = args[:details] if args.key?(:details)
531
+ @reason = args[:reason] if args.key?(:reason)
532
+ end
533
+ end
534
+
535
+ # The filtering reasons for the creative. Read-only. This field should not be
536
+ # set in requests.
537
+ class FilteringReasons
538
+ include Google::Apis::Core::Hashable
539
+
540
+ # The date in ISO 8601 format for the data. The data is collected from 00:00:00
541
+ # to 23:59:59 in PST.
542
+ # Corresponds to the JSON property `date`
543
+ # @return [String]
544
+ attr_accessor :date
545
+
546
+ # The filtering reasons.
547
+ # Corresponds to the JSON property `reasons`
548
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::Creative::FilteringReasons::Reason>]
549
+ attr_accessor :reasons
550
+
551
+ def initialize(**args)
552
+ update!(**args)
553
+ end
554
+
555
+ # Update properties of this object
556
+ def update!(**args)
557
+ @date = args[:date] if args.key?(:date)
558
+ @reasons = args[:reasons] if args.key?(:reasons)
559
+ end
560
+
561
+ #
562
+ class Reason
563
+ include Google::Apis::Core::Hashable
564
+
565
+ # The number of times the creative was filtered for the status. The count is
566
+ # aggregated across all publishers on the exchange.
567
+ # Corresponds to the JSON property `filteringCount`
568
+ # @return [Fixnum]
569
+ attr_accessor :filtering_count
570
+
571
+ # The filtering status code. Please refer to the creative-status-codes.txt file
572
+ # for different statuses.
573
+ # Corresponds to the JSON property `filteringStatus`
574
+ # @return [Fixnum]
575
+ attr_accessor :filtering_status
576
+
577
+ def initialize(**args)
578
+ update!(**args)
579
+ end
580
+
581
+ # Update properties of this object
582
+ def update!(**args)
583
+ @filtering_count = args[:filtering_count] if args.key?(:filtering_count)
584
+ @filtering_status = args[:filtering_status] if args.key?(:filtering_status)
585
+ end
586
+ end
587
+ end
588
+
589
+ # If nativeAd is set, HTMLSnippet and videoURL should not be set.
590
+ class NativeAd
591
+ include Google::Apis::Core::Hashable
592
+
593
+ #
594
+ # Corresponds to the JSON property `advertiser`
595
+ # @return [String]
596
+ attr_accessor :advertiser
597
+
598
+ # The app icon, for app download ads.
599
+ # Corresponds to the JSON property `appIcon`
600
+ # @return [Google::Apis::AdexchangebuyerV1_3::Creative::NativeAd::AppIcon]
601
+ attr_accessor :app_icon
602
+
603
+ # A long description of the ad.
604
+ # Corresponds to the JSON property `body`
605
+ # @return [String]
606
+ attr_accessor :body
607
+
608
+ # A label for the button that the user is supposed to click.
609
+ # Corresponds to the JSON property `callToAction`
610
+ # @return [String]
611
+ attr_accessor :call_to_action
612
+
613
+ # The URL to use for click tracking.
614
+ # Corresponds to the JSON property `clickTrackingUrl`
615
+ # @return [String]
616
+ attr_accessor :click_tracking_url
617
+
618
+ # A short title for the ad.
619
+ # Corresponds to the JSON property `headline`
620
+ # @return [String]
621
+ attr_accessor :headline
622
+
623
+ # A large image.
624
+ # Corresponds to the JSON property `image`
625
+ # @return [Google::Apis::AdexchangebuyerV1_3::Creative::NativeAd::Image]
626
+ attr_accessor :image
627
+
628
+ # The URLs are called when the impression is rendered.
629
+ # Corresponds to the JSON property `impressionTrackingUrl`
630
+ # @return [Array<String>]
631
+ attr_accessor :impression_tracking_url
632
+
633
+ # A smaller image, for the advertiser logo.
634
+ # Corresponds to the JSON property `logo`
635
+ # @return [Google::Apis::AdexchangebuyerV1_3::Creative::NativeAd::Logo]
636
+ attr_accessor :logo
637
+
638
+ # The price of the promoted app including the currency info.
639
+ # Corresponds to the JSON property `price`
640
+ # @return [String]
641
+ attr_accessor :price
642
+
643
+ # The app rating in the app store. Must be in the range [0-5].
644
+ # Corresponds to the JSON property `starRating`
645
+ # @return [Float]
646
+ attr_accessor :star_rating
647
+
648
+ def initialize(**args)
649
+ update!(**args)
650
+ end
651
+
652
+ # Update properties of this object
653
+ def update!(**args)
654
+ @advertiser = args[:advertiser] if args.key?(:advertiser)
655
+ @app_icon = args[:app_icon] if args.key?(:app_icon)
656
+ @body = args[:body] if args.key?(:body)
657
+ @call_to_action = args[:call_to_action] if args.key?(:call_to_action)
658
+ @click_tracking_url = args[:click_tracking_url] if args.key?(:click_tracking_url)
659
+ @headline = args[:headline] if args.key?(:headline)
660
+ @image = args[:image] if args.key?(:image)
661
+ @impression_tracking_url = args[:impression_tracking_url] if args.key?(:impression_tracking_url)
662
+ @logo = args[:logo] if args.key?(:logo)
663
+ @price = args[:price] if args.key?(:price)
664
+ @star_rating = args[:star_rating] if args.key?(:star_rating)
665
+ end
666
+
667
+ # The app icon, for app download ads.
668
+ class AppIcon
669
+ include Google::Apis::Core::Hashable
670
+
671
+ #
672
+ # Corresponds to the JSON property `height`
673
+ # @return [Fixnum]
674
+ attr_accessor :height
675
+
676
+ #
677
+ # Corresponds to the JSON property `url`
678
+ # @return [String]
679
+ attr_accessor :url
680
+
681
+ #
682
+ # Corresponds to the JSON property `width`
683
+ # @return [Fixnum]
684
+ attr_accessor :width
685
+
686
+ def initialize(**args)
687
+ update!(**args)
688
+ end
689
+
690
+ # Update properties of this object
691
+ def update!(**args)
692
+ @height = args[:height] if args.key?(:height)
693
+ @url = args[:url] if args.key?(:url)
694
+ @width = args[:width] if args.key?(:width)
695
+ end
696
+ end
697
+
698
+ # A large image.
699
+ class Image
700
+ include Google::Apis::Core::Hashable
701
+
702
+ #
703
+ # Corresponds to the JSON property `height`
704
+ # @return [Fixnum]
705
+ attr_accessor :height
706
+
707
+ #
708
+ # Corresponds to the JSON property `url`
709
+ # @return [String]
710
+ attr_accessor :url
711
+
712
+ #
713
+ # Corresponds to the JSON property `width`
714
+ # @return [Fixnum]
715
+ attr_accessor :width
716
+
717
+ def initialize(**args)
718
+ update!(**args)
719
+ end
720
+
721
+ # Update properties of this object
722
+ def update!(**args)
723
+ @height = args[:height] if args.key?(:height)
724
+ @url = args[:url] if args.key?(:url)
725
+ @width = args[:width] if args.key?(:width)
726
+ end
727
+ end
728
+
729
+ # A smaller image, for the advertiser logo.
730
+ class Logo
731
+ include Google::Apis::Core::Hashable
732
+
733
+ #
734
+ # Corresponds to the JSON property `height`
735
+ # @return [Fixnum]
736
+ attr_accessor :height
737
+
738
+ #
739
+ # Corresponds to the JSON property `url`
740
+ # @return [String]
741
+ attr_accessor :url
742
+
743
+ #
744
+ # Corresponds to the JSON property `width`
745
+ # @return [Fixnum]
746
+ attr_accessor :width
747
+
748
+ def initialize(**args)
749
+ update!(**args)
750
+ end
751
+
752
+ # Update properties of this object
753
+ def update!(**args)
754
+ @height = args[:height] if args.key?(:height)
755
+ @url = args[:url] if args.key?(:url)
756
+ @width = args[:width] if args.key?(:width)
757
+ end
758
+ end
759
+ end
760
+ end
761
+
762
+ # The creatives feed lists the active creatives for the Ad Exchange buyer
763
+ # accounts that the user has access to. Each entry in the feed corresponds to a
764
+ # single creative.
765
+ class CreativesList
766
+ include Google::Apis::Core::Hashable
767
+
768
+ # A list of creatives.
769
+ # Corresponds to the JSON property `items`
770
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::Creative>]
771
+ attr_accessor :items
772
+
773
+ # Resource type.
774
+ # Corresponds to the JSON property `kind`
775
+ # @return [String]
776
+ attr_accessor :kind
777
+
778
+ # Continuation token used to page through creatives. To retrieve the next page
779
+ # of results, set the next request's "pageToken" value to this.
780
+ # Corresponds to the JSON property `nextPageToken`
781
+ # @return [String]
782
+ attr_accessor :next_page_token
783
+
784
+ def initialize(**args)
785
+ update!(**args)
786
+ end
787
+
788
+ # Update properties of this object
789
+ def update!(**args)
790
+ @items = args[:items] if args.key?(:items)
791
+ @kind = args[:kind] if args.key?(:kind)
792
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
793
+ end
794
+ end
795
+
796
+ # The configuration data for an Ad Exchange direct deal.
797
+ class DirectDeal
798
+ include Google::Apis::Core::Hashable
799
+
800
+ # The account id of the buyer this deal is for.
801
+ # Corresponds to the JSON property `accountId`
802
+ # @return [Fixnum]
803
+ attr_accessor :account_id
804
+
805
+ # The name of the advertiser this deal is for.
806
+ # Corresponds to the JSON property `advertiser`
807
+ # @return [String]
808
+ attr_accessor :advertiser
809
+
810
+ # Whether the publisher for this deal is eligible for alcohol ads.
811
+ # Corresponds to the JSON property `allowsAlcohol`
812
+ # @return [Boolean]
813
+ attr_accessor :allows_alcohol
814
+ alias_method :allows_alcohol?, :allows_alcohol
815
+
816
+ # The account id that this deal was negotiated for. It is either the buyer or
817
+ # the client that this deal was negotiated on behalf of.
818
+ # Corresponds to the JSON property `buyerAccountId`
819
+ # @return [Fixnum]
820
+ attr_accessor :buyer_account_id
821
+
822
+ # The currency code that applies to the fixed_cpm value. If not set then assumed
823
+ # to be USD.
824
+ # Corresponds to the JSON property `currencyCode`
825
+ # @return [String]
826
+ attr_accessor :currency_code
827
+
828
+ # The deal type such as programmatic reservation or fixed price and so on.
829
+ # Corresponds to the JSON property `dealTier`
830
+ # @return [String]
831
+ attr_accessor :deal_tier
832
+
833
+ # End time for when this deal stops being active. If not set then this deal is
834
+ # valid until manually disabled by the publisher. In seconds since the epoch.
835
+ # Corresponds to the JSON property `endTime`
836
+ # @return [Fixnum]
837
+ attr_accessor :end_time
838
+
839
+ # The fixed price for this direct deal. In cpm micros of currency according to
840
+ # currency_code. If set, then this deal is eligible for the fixed price tier of
841
+ # buying (highest priority, pay exactly the configured fixed price).
842
+ # Corresponds to the JSON property `fixedCpm`
843
+ # @return [Fixnum]
844
+ attr_accessor :fixed_cpm
845
+
846
+ # Deal id.
847
+ # Corresponds to the JSON property `id`
848
+ # @return [Fixnum]
849
+ attr_accessor :id
850
+
851
+ # Resource type.
852
+ # Corresponds to the JSON property `kind`
853
+ # @return [String]
854
+ attr_accessor :kind
855
+
856
+ # Deal name.
857
+ # Corresponds to the JSON property `name`
858
+ # @return [String]
859
+ attr_accessor :name
860
+
861
+ # The minimum price for this direct deal. In cpm micros of currency according to
862
+ # currency_code. If set, then this deal is eligible for the private exchange
863
+ # tier of buying (below fixed price priority, run as a second price auction).
864
+ # Corresponds to the JSON property `privateExchangeMinCpm`
865
+ # @return [Fixnum]
866
+ attr_accessor :private_exchange_min_cpm
867
+
868
+ # If true, the publisher has opted to have their blocks ignored when a creative
869
+ # is bid with for this deal.
870
+ # Corresponds to the JSON property `publisherBlocksOverriden`
871
+ # @return [Boolean]
872
+ attr_accessor :publisher_blocks_overriden
873
+ alias_method :publisher_blocks_overriden?, :publisher_blocks_overriden
874
+
875
+ # The name of the publisher offering this direct deal.
876
+ # Corresponds to the JSON property `sellerNetwork`
877
+ # @return [String]
878
+ attr_accessor :seller_network
879
+
880
+ # Start time for when this deal becomes active. If not set then this deal is
881
+ # active immediately upon creation. In seconds since the epoch.
882
+ # Corresponds to the JSON property `startTime`
883
+ # @return [Fixnum]
884
+ attr_accessor :start_time
885
+
886
+ def initialize(**args)
887
+ update!(**args)
888
+ end
889
+
890
+ # Update properties of this object
891
+ def update!(**args)
892
+ @account_id = args[:account_id] if args.key?(:account_id)
893
+ @advertiser = args[:advertiser] if args.key?(:advertiser)
894
+ @allows_alcohol = args[:allows_alcohol] if args.key?(:allows_alcohol)
895
+ @buyer_account_id = args[:buyer_account_id] if args.key?(:buyer_account_id)
896
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
897
+ @deal_tier = args[:deal_tier] if args.key?(:deal_tier)
898
+ @end_time = args[:end_time] if args.key?(:end_time)
899
+ @fixed_cpm = args[:fixed_cpm] if args.key?(:fixed_cpm)
900
+ @id = args[:id] if args.key?(:id)
901
+ @kind = args[:kind] if args.key?(:kind)
902
+ @name = args[:name] if args.key?(:name)
903
+ @private_exchange_min_cpm = args[:private_exchange_min_cpm] if args.key?(:private_exchange_min_cpm)
904
+ @publisher_blocks_overriden = args[:publisher_blocks_overriden] if args.key?(:publisher_blocks_overriden)
905
+ @seller_network = args[:seller_network] if args.key?(:seller_network)
906
+ @start_time = args[:start_time] if args.key?(:start_time)
907
+ end
908
+ end
909
+
910
+ # A direct deals feed lists Direct Deals the Ad Exchange buyer account has
911
+ # access to. This includes direct deals set up for the buyer account as well as
912
+ # its merged stream seats.
913
+ class DirectDealsList
914
+ include Google::Apis::Core::Hashable
915
+
916
+ # A list of direct deals relevant for your account.
917
+ # Corresponds to the JSON property `directDeals`
918
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::DirectDeal>]
919
+ attr_accessor :direct_deals
920
+
921
+ # Resource type.
922
+ # Corresponds to the JSON property `kind`
923
+ # @return [String]
924
+ attr_accessor :kind
925
+
926
+ def initialize(**args)
927
+ update!(**args)
928
+ end
929
+
930
+ # Update properties of this object
931
+ def update!(**args)
932
+ @direct_deals = args[:direct_deals] if args.key?(:direct_deals)
933
+ @kind = args[:kind] if args.key?(:kind)
934
+ end
935
+ end
936
+
937
+ # The configuration data for an Ad Exchange performance report list.
938
+ class PerformanceReport
939
+ include Google::Apis::Core::Hashable
940
+
941
+ # The number of bid responses with an ad.
942
+ # Corresponds to the JSON property `bidRate`
943
+ # @return [Float]
944
+ attr_accessor :bid_rate
945
+
946
+ # The number of bid requests sent to your bidder.
947
+ # Corresponds to the JSON property `bidRequestRate`
948
+ # @return [Float]
949
+ attr_accessor :bid_request_rate
950
+
951
+ # Rate of various prefiltering statuses per match. Please refer to the callout-
952
+ # status-codes.txt file for different statuses.
953
+ # Corresponds to the JSON property `calloutStatusRate`
954
+ # @return [Array<Object>]
955
+ attr_accessor :callout_status_rate
956
+
957
+ # Average QPS for cookie matcher operations.
958
+ # Corresponds to the JSON property `cookieMatcherStatusRate`
959
+ # @return [Array<Object>]
960
+ attr_accessor :cookie_matcher_status_rate
961
+
962
+ # Rate of ads with a given status. Please refer to the creative-status-codes.txt
963
+ # file for different statuses.
964
+ # Corresponds to the JSON property `creativeStatusRate`
965
+ # @return [Array<Object>]
966
+ attr_accessor :creative_status_rate
967
+
968
+ # The number of bid responses that were filtered due to a policy violation or
969
+ # other errors.
970
+ # Corresponds to the JSON property `filteredBidRate`
971
+ # @return [Float]
972
+ attr_accessor :filtered_bid_rate
973
+
974
+ # Average QPS for hosted match operations.
975
+ # Corresponds to the JSON property `hostedMatchStatusRate`
976
+ # @return [Array<Object>]
977
+ attr_accessor :hosted_match_status_rate
978
+
979
+ # The number of potential queries based on your pretargeting settings.
980
+ # Corresponds to the JSON property `inventoryMatchRate`
981
+ # @return [Float]
982
+ attr_accessor :inventory_match_rate
983
+
984
+ # Resource type.
985
+ # Corresponds to the JSON property `kind`
986
+ # @return [String]
987
+ attr_accessor :kind
988
+
989
+ # The 50th percentile round trip latency(ms) as perceived from Google servers
990
+ # for the duration period covered by the report.
991
+ # Corresponds to the JSON property `latency50thPercentile`
992
+ # @return [Float]
993
+ attr_accessor :latency_50th_percentile
994
+
995
+ # The 85th percentile round trip latency(ms) as perceived from Google servers
996
+ # for the duration period covered by the report.
997
+ # Corresponds to the JSON property `latency85thPercentile`
998
+ # @return [Float]
999
+ attr_accessor :latency_85th_percentile
1000
+
1001
+ # The 95th percentile round trip latency(ms) as perceived from Google servers
1002
+ # for the duration period covered by the report.
1003
+ # Corresponds to the JSON property `latency95thPercentile`
1004
+ # @return [Float]
1005
+ attr_accessor :latency_95th_percentile
1006
+
1007
+ # Rate of various quota account statuses per quota check.
1008
+ # Corresponds to the JSON property `noQuotaInRegion`
1009
+ # @return [Float]
1010
+ attr_accessor :no_quota_in_region
1011
+
1012
+ # Rate of various quota account statuses per quota check.
1013
+ # Corresponds to the JSON property `outOfQuota`
1014
+ # @return [Float]
1015
+ attr_accessor :out_of_quota
1016
+
1017
+ # Average QPS for pixel match requests from clients.
1018
+ # Corresponds to the JSON property `pixelMatchRequests`
1019
+ # @return [Float]
1020
+ attr_accessor :pixel_match_requests
1021
+
1022
+ # Average QPS for pixel match responses from clients.
1023
+ # Corresponds to the JSON property `pixelMatchResponses`
1024
+ # @return [Float]
1025
+ attr_accessor :pixel_match_responses
1026
+
1027
+ # The configured quota limits for this account.
1028
+ # Corresponds to the JSON property `quotaConfiguredLimit`
1029
+ # @return [Float]
1030
+ attr_accessor :quota_configured_limit
1031
+
1032
+ # The throttled quota limits for this account.
1033
+ # Corresponds to the JSON property `quotaThrottledLimit`
1034
+ # @return [Float]
1035
+ attr_accessor :quota_throttled_limit
1036
+
1037
+ # The trading location of this data.
1038
+ # Corresponds to the JSON property `region`
1039
+ # @return [String]
1040
+ attr_accessor :region
1041
+
1042
+ # The number of properly formed bid responses received by our servers within the
1043
+ # deadline.
1044
+ # Corresponds to the JSON property `successfulRequestRate`
1045
+ # @return [Float]
1046
+ attr_accessor :successful_request_rate
1047
+
1048
+ # The unix timestamp of the starting time of this performance data.
1049
+ # Corresponds to the JSON property `timestamp`
1050
+ # @return [Fixnum]
1051
+ attr_accessor :timestamp
1052
+
1053
+ # The number of bid responses that were unsuccessful due to timeouts, incorrect
1054
+ # formatting, etc.
1055
+ # Corresponds to the JSON property `unsuccessfulRequestRate`
1056
+ # @return [Float]
1057
+ attr_accessor :unsuccessful_request_rate
1058
+
1059
+ def initialize(**args)
1060
+ update!(**args)
1061
+ end
1062
+
1063
+ # Update properties of this object
1064
+ def update!(**args)
1065
+ @bid_rate = args[:bid_rate] if args.key?(:bid_rate)
1066
+ @bid_request_rate = args[:bid_request_rate] if args.key?(:bid_request_rate)
1067
+ @callout_status_rate = args[:callout_status_rate] if args.key?(:callout_status_rate)
1068
+ @cookie_matcher_status_rate = args[:cookie_matcher_status_rate] if args.key?(:cookie_matcher_status_rate)
1069
+ @creative_status_rate = args[:creative_status_rate] if args.key?(:creative_status_rate)
1070
+ @filtered_bid_rate = args[:filtered_bid_rate] if args.key?(:filtered_bid_rate)
1071
+ @hosted_match_status_rate = args[:hosted_match_status_rate] if args.key?(:hosted_match_status_rate)
1072
+ @inventory_match_rate = args[:inventory_match_rate] if args.key?(:inventory_match_rate)
1073
+ @kind = args[:kind] if args.key?(:kind)
1074
+ @latency_50th_percentile = args[:latency_50th_percentile] if args.key?(:latency_50th_percentile)
1075
+ @latency_85th_percentile = args[:latency_85th_percentile] if args.key?(:latency_85th_percentile)
1076
+ @latency_95th_percentile = args[:latency_95th_percentile] if args.key?(:latency_95th_percentile)
1077
+ @no_quota_in_region = args[:no_quota_in_region] if args.key?(:no_quota_in_region)
1078
+ @out_of_quota = args[:out_of_quota] if args.key?(:out_of_quota)
1079
+ @pixel_match_requests = args[:pixel_match_requests] if args.key?(:pixel_match_requests)
1080
+ @pixel_match_responses = args[:pixel_match_responses] if args.key?(:pixel_match_responses)
1081
+ @quota_configured_limit = args[:quota_configured_limit] if args.key?(:quota_configured_limit)
1082
+ @quota_throttled_limit = args[:quota_throttled_limit] if args.key?(:quota_throttled_limit)
1083
+ @region = args[:region] if args.key?(:region)
1084
+ @successful_request_rate = args[:successful_request_rate] if args.key?(:successful_request_rate)
1085
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
1086
+ @unsuccessful_request_rate = args[:unsuccessful_request_rate] if args.key?(:unsuccessful_request_rate)
1087
+ end
1088
+ end
1089
+
1090
+ # The configuration data for an Ad Exchange performance report list.
1091
+ class PerformanceReportList
1092
+ include Google::Apis::Core::Hashable
1093
+
1094
+ # Resource type.
1095
+ # Corresponds to the JSON property `kind`
1096
+ # @return [String]
1097
+ attr_accessor :kind
1098
+
1099
+ # A list of performance reports relevant for the account.
1100
+ # Corresponds to the JSON property `performanceReport`
1101
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::PerformanceReport>]
1102
+ attr_accessor :performance_report
1103
+
1104
+ def initialize(**args)
1105
+ update!(**args)
1106
+ end
1107
+
1108
+ # Update properties of this object
1109
+ def update!(**args)
1110
+ @kind = args[:kind] if args.key?(:kind)
1111
+ @performance_report = args[:performance_report] if args.key?(:performance_report)
1112
+ end
1113
+ end
1114
+
1115
+ #
1116
+ class PretargetingConfig
1117
+ include Google::Apis::Core::Hashable
1118
+
1119
+ # The id for billing purposes, provided for reference. Leave this field blank
1120
+ # for insert requests; the id will be generated automatically.
1121
+ # Corresponds to the JSON property `billingId`
1122
+ # @return [Fixnum]
1123
+ attr_accessor :billing_id
1124
+
1125
+ # The config id; generated automatically. Leave this field blank for insert
1126
+ # requests.
1127
+ # Corresponds to the JSON property `configId`
1128
+ # @return [Fixnum]
1129
+ attr_accessor :config_id
1130
+
1131
+ # The name of the config. Must be unique. Required for all requests.
1132
+ # Corresponds to the JSON property `configName`
1133
+ # @return [String]
1134
+ attr_accessor :config_name
1135
+
1136
+ # List must contain exactly one of PRETARGETING_CREATIVE_TYPE_HTML or
1137
+ # PRETARGETING_CREATIVE_TYPE_VIDEO.
1138
+ # Corresponds to the JSON property `creativeType`
1139
+ # @return [Array<String>]
1140
+ attr_accessor :creative_type
1141
+
1142
+ # Requests which allow one of these (width, height) pairs will match. All pairs
1143
+ # must be supported ad dimensions.
1144
+ # Corresponds to the JSON property `dimensions`
1145
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::PretargetingConfig::Dimension>]
1146
+ attr_accessor :dimensions
1147
+
1148
+ # Requests with any of these content labels will not match. Values are from
1149
+ # content-labels.txt in the downloadable files section.
1150
+ # Corresponds to the JSON property `excludedContentLabels`
1151
+ # @return [Array<Fixnum>]
1152
+ attr_accessor :excluded_content_labels
1153
+
1154
+ # Requests containing any of these geo criteria ids will not match.
1155
+ # Corresponds to the JSON property `excludedGeoCriteriaIds`
1156
+ # @return [Array<Fixnum>]
1157
+ attr_accessor :excluded_geo_criteria_ids
1158
+
1159
+ # Requests containing any of these placements will not match.
1160
+ # Corresponds to the JSON property `excludedPlacements`
1161
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::PretargetingConfig::ExcludedPlacement>]
1162
+ attr_accessor :excluded_placements
1163
+
1164
+ # Requests containing any of these users list ids will not match.
1165
+ # Corresponds to the JSON property `excludedUserLists`
1166
+ # @return [Array<Fixnum>]
1167
+ attr_accessor :excluded_user_lists
1168
+
1169
+ # Requests containing any of these vertical ids will not match. Values are from
1170
+ # the publisher-verticals.txt file in the downloadable files section.
1171
+ # Corresponds to the JSON property `excludedVerticals`
1172
+ # @return [Array<Fixnum>]
1173
+ attr_accessor :excluded_verticals
1174
+
1175
+ # Requests containing any of these geo criteria ids will match.
1176
+ # Corresponds to the JSON property `geoCriteriaIds`
1177
+ # @return [Array<Fixnum>]
1178
+ attr_accessor :geo_criteria_ids
1179
+
1180
+ # Whether this config is active. Required for all requests.
1181
+ # Corresponds to the JSON property `isActive`
1182
+ # @return [Boolean]
1183
+ attr_accessor :is_active
1184
+ alias_method :is_active?, :is_active
1185
+
1186
+ # The kind of the resource, i.e. "adexchangebuyer#pretargetingConfig".
1187
+ # Corresponds to the JSON property `kind`
1188
+ # @return [String]
1189
+ attr_accessor :kind
1190
+
1191
+ # Request containing any of these language codes will match.
1192
+ # Corresponds to the JSON property `languages`
1193
+ # @return [Array<String>]
1194
+ attr_accessor :languages
1195
+
1196
+ # The maximum QPS allocated to this pretargeting configuration, used for
1197
+ # pretargeting-level QPS limits. By default, this is not set, which indicates
1198
+ # that there is no QPS limit at the configuration level (a global or account-
1199
+ # level limit may still be imposed).
1200
+ # Corresponds to the JSON property `maximumQps`
1201
+ # @return [Fixnum]
1202
+ attr_accessor :maximum_qps
1203
+
1204
+ # Requests containing any of these mobile carrier ids will match. Values are
1205
+ # from mobile-carriers.csv in the downloadable files section.
1206
+ # Corresponds to the JSON property `mobileCarriers`
1207
+ # @return [Array<Fixnum>]
1208
+ attr_accessor :mobile_carriers
1209
+
1210
+ # Requests containing any of these mobile device ids will match. Values are from
1211
+ # mobile-devices.csv in the downloadable files section.
1212
+ # Corresponds to the JSON property `mobileDevices`
1213
+ # @return [Array<Fixnum>]
1214
+ attr_accessor :mobile_devices
1215
+
1216
+ # Requests containing any of these mobile operating system version ids will
1217
+ # match. Values are from mobile-os.csv in the downloadable files section.
1218
+ # Corresponds to the JSON property `mobileOperatingSystemVersions`
1219
+ # @return [Array<Fixnum>]
1220
+ attr_accessor :mobile_operating_system_versions
1221
+
1222
+ # Requests containing any of these placements will match.
1223
+ # Corresponds to the JSON property `placements`
1224
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::PretargetingConfig::Placement>]
1225
+ attr_accessor :placements
1226
+
1227
+ # Requests matching any of these platforms will match. Possible values are
1228
+ # PRETARGETING_PLATFORM_MOBILE, PRETARGETING_PLATFORM_DESKTOP, and
1229
+ # PRETARGETING_PLATFORM_TABLET.
1230
+ # Corresponds to the JSON property `platforms`
1231
+ # @return [Array<String>]
1232
+ attr_accessor :platforms
1233
+
1234
+ # Creative attributes should be declared here if all creatives corresponding to
1235
+ # this pretargeting configuration have that creative attribute. Values are from
1236
+ # pretargetable-creative-attributes.txt in the downloadable files section.
1237
+ # Corresponds to the JSON property `supportedCreativeAttributes`
1238
+ # @return [Array<Fixnum>]
1239
+ attr_accessor :supported_creative_attributes
1240
+
1241
+ # Requests containing any of these user list ids will match.
1242
+ # Corresponds to the JSON property `userLists`
1243
+ # @return [Array<Fixnum>]
1244
+ attr_accessor :user_lists
1245
+
1246
+ # Requests that allow any of these vendor ids will match. Values are from
1247
+ # vendors.txt in the downloadable files section.
1248
+ # Corresponds to the JSON property `vendorTypes`
1249
+ # @return [Array<Fixnum>]
1250
+ attr_accessor :vendor_types
1251
+
1252
+ # Requests containing any of these vertical ids will match.
1253
+ # Corresponds to the JSON property `verticals`
1254
+ # @return [Array<Fixnum>]
1255
+ attr_accessor :verticals
1256
+
1257
+ def initialize(**args)
1258
+ update!(**args)
1259
+ end
1260
+
1261
+ # Update properties of this object
1262
+ def update!(**args)
1263
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
1264
+ @config_id = args[:config_id] if args.key?(:config_id)
1265
+ @config_name = args[:config_name] if args.key?(:config_name)
1266
+ @creative_type = args[:creative_type] if args.key?(:creative_type)
1267
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
1268
+ @excluded_content_labels = args[:excluded_content_labels] if args.key?(:excluded_content_labels)
1269
+ @excluded_geo_criteria_ids = args[:excluded_geo_criteria_ids] if args.key?(:excluded_geo_criteria_ids)
1270
+ @excluded_placements = args[:excluded_placements] if args.key?(:excluded_placements)
1271
+ @excluded_user_lists = args[:excluded_user_lists] if args.key?(:excluded_user_lists)
1272
+ @excluded_verticals = args[:excluded_verticals] if args.key?(:excluded_verticals)
1273
+ @geo_criteria_ids = args[:geo_criteria_ids] if args.key?(:geo_criteria_ids)
1274
+ @is_active = args[:is_active] if args.key?(:is_active)
1275
+ @kind = args[:kind] if args.key?(:kind)
1276
+ @languages = args[:languages] if args.key?(:languages)
1277
+ @maximum_qps = args[:maximum_qps] if args.key?(:maximum_qps)
1278
+ @mobile_carriers = args[:mobile_carriers] if args.key?(:mobile_carriers)
1279
+ @mobile_devices = args[:mobile_devices] if args.key?(:mobile_devices)
1280
+ @mobile_operating_system_versions = args[:mobile_operating_system_versions] if args.key?(:mobile_operating_system_versions)
1281
+ @placements = args[:placements] if args.key?(:placements)
1282
+ @platforms = args[:platforms] if args.key?(:platforms)
1283
+ @supported_creative_attributes = args[:supported_creative_attributes] if args.key?(:supported_creative_attributes)
1284
+ @user_lists = args[:user_lists] if args.key?(:user_lists)
1285
+ @vendor_types = args[:vendor_types] if args.key?(:vendor_types)
1286
+ @verticals = args[:verticals] if args.key?(:verticals)
1287
+ end
1288
+
1289
+ #
1290
+ class Dimension
1291
+ include Google::Apis::Core::Hashable
1292
+
1293
+ # Height in pixels.
1294
+ # Corresponds to the JSON property `height`
1295
+ # @return [Fixnum]
1296
+ attr_accessor :height
1297
+
1298
+ # Width in pixels.
1299
+ # Corresponds to the JSON property `width`
1300
+ # @return [Fixnum]
1301
+ attr_accessor :width
1302
+
1303
+ def initialize(**args)
1304
+ update!(**args)
1305
+ end
1306
+
1307
+ # Update properties of this object
1308
+ def update!(**args)
1309
+ @height = args[:height] if args.key?(:height)
1310
+ @width = args[:width] if args.key?(:width)
1311
+ end
1312
+ end
1313
+
1314
+ #
1315
+ class ExcludedPlacement
1316
+ include Google::Apis::Core::Hashable
1317
+
1318
+ # The value of the placement. Interpretation depends on the placement type, e.g.
1319
+ # URL for a site placement, channel name for a channel placement, app id for a
1320
+ # mobile app placement.
1321
+ # Corresponds to the JSON property `token`
1322
+ # @return [String]
1323
+ attr_accessor :token
1324
+
1325
+ # The type of the placement.
1326
+ # Corresponds to the JSON property `type`
1327
+ # @return [String]
1328
+ attr_accessor :type
1329
+
1330
+ def initialize(**args)
1331
+ update!(**args)
1332
+ end
1333
+
1334
+ # Update properties of this object
1335
+ def update!(**args)
1336
+ @token = args[:token] if args.key?(:token)
1337
+ @type = args[:type] if args.key?(:type)
1338
+ end
1339
+ end
1340
+
1341
+ #
1342
+ class Placement
1343
+ include Google::Apis::Core::Hashable
1344
+
1345
+ # The value of the placement. Interpretation depends on the placement type, e.g.
1346
+ # URL for a site placement, channel name for a channel placement, app id for a
1347
+ # mobile app placement.
1348
+ # Corresponds to the JSON property `token`
1349
+ # @return [String]
1350
+ attr_accessor :token
1351
+
1352
+ # The type of the placement.
1353
+ # Corresponds to the JSON property `type`
1354
+ # @return [String]
1355
+ attr_accessor :type
1356
+
1357
+ def initialize(**args)
1358
+ update!(**args)
1359
+ end
1360
+
1361
+ # Update properties of this object
1362
+ def update!(**args)
1363
+ @token = args[:token] if args.key?(:token)
1364
+ @type = args[:type] if args.key?(:type)
1365
+ end
1366
+ end
1367
+ end
1368
+
1369
+ #
1370
+ class PretargetingConfigList
1371
+ include Google::Apis::Core::Hashable
1372
+
1373
+ # A list of pretargeting configs
1374
+ # Corresponds to the JSON property `items`
1375
+ # @return [Array<Google::Apis::AdexchangebuyerV1_3::PretargetingConfig>]
1376
+ attr_accessor :items
1377
+
1378
+ # Resource type.
1379
+ # Corresponds to the JSON property `kind`
1380
+ # @return [String]
1381
+ attr_accessor :kind
1382
+
1383
+ def initialize(**args)
1384
+ update!(**args)
1385
+ end
1386
+
1387
+ # Update properties of this object
1388
+ def update!(**args)
1389
+ @items = args[:items] if args.key?(:items)
1390
+ @kind = args[:kind] if args.key?(:kind)
1391
+ end
1392
+ end
1393
+ end
1394
+ end
1395
+ end