google-apis-doubleclicksearch_v2 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: 13d158d6edcf3d2d56155c6265082c41cf562b98aad5fc9faa4f7c8db551cb69
4
+ data.tar.gz: dfa3dc7b37d4d5f7e347dff17e3bd99768ea08a7eb5071ac29b2cce83913f236
5
+ SHA512:
6
+ metadata.gz: 4783b3bdf43fc395d43b171c444c5115962ce644c143972218cf7589208417b3dea345f53e8533f9af94a8a30db4dc100853203dd1f29086fc5835536e512990
7
+ data.tar.gz: 262c5768dbfcfa35cc5d7b25ca37fc62e701b18db4fdf68a152b30a6afe29ffaa3e082ca82c6a5226fa7062c7e087ad52c679a9e5c198b0101b1cc12c5164c4e
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-doubleclicksearch_v2
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/doubleclicksearch_v2/*.rb
9
+ lib/google/apis/doubleclicksearch_v2.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-doubleclicksearch_v2
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20200825
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 V2 of the Search Ads 360 API
2
+
3
+ This is a simple client library for version V2 of the Search Ads 360 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/doubleclicksearch.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-doubleclicksearch_v2', '~> 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-doubleclicksearch_v2
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/doubleclicksearch_v2"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::DoubleclicksearchV2::DoubleclicksearchService.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 Doubleclicksearch service in particular.)
67
+
68
+ For reference information on specific calls in the Search Ads 360 API, see the {Google::Apis::DoubleclicksearchV2::DoubleclicksearchService 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-doubleclicksearch_v2`, 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/search-ads) 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/doubleclicksearch_v2"
@@ -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/doubleclicksearch_v2/service.rb'
16
+ require 'google/apis/doubleclicksearch_v2/classes.rb'
17
+ require 'google/apis/doubleclicksearch_v2/representations.rb'
18
+ require 'google/apis/doubleclicksearch_v2/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Search Ads 360 API
23
+ #
24
+ # The Search Ads 360 API allows developers to automate uploading conversions and
25
+ # downloading reports from Search Ads 360.
26
+ #
27
+ # @see https://developers.google.com/search-ads
28
+ module DoubleclicksearchV2
29
+ # Version of the Search Ads 360 API this client connects to.
30
+ # This is NOT the gem version.
31
+ VERSION = 'V2'
32
+
33
+ # View and manage your advertising data in DoubleClick Search
34
+ AUTH_DOUBLECLICKSEARCH = 'https://www.googleapis.com/auth/doubleclicksearch'
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,965 @@
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 DoubleclicksearchV2
24
+
25
+ # A message containing availability data relevant to DoubleClick Search.
26
+ class Availability
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # DS advertiser ID.
30
+ # Corresponds to the JSON property `advertiserId`
31
+ # @return [Fixnum]
32
+ attr_accessor :advertiser_id
33
+
34
+ # DS agency ID.
35
+ # Corresponds to the JSON property `agencyId`
36
+ # @return [Fixnum]
37
+ attr_accessor :agency_id
38
+
39
+ # The time by which all conversions have been uploaded, in epoch millis UTC.
40
+ # Corresponds to the JSON property `availabilityTimestamp`
41
+ # @return [Fixnum]
42
+ attr_accessor :availability_timestamp
43
+
44
+ # The numeric segmentation identifier (for example, DoubleClick Search
45
+ # Floodlight activity ID).
46
+ # Corresponds to the JSON property `segmentationId`
47
+ # @return [Fixnum]
48
+ attr_accessor :segmentation_id
49
+
50
+ # The friendly segmentation identifier (for example, DoubleClick Search
51
+ # Floodlight activity name).
52
+ # Corresponds to the JSON property `segmentationName`
53
+ # @return [String]
54
+ attr_accessor :segmentation_name
55
+
56
+ # The segmentation type that this availability is for (its default value is `
57
+ # FLOODLIGHT`).
58
+ # Corresponds to the JSON property `segmentationType`
59
+ # @return [String]
60
+ attr_accessor :segmentation_type
61
+
62
+ def initialize(**args)
63
+ update!(**args)
64
+ end
65
+
66
+ # Update properties of this object
67
+ def update!(**args)
68
+ @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
69
+ @agency_id = args[:agency_id] if args.key?(:agency_id)
70
+ @availability_timestamp = args[:availability_timestamp] if args.key?(:availability_timestamp)
71
+ @segmentation_id = args[:segmentation_id] if args.key?(:segmentation_id)
72
+ @segmentation_name = args[:segmentation_name] if args.key?(:segmentation_name)
73
+ @segmentation_type = args[:segmentation_type] if args.key?(:segmentation_type)
74
+ end
75
+ end
76
+
77
+ # A conversion containing data relevant to DoubleClick Search.
78
+ class Conversion
79
+ include Google::Apis::Core::Hashable
80
+
81
+ # DS ad group ID.
82
+ # Corresponds to the JSON property `adGroupId`
83
+ # @return [Fixnum]
84
+ attr_accessor :ad_group_id
85
+
86
+ # DS ad ID.
87
+ # Corresponds to the JSON property `adId`
88
+ # @return [Fixnum]
89
+ attr_accessor :ad_id
90
+
91
+ # DS advertiser ID.
92
+ # Corresponds to the JSON property `advertiserId`
93
+ # @return [Fixnum]
94
+ attr_accessor :advertiser_id
95
+
96
+ # DS agency ID.
97
+ # Corresponds to the JSON property `agencyId`
98
+ # @return [Fixnum]
99
+ attr_accessor :agency_id
100
+
101
+ # Available to advertisers only after contacting DoubleClick Search customer
102
+ # support.
103
+ # Corresponds to the JSON property `attributionModel`
104
+ # @return [String]
105
+ attr_accessor :attribution_model
106
+
107
+ # DS campaign ID.
108
+ # Corresponds to the JSON property `campaignId`
109
+ # @return [Fixnum]
110
+ attr_accessor :campaign_id
111
+
112
+ # Sales channel for the product. Acceptable values are: - "`local`": a physical
113
+ # store - "`online`": an online store
114
+ # Corresponds to the JSON property `channel`
115
+ # @return [String]
116
+ attr_accessor :channel
117
+
118
+ # DS click ID for the conversion.
119
+ # Corresponds to the JSON property `clickId`
120
+ # @return [String]
121
+ attr_accessor :click_id
122
+
123
+ # For offline conversions, advertisers provide this ID. Advertisers can specify
124
+ # any ID that is meaningful to them. Each conversion in a request must specify a
125
+ # unique ID, and the combination of ID and timestamp must be unique amongst all
126
+ # conversions within the advertiser. For online conversions, DS copies the `
127
+ # dsConversionId` or `floodlightOrderId` into this property depending on the
128
+ # advertiser's Floodlight instructions.
129
+ # Corresponds to the JSON property `conversionId`
130
+ # @return [String]
131
+ attr_accessor :conversion_id
132
+
133
+ # The time at which the conversion was last modified, in epoch millis UTC.
134
+ # Corresponds to the JSON property `conversionModifiedTimestamp`
135
+ # @return [Fixnum]
136
+ attr_accessor :conversion_modified_timestamp
137
+
138
+ # The time at which the conversion took place, in epoch millis UTC.
139
+ # Corresponds to the JSON property `conversionTimestamp`
140
+ # @return [String]
141
+ attr_accessor :conversion_timestamp
142
+
143
+ # Available to advertisers only after contacting DoubleClick Search customer
144
+ # support.
145
+ # Corresponds to the JSON property `countMillis`
146
+ # @return [Fixnum]
147
+ attr_accessor :count_millis
148
+
149
+ # DS criterion (keyword) ID.
150
+ # Corresponds to the JSON property `criterionId`
151
+ # @return [Fixnum]
152
+ attr_accessor :criterion_id
153
+
154
+ # The currency code for the conversion's revenue. Should be in ISO 4217
155
+ # alphabetic (3-char) format.
156
+ # Corresponds to the JSON property `currencyCode`
157
+ # @return [String]
158
+ attr_accessor :currency_code
159
+
160
+ # Custom dimensions for the conversion, which can be used to filter data in a
161
+ # report.
162
+ # Corresponds to the JSON property `customDimension`
163
+ # @return [Array<Google::Apis::DoubleclicksearchV2::CustomDimension>]
164
+ attr_accessor :custom_dimension
165
+
166
+ # Custom metrics for the conversion.
167
+ # Corresponds to the JSON property `customMetric`
168
+ # @return [Array<Google::Apis::DoubleclicksearchV2::CustomMetric>]
169
+ attr_accessor :custom_metric
170
+
171
+ # The type of device on which the conversion occurred.
172
+ # Corresponds to the JSON property `deviceType`
173
+ # @return [String]
174
+ attr_accessor :device_type
175
+
176
+ # ID that DoubleClick Search generates for each conversion.
177
+ # Corresponds to the JSON property `dsConversionId`
178
+ # @return [Fixnum]
179
+ attr_accessor :ds_conversion_id
180
+
181
+ # DS engine account ID.
182
+ # Corresponds to the JSON property `engineAccountId`
183
+ # @return [Fixnum]
184
+ attr_accessor :engine_account_id
185
+
186
+ # The Floodlight order ID provided by the advertiser for the conversion.
187
+ # Corresponds to the JSON property `floodlightOrderId`
188
+ # @return [String]
189
+ attr_accessor :floodlight_order_id
190
+
191
+ # ID that DS generates and uses to uniquely identify the inventory account that
192
+ # contains the product.
193
+ # Corresponds to the JSON property `inventoryAccountId`
194
+ # @return [Fixnum]
195
+ attr_accessor :inventory_account_id
196
+
197
+ # The country registered for the Merchant Center feed that contains the product.
198
+ # Use an ISO 3166 code to specify a country.
199
+ # Corresponds to the JSON property `productCountry`
200
+ # @return [String]
201
+ attr_accessor :product_country
202
+
203
+ # DS product group ID.
204
+ # Corresponds to the JSON property `productGroupId`
205
+ # @return [Fixnum]
206
+ attr_accessor :product_group_id
207
+
208
+ # The product ID (SKU).
209
+ # Corresponds to the JSON property `productId`
210
+ # @return [String]
211
+ attr_accessor :product_id
212
+
213
+ # The language registered for the Merchant Center feed that contains the product.
214
+ # Use an ISO 639 code to specify a language.
215
+ # Corresponds to the JSON property `productLanguage`
216
+ # @return [String]
217
+ attr_accessor :product_language
218
+
219
+ # The quantity of this conversion, in millis.
220
+ # Corresponds to the JSON property `quantityMillis`
221
+ # @return [Fixnum]
222
+ attr_accessor :quantity_millis
223
+
224
+ # The revenue amount of this `TRANSACTION` conversion, in micros (value
225
+ # multiplied by 1000000, no decimal). For example, to specify a revenue value of
226
+ # "10" enter "10000000" (10 million) in your request.
227
+ # Corresponds to the JSON property `revenueMicros`
228
+ # @return [String]
229
+ attr_accessor :revenue_micros
230
+
231
+ # The numeric segmentation identifier (for example, DoubleClick Search
232
+ # Floodlight activity ID).
233
+ # Corresponds to the JSON property `segmentationId`
234
+ # @return [Fixnum]
235
+ attr_accessor :segmentation_id
236
+
237
+ # The friendly segmentation identifier (for example, DoubleClick Search
238
+ # Floodlight activity name).
239
+ # Corresponds to the JSON property `segmentationName`
240
+ # @return [String]
241
+ attr_accessor :segmentation_name
242
+
243
+ # The segmentation type of this conversion (for example, `FLOODLIGHT`).
244
+ # Corresponds to the JSON property `segmentationType`
245
+ # @return [String]
246
+ attr_accessor :segmentation_type
247
+
248
+ # The state of the conversion, that is, either `ACTIVE` or `REMOVED`. Note:
249
+ # state DELETED is deprecated.
250
+ # Corresponds to the JSON property `state`
251
+ # @return [String]
252
+ attr_accessor :state
253
+
254
+ # The ID of the local store for which the product was advertised. Applicable
255
+ # only when the channel is "`local`".
256
+ # Corresponds to the JSON property `storeId`
257
+ # @return [String]
258
+ attr_accessor :store_id
259
+
260
+ # The type of the conversion, that is, either `ACTION` or `TRANSACTION`. An `
261
+ # ACTION` conversion is an action by the user that has no monetarily
262
+ # quantifiable value, while a `TRANSACTION` conversion is an action that does
263
+ # have a monetarily quantifiable value. Examples are email list signups (`ACTION`
264
+ # ) versus ecommerce purchases (`TRANSACTION`).
265
+ # Corresponds to the JSON property `type`
266
+ # @return [String]
267
+ attr_accessor :type
268
+
269
+ def initialize(**args)
270
+ update!(**args)
271
+ end
272
+
273
+ # Update properties of this object
274
+ def update!(**args)
275
+ @ad_group_id = args[:ad_group_id] if args.key?(:ad_group_id)
276
+ @ad_id = args[:ad_id] if args.key?(:ad_id)
277
+ @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
278
+ @agency_id = args[:agency_id] if args.key?(:agency_id)
279
+ @attribution_model = args[:attribution_model] if args.key?(:attribution_model)
280
+ @campaign_id = args[:campaign_id] if args.key?(:campaign_id)
281
+ @channel = args[:channel] if args.key?(:channel)
282
+ @click_id = args[:click_id] if args.key?(:click_id)
283
+ @conversion_id = args[:conversion_id] if args.key?(:conversion_id)
284
+ @conversion_modified_timestamp = args[:conversion_modified_timestamp] if args.key?(:conversion_modified_timestamp)
285
+ @conversion_timestamp = args[:conversion_timestamp] if args.key?(:conversion_timestamp)
286
+ @count_millis = args[:count_millis] if args.key?(:count_millis)
287
+ @criterion_id = args[:criterion_id] if args.key?(:criterion_id)
288
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
289
+ @custom_dimension = args[:custom_dimension] if args.key?(:custom_dimension)
290
+ @custom_metric = args[:custom_metric] if args.key?(:custom_metric)
291
+ @device_type = args[:device_type] if args.key?(:device_type)
292
+ @ds_conversion_id = args[:ds_conversion_id] if args.key?(:ds_conversion_id)
293
+ @engine_account_id = args[:engine_account_id] if args.key?(:engine_account_id)
294
+ @floodlight_order_id = args[:floodlight_order_id] if args.key?(:floodlight_order_id)
295
+ @inventory_account_id = args[:inventory_account_id] if args.key?(:inventory_account_id)
296
+ @product_country = args[:product_country] if args.key?(:product_country)
297
+ @product_group_id = args[:product_group_id] if args.key?(:product_group_id)
298
+ @product_id = args[:product_id] if args.key?(:product_id)
299
+ @product_language = args[:product_language] if args.key?(:product_language)
300
+ @quantity_millis = args[:quantity_millis] if args.key?(:quantity_millis)
301
+ @revenue_micros = args[:revenue_micros] if args.key?(:revenue_micros)
302
+ @segmentation_id = args[:segmentation_id] if args.key?(:segmentation_id)
303
+ @segmentation_name = args[:segmentation_name] if args.key?(:segmentation_name)
304
+ @segmentation_type = args[:segmentation_type] if args.key?(:segmentation_type)
305
+ @state = args[:state] if args.key?(:state)
306
+ @store_id = args[:store_id] if args.key?(:store_id)
307
+ @type = args[:type] if args.key?(:type)
308
+ end
309
+ end
310
+
311
+ # A list of conversions.
312
+ class ConversionList
313
+ include Google::Apis::Core::Hashable
314
+
315
+ # The conversions being requested.
316
+ # Corresponds to the JSON property `conversion`
317
+ # @return [Array<Google::Apis::DoubleclicksearchV2::Conversion>]
318
+ attr_accessor :conversion
319
+
320
+ # Identifies this as a ConversionList resource. Value: the fixed string
321
+ # doubleclicksearch#conversionList.
322
+ # Corresponds to the JSON property `kind`
323
+ # @return [String]
324
+ attr_accessor :kind
325
+
326
+ def initialize(**args)
327
+ update!(**args)
328
+ end
329
+
330
+ # Update properties of this object
331
+ def update!(**args)
332
+ @conversion = args[:conversion] if args.key?(:conversion)
333
+ @kind = args[:kind] if args.key?(:kind)
334
+ end
335
+ end
336
+
337
+ # A message containing the custom dimension.
338
+ class CustomDimension
339
+ include Google::Apis::Core::Hashable
340
+
341
+ # Custom dimension name.
342
+ # Corresponds to the JSON property `name`
343
+ # @return [String]
344
+ attr_accessor :name
345
+
346
+ # Custom dimension value.
347
+ # Corresponds to the JSON property `value`
348
+ # @return [String]
349
+ attr_accessor :value
350
+
351
+ def initialize(**args)
352
+ update!(**args)
353
+ end
354
+
355
+ # Update properties of this object
356
+ def update!(**args)
357
+ @name = args[:name] if args.key?(:name)
358
+ @value = args[:value] if args.key?(:value)
359
+ end
360
+ end
361
+
362
+ # A message containing the custom metric.
363
+ class CustomMetric
364
+ include Google::Apis::Core::Hashable
365
+
366
+ # Custom metric name.
367
+ # Corresponds to the JSON property `name`
368
+ # @return [String]
369
+ attr_accessor :name
370
+
371
+ # Custom metric numeric value.
372
+ # Corresponds to the JSON property `value`
373
+ # @return [Float]
374
+ attr_accessor :value
375
+
376
+ def initialize(**args)
377
+ update!(**args)
378
+ end
379
+
380
+ # Update properties of this object
381
+ def update!(**args)
382
+ @name = args[:name] if args.key?(:name)
383
+ @value = args[:value] if args.key?(:value)
384
+ end
385
+ end
386
+
387
+ # A DoubleClick Search report. This object contains the report request, some
388
+ # report metadata such as currency code, and the generated report rows or report
389
+ # files.
390
+ class Report
391
+ include Google::Apis::Core::Hashable
392
+
393
+ # Asynchronous report only. Contains a list of generated report files once the
394
+ # report has successfully completed.
395
+ # Corresponds to the JSON property `files`
396
+ # @return [Array<Google::Apis::DoubleclicksearchV2::Report::File>]
397
+ attr_accessor :files
398
+
399
+ # Asynchronous report only. Id of the report.
400
+ # Corresponds to the JSON property `id`
401
+ # @return [String]
402
+ attr_accessor :id
403
+
404
+ # Asynchronous report only. True if and only if the report has completed
405
+ # successfully and the report files are ready to be downloaded.
406
+ # Corresponds to the JSON property `isReportReady`
407
+ # @return [Boolean]
408
+ attr_accessor :is_report_ready
409
+ alias_method :is_report_ready?, :is_report_ready
410
+
411
+ # Identifies this as a Report resource. Value: the fixed string `
412
+ # doubleclicksearch#report`.
413
+ # Corresponds to the JSON property `kind`
414
+ # @return [String]
415
+ attr_accessor :kind
416
+
417
+ # A request object used to create a DoubleClick Search report.
418
+ # Corresponds to the JSON property `request`
419
+ # @return [Google::Apis::DoubleclicksearchV2::ReportRequest]
420
+ attr_accessor :request
421
+
422
+ # The number of report rows generated by the report, not including headers.
423
+ # Corresponds to the JSON property `rowCount`
424
+ # @return [Fixnum]
425
+ attr_accessor :row_count
426
+
427
+ # Synchronous report only. Generated report rows.
428
+ # Corresponds to the JSON property `rows`
429
+ # @return [Array<Hash<String,Object>>]
430
+ attr_accessor :rows
431
+
432
+ # The currency code of all monetary values produced in the report, including
433
+ # values that are set by users (e.g., keyword bid settings) and metrics (e.g.,
434
+ # cost and revenue). The currency code of a report is determined by the `
435
+ # statisticsCurrency` field of the report request.
436
+ # Corresponds to the JSON property `statisticsCurrencyCode`
437
+ # @return [String]
438
+ attr_accessor :statistics_currency_code
439
+
440
+ # If all statistics of the report are sourced from the same time zone, this
441
+ # would be it. Otherwise the field is unset.
442
+ # Corresponds to the JSON property `statisticsTimeZone`
443
+ # @return [String]
444
+ attr_accessor :statistics_time_zone
445
+
446
+ def initialize(**args)
447
+ update!(**args)
448
+ end
449
+
450
+ # Update properties of this object
451
+ def update!(**args)
452
+ @files = args[:files] if args.key?(:files)
453
+ @id = args[:id] if args.key?(:id)
454
+ @is_report_ready = args[:is_report_ready] if args.key?(:is_report_ready)
455
+ @kind = args[:kind] if args.key?(:kind)
456
+ @request = args[:request] if args.key?(:request)
457
+ @row_count = args[:row_count] if args.key?(:row_count)
458
+ @rows = args[:rows] if args.key?(:rows)
459
+ @statistics_currency_code = args[:statistics_currency_code] if args.key?(:statistics_currency_code)
460
+ @statistics_time_zone = args[:statistics_time_zone] if args.key?(:statistics_time_zone)
461
+ end
462
+
463
+ #
464
+ class File
465
+ include Google::Apis::Core::Hashable
466
+
467
+ # The size of this report file in bytes.
468
+ # Corresponds to the JSON property `byteCount`
469
+ # @return [Fixnum]
470
+ attr_accessor :byte_count
471
+
472
+ # Use this url to download the report file.
473
+ # Corresponds to the JSON property `url`
474
+ # @return [String]
475
+ attr_accessor :url
476
+
477
+ def initialize(**args)
478
+ update!(**args)
479
+ end
480
+
481
+ # Update properties of this object
482
+ def update!(**args)
483
+ @byte_count = args[:byte_count] if args.key?(:byte_count)
484
+ @url = args[:url] if args.key?(:url)
485
+ end
486
+ end
487
+ end
488
+
489
+ # A request object used to create a DoubleClick Search report.
490
+ class ReportApiColumnSpec
491
+ include Google::Apis::Core::Hashable
492
+
493
+ # Name of a DoubleClick Search column to include in the report.
494
+ # Corresponds to the JSON property `columnName`
495
+ # @return [String]
496
+ attr_accessor :column_name
497
+
498
+ # Segments a report by a custom dimension. The report must be scoped to an
499
+ # advertiser or lower, and the custom dimension must already be set up in
500
+ # DoubleClick Search. The custom dimension name, which appears in DoubleClick
501
+ # Search, is case sensitive.\ If used in a conversion report, returns the value
502
+ # of the specified custom dimension for the given conversion, if set. This
503
+ # column does not segment the conversion report.
504
+ # Corresponds to the JSON property `customDimensionName`
505
+ # @return [String]
506
+ attr_accessor :custom_dimension_name
507
+
508
+ # Name of a custom metric to include in the report. The report must be scoped to
509
+ # an advertiser or lower, and the custom metric must already be set up in
510
+ # DoubleClick Search. The custom metric name, which appears in DoubleClick
511
+ # Search, is case sensitive.
512
+ # Corresponds to the JSON property `customMetricName`
513
+ # @return [String]
514
+ attr_accessor :custom_metric_name
515
+
516
+ # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall
517
+ # time range of the report for this column only. Must be provided together with `
518
+ # startDate`.
519
+ # Corresponds to the JSON property `endDate`
520
+ # @return [String]
521
+ attr_accessor :end_date
522
+
523
+ # Synchronous report only. Set to `true` to group by this column. Defaults to `
524
+ # false`.
525
+ # Corresponds to the JSON property `groupByColumn`
526
+ # @return [Boolean]
527
+ attr_accessor :group_by_column
528
+ alias_method :group_by_column?, :group_by_column
529
+
530
+ # Text used to identify this column in the report output; defaults to `
531
+ # columnName` or `savedColumnName` when not specified. This can be used to
532
+ # prevent collisions between DoubleClick Search columns and saved columns with
533
+ # the same name.
534
+ # Corresponds to the JSON property `headerText`
535
+ # @return [String]
536
+ attr_accessor :header_text
537
+
538
+ # The platform that is used to provide data for the custom dimension. Acceptable
539
+ # values are "floodlight".
540
+ # Corresponds to the JSON property `platformSource`
541
+ # @return [String]
542
+ attr_accessor :platform_source
543
+
544
+ # Returns metrics only for a specific type of product activity. Accepted values
545
+ # are: - "`sold`": returns metrics only for products that were sold - "`
546
+ # advertised`": returns metrics only for products that were advertised in a
547
+ # Shopping campaign, and that might or might not have been sold
548
+ # Corresponds to the JSON property `productReportPerspective`
549
+ # @return [String]
550
+ attr_accessor :product_report_perspective
551
+
552
+ # Name of a saved column to include in the report. The report must be scoped at
553
+ # advertiser or lower, and this saved column must already be created in the
554
+ # DoubleClick Search UI.
555
+ # Corresponds to the JSON property `savedColumnName`
556
+ # @return [String]
557
+ attr_accessor :saved_column_name
558
+
559
+ # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall
560
+ # time range of the report for this column only. Must be provided together with `
561
+ # endDate`.
562
+ # Corresponds to the JSON property `startDate`
563
+ # @return [String]
564
+ attr_accessor :start_date
565
+
566
+ def initialize(**args)
567
+ update!(**args)
568
+ end
569
+
570
+ # Update properties of this object
571
+ def update!(**args)
572
+ @column_name = args[:column_name] if args.key?(:column_name)
573
+ @custom_dimension_name = args[:custom_dimension_name] if args.key?(:custom_dimension_name)
574
+ @custom_metric_name = args[:custom_metric_name] if args.key?(:custom_metric_name)
575
+ @end_date = args[:end_date] if args.key?(:end_date)
576
+ @group_by_column = args[:group_by_column] if args.key?(:group_by_column)
577
+ @header_text = args[:header_text] if args.key?(:header_text)
578
+ @platform_source = args[:platform_source] if args.key?(:platform_source)
579
+ @product_report_perspective = args[:product_report_perspective] if args.key?(:product_report_perspective)
580
+ @saved_column_name = args[:saved_column_name] if args.key?(:saved_column_name)
581
+ @start_date = args[:start_date] if args.key?(:start_date)
582
+ end
583
+ end
584
+
585
+ # A request object used to create a DoubleClick Search report.
586
+ class ReportRequest
587
+ include Google::Apis::Core::Hashable
588
+
589
+ # The columns to include in the report. This includes both DoubleClick Search
590
+ # columns and saved columns. For DoubleClick Search columns, only the `
591
+ # columnName` parameter is required. For saved columns only the `savedColumnName`
592
+ # parameter is required. Both `columnName` and `savedColumnName` cannot be set
593
+ # in the same stanza.\ The maximum number of columns per request is 300.
594
+ # Corresponds to the JSON property `columns`
595
+ # @return [Array<Google::Apis::DoubleclicksearchV2::ReportApiColumnSpec>]
596
+ attr_accessor :columns
597
+
598
+ # Format that the report should be returned in. Currently `csv` or `tsv` is
599
+ # supported.
600
+ # Corresponds to the JSON property `downloadFormat`
601
+ # @return [String]
602
+ attr_accessor :download_format
603
+
604
+ # A list of filters to be applied to the report.\ The maximum number of filters
605
+ # per request is 300.
606
+ # Corresponds to the JSON property `filters`
607
+ # @return [Array<Google::Apis::DoubleclicksearchV2::ReportRequest::Filter>]
608
+ attr_accessor :filters
609
+
610
+ # Determines if removed entities should be included in the report. Defaults to `
611
+ # false`. Deprecated, please use `includeRemovedEntities` instead.
612
+ # Corresponds to the JSON property `includeDeletedEntities`
613
+ # @return [Boolean]
614
+ attr_accessor :include_deleted_entities
615
+ alias_method :include_deleted_entities?, :include_deleted_entities
616
+
617
+ # Determines if removed entities should be included in the report. Defaults to `
618
+ # false`.
619
+ # Corresponds to the JSON property `includeRemovedEntities`
620
+ # @return [Boolean]
621
+ attr_accessor :include_removed_entities
622
+ alias_method :include_removed_entities?, :include_removed_entities
623
+
624
+ # Asynchronous report only. The maximum number of rows per report file. A large
625
+ # report is split into many files based on this field. Acceptable values are `
626
+ # 1000000` to `100000000`, inclusive.
627
+ # Corresponds to the JSON property `maxRowsPerFile`
628
+ # @return [Fixnum]
629
+ attr_accessor :max_rows_per_file
630
+
631
+ # Synchronous report only. A list of columns and directions defining sorting to
632
+ # be performed on the report rows.\ The maximum number of orderings per request
633
+ # is 300.
634
+ # Corresponds to the JSON property `orderBy`
635
+ # @return [Array<Google::Apis::DoubleclicksearchV2::ReportRequest::OrderBy>]
636
+ attr_accessor :order_by
637
+
638
+ # The reportScope is a set of IDs that are used to determine which subset of
639
+ # entities will be returned in the report. The full lineage of IDs from the
640
+ # lowest scoped level desired up through agency is required.
641
+ # Corresponds to the JSON property `reportScope`
642
+ # @return [Google::Apis::DoubleclicksearchV2::ReportRequest::ReportScope]
643
+ attr_accessor :report_scope
644
+
645
+ # Determines the type of rows that are returned in the report. For example, if
646
+ # you specify `reportType: keyword`, each row in the report will contain data
647
+ # about a keyword. See the [Types of Reports](/search-ads/v2/report-types/)
648
+ # reference for the columns that are available for each type.
649
+ # Corresponds to the JSON property `reportType`
650
+ # @return [String]
651
+ attr_accessor :report_type
652
+
653
+ # Synchronous report only. The maximum number of rows to return; additional rows
654
+ # are dropped. Acceptable values are `0` to `10000`, inclusive. Defaults to `
655
+ # 10000`.
656
+ # Corresponds to the JSON property `rowCount`
657
+ # @return [Fixnum]
658
+ attr_accessor :row_count
659
+
660
+ # Synchronous report only. Zero-based index of the first row to return.
661
+ # Acceptable values are `0` to `50000`, inclusive. Defaults to `0`.
662
+ # Corresponds to the JSON property `startRow`
663
+ # @return [Fixnum]
664
+ attr_accessor :start_row
665
+
666
+ # Specifies the currency in which monetary will be returned. Possible values are:
667
+ # `usd`, `agency` (valid if the report is scoped to agency or lower), `
668
+ # advertiser` (valid if the report is scoped to * advertiser or lower), or `
669
+ # account` (valid if the report is scoped to engine account or lower).
670
+ # Corresponds to the JSON property `statisticsCurrency`
671
+ # @return [String]
672
+ attr_accessor :statistics_currency
673
+
674
+ # If metrics are requested in a report, this argument will be used to restrict
675
+ # the metrics to a specific time range.
676
+ # Corresponds to the JSON property `timeRange`
677
+ # @return [Google::Apis::DoubleclicksearchV2::ReportRequest::TimeRange]
678
+ attr_accessor :time_range
679
+
680
+ # If `true`, the report would only be created if all the requested stat data are
681
+ # sourced from a single timezone. Defaults to `false`.
682
+ # Corresponds to the JSON property `verifySingleTimeZone`
683
+ # @return [Boolean]
684
+ attr_accessor :verify_single_time_zone
685
+ alias_method :verify_single_time_zone?, :verify_single_time_zone
686
+
687
+ def initialize(**args)
688
+ update!(**args)
689
+ end
690
+
691
+ # Update properties of this object
692
+ def update!(**args)
693
+ @columns = args[:columns] if args.key?(:columns)
694
+ @download_format = args[:download_format] if args.key?(:download_format)
695
+ @filters = args[:filters] if args.key?(:filters)
696
+ @include_deleted_entities = args[:include_deleted_entities] if args.key?(:include_deleted_entities)
697
+ @include_removed_entities = args[:include_removed_entities] if args.key?(:include_removed_entities)
698
+ @max_rows_per_file = args[:max_rows_per_file] if args.key?(:max_rows_per_file)
699
+ @order_by = args[:order_by] if args.key?(:order_by)
700
+ @report_scope = args[:report_scope] if args.key?(:report_scope)
701
+ @report_type = args[:report_type] if args.key?(:report_type)
702
+ @row_count = args[:row_count] if args.key?(:row_count)
703
+ @start_row = args[:start_row] if args.key?(:start_row)
704
+ @statistics_currency = args[:statistics_currency] if args.key?(:statistics_currency)
705
+ @time_range = args[:time_range] if args.key?(:time_range)
706
+ @verify_single_time_zone = args[:verify_single_time_zone] if args.key?(:verify_single_time_zone)
707
+ end
708
+
709
+ #
710
+ class Filter
711
+ include Google::Apis::Core::Hashable
712
+
713
+ # A request object used to create a DoubleClick Search report.
714
+ # Corresponds to the JSON property `column`
715
+ # @return [Google::Apis::DoubleclicksearchV2::ReportApiColumnSpec]
716
+ attr_accessor :column
717
+
718
+ # Operator to use in the filter. See the filter reference for a list of
719
+ # available operators.
720
+ # Corresponds to the JSON property `operator`
721
+ # @return [String]
722
+ attr_accessor :operator
723
+
724
+ # A list of values to filter the column value against.\ The maximum number of
725
+ # filter values per request is 300.
726
+ # Corresponds to the JSON property `values`
727
+ # @return [Array<Object>]
728
+ attr_accessor :values
729
+
730
+ def initialize(**args)
731
+ update!(**args)
732
+ end
733
+
734
+ # Update properties of this object
735
+ def update!(**args)
736
+ @column = args[:column] if args.key?(:column)
737
+ @operator = args[:operator] if args.key?(:operator)
738
+ @values = args[:values] if args.key?(:values)
739
+ end
740
+ end
741
+
742
+ #
743
+ class OrderBy
744
+ include Google::Apis::Core::Hashable
745
+
746
+ # A request object used to create a DoubleClick Search report.
747
+ # Corresponds to the JSON property `column`
748
+ # @return [Google::Apis::DoubleclicksearchV2::ReportApiColumnSpec]
749
+ attr_accessor :column
750
+
751
+ # The sort direction, which is either `ascending` or `descending`.
752
+ # Corresponds to the JSON property `sortOrder`
753
+ # @return [String]
754
+ attr_accessor :sort_order
755
+
756
+ def initialize(**args)
757
+ update!(**args)
758
+ end
759
+
760
+ # Update properties of this object
761
+ def update!(**args)
762
+ @column = args[:column] if args.key?(:column)
763
+ @sort_order = args[:sort_order] if args.key?(:sort_order)
764
+ end
765
+ end
766
+
767
+ # The reportScope is a set of IDs that are used to determine which subset of
768
+ # entities will be returned in the report. The full lineage of IDs from the
769
+ # lowest scoped level desired up through agency is required.
770
+ class ReportScope
771
+ include Google::Apis::Core::Hashable
772
+
773
+ # DS ad group ID.
774
+ # Corresponds to the JSON property `adGroupId`
775
+ # @return [Fixnum]
776
+ attr_accessor :ad_group_id
777
+
778
+ # DS ad ID.
779
+ # Corresponds to the JSON property `adId`
780
+ # @return [Fixnum]
781
+ attr_accessor :ad_id
782
+
783
+ # DS advertiser ID.
784
+ # Corresponds to the JSON property `advertiserId`
785
+ # @return [Fixnum]
786
+ attr_accessor :advertiser_id
787
+
788
+ # DS agency ID.
789
+ # Corresponds to the JSON property `agencyId`
790
+ # @return [Fixnum]
791
+ attr_accessor :agency_id
792
+
793
+ # DS campaign ID.
794
+ # Corresponds to the JSON property `campaignId`
795
+ # @return [Fixnum]
796
+ attr_accessor :campaign_id
797
+
798
+ # DS engine account ID.
799
+ # Corresponds to the JSON property `engineAccountId`
800
+ # @return [Fixnum]
801
+ attr_accessor :engine_account_id
802
+
803
+ # DS keyword ID.
804
+ # Corresponds to the JSON property `keywordId`
805
+ # @return [Fixnum]
806
+ attr_accessor :keyword_id
807
+
808
+ def initialize(**args)
809
+ update!(**args)
810
+ end
811
+
812
+ # Update properties of this object
813
+ def update!(**args)
814
+ @ad_group_id = args[:ad_group_id] if args.key?(:ad_group_id)
815
+ @ad_id = args[:ad_id] if args.key?(:ad_id)
816
+ @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
817
+ @agency_id = args[:agency_id] if args.key?(:agency_id)
818
+ @campaign_id = args[:campaign_id] if args.key?(:campaign_id)
819
+ @engine_account_id = args[:engine_account_id] if args.key?(:engine_account_id)
820
+ @keyword_id = args[:keyword_id] if args.key?(:keyword_id)
821
+ end
822
+ end
823
+
824
+ # If metrics are requested in a report, this argument will be used to restrict
825
+ # the metrics to a specific time range.
826
+ class TimeRange
827
+ include Google::Apis::Core::Hashable
828
+
829
+ # Inclusive UTC timestamp in RFC format, e.g., `2013-07-16T10:16:23.555Z`. See
830
+ # additional references on how changed attribute reports work.
831
+ # Corresponds to the JSON property `changedAttributesSinceTimestamp`
832
+ # @return [String]
833
+ attr_accessor :changed_attributes_since_timestamp
834
+
835
+ # Inclusive UTC timestamp in RFC format, e.g., `2013-07-16T10:16:23.555Z`. See
836
+ # additional references on how changed metrics reports work.
837
+ # Corresponds to the JSON property `changedMetricsSinceTimestamp`
838
+ # @return [String]
839
+ attr_accessor :changed_metrics_since_timestamp
840
+
841
+ # Inclusive date in YYYY-MM-DD format.
842
+ # Corresponds to the JSON property `endDate`
843
+ # @return [String]
844
+ attr_accessor :end_date
845
+
846
+ # Inclusive date in YYYY-MM-DD format.
847
+ # Corresponds to the JSON property `startDate`
848
+ # @return [String]
849
+ attr_accessor :start_date
850
+
851
+ def initialize(**args)
852
+ update!(**args)
853
+ end
854
+
855
+ # Update properties of this object
856
+ def update!(**args)
857
+ @changed_attributes_since_timestamp = args[:changed_attributes_since_timestamp] if args.key?(:changed_attributes_since_timestamp)
858
+ @changed_metrics_since_timestamp = args[:changed_metrics_since_timestamp] if args.key?(:changed_metrics_since_timestamp)
859
+ @end_date = args[:end_date] if args.key?(:end_date)
860
+ @start_date = args[:start_date] if args.key?(:start_date)
861
+ end
862
+ end
863
+ end
864
+
865
+ # A saved column
866
+ class SavedColumn
867
+ include Google::Apis::Core::Hashable
868
+
869
+ # Identifies this as a SavedColumn resource. Value: the fixed string
870
+ # doubleclicksearch#savedColumn.
871
+ # Corresponds to the JSON property `kind`
872
+ # @return [String]
873
+ attr_accessor :kind
874
+
875
+ # The name of the saved column.
876
+ # Corresponds to the JSON property `savedColumnName`
877
+ # @return [String]
878
+ attr_accessor :saved_column_name
879
+
880
+ # The type of data this saved column will produce.
881
+ # Corresponds to the JSON property `type`
882
+ # @return [String]
883
+ attr_accessor :type
884
+
885
+ def initialize(**args)
886
+ update!(**args)
887
+ end
888
+
889
+ # Update properties of this object
890
+ def update!(**args)
891
+ @kind = args[:kind] if args.key?(:kind)
892
+ @saved_column_name = args[:saved_column_name] if args.key?(:saved_column_name)
893
+ @type = args[:type] if args.key?(:type)
894
+ end
895
+ end
896
+
897
+ # A list of saved columns. Advertisers create saved columns to report on
898
+ # Floodlight activities, Google Analytics goals, or custom KPIs. To request
899
+ # reports with saved columns, you'll need the saved column names that are
900
+ # available from this list.
901
+ class SavedColumnList
902
+ include Google::Apis::Core::Hashable
903
+
904
+ # The saved columns being requested.
905
+ # Corresponds to the JSON property `items`
906
+ # @return [Array<Google::Apis::DoubleclicksearchV2::SavedColumn>]
907
+ attr_accessor :items
908
+
909
+ # Identifies this as a SavedColumnList resource. Value: the fixed string
910
+ # doubleclicksearch#savedColumnList.
911
+ # Corresponds to the JSON property `kind`
912
+ # @return [String]
913
+ attr_accessor :kind
914
+
915
+ def initialize(**args)
916
+ update!(**args)
917
+ end
918
+
919
+ # Update properties of this object
920
+ def update!(**args)
921
+ @items = args[:items] if args.key?(:items)
922
+ @kind = args[:kind] if args.key?(:kind)
923
+ end
924
+ end
925
+
926
+ # The request to update availability.
927
+ class UpdateAvailabilityRequest
928
+ include Google::Apis::Core::Hashable
929
+
930
+ # The availabilities being requested.
931
+ # Corresponds to the JSON property `availabilities`
932
+ # @return [Array<Google::Apis::DoubleclicksearchV2::Availability>]
933
+ attr_accessor :availabilities
934
+
935
+ def initialize(**args)
936
+ update!(**args)
937
+ end
938
+
939
+ # Update properties of this object
940
+ def update!(**args)
941
+ @availabilities = args[:availabilities] if args.key?(:availabilities)
942
+ end
943
+ end
944
+
945
+ # The response to a update availability request.
946
+ class UpdateAvailabilityResponse
947
+ include Google::Apis::Core::Hashable
948
+
949
+ # The availabilities being returned.
950
+ # Corresponds to the JSON property `availabilities`
951
+ # @return [Array<Google::Apis::DoubleclicksearchV2::Availability>]
952
+ attr_accessor :availabilities
953
+
954
+ def initialize(**args)
955
+ update!(**args)
956
+ end
957
+
958
+ # Update properties of this object
959
+ def update!(**args)
960
+ @availabilities = args[:availabilities] if args.key?(:availabilities)
961
+ end
962
+ end
963
+ end
964
+ end
965
+ end