google-apis-merchantapi_reports_v1beta 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1830 @@
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 MerchantapiReportsV1beta
24
+
25
+ # Fields available for query in `best_sellers_brand_view` table. [Best sellers](
26
+ # https://support.google.com/merchants/answer/9488679) report with top brands.
27
+ # Values are only set for fields requested explicitly in the request's search
28
+ # query.
29
+ class BestSellersBrandView
30
+ include Google::Apis::Core::Hashable
31
+
32
+ # Name of the brand.
33
+ # Corresponds to the JSON property `brand`
34
+ # @return [String]
35
+ attr_accessor :brand
36
+
37
+ # Popularity rank in the previous week or month.
38
+ # Corresponds to the JSON property `previousRank`
39
+ # @return [Fixnum]
40
+ attr_accessor :previous_rank
41
+
42
+ # Estimated demand in relation to the brand with the highest popularity rank in
43
+ # the same category and country in the previous week or month.
44
+ # Corresponds to the JSON property `previousRelativeDemand`
45
+ # @return [String]
46
+ attr_accessor :previous_relative_demand
47
+
48
+ # Popularity of the brand on Ads and organic surfaces, in the selected category
49
+ # and country, based on the estimated number of units sold.
50
+ # Corresponds to the JSON property `rank`
51
+ # @return [Fixnum]
52
+ attr_accessor :rank
53
+
54
+ # Estimated demand in relation to the brand with the highest popularity rank in
55
+ # the same category and country.
56
+ # Corresponds to the JSON property `relativeDemand`
57
+ # @return [String]
58
+ attr_accessor :relative_demand
59
+
60
+ # Change in the estimated demand. Whether it rose, sank or remained flat.
61
+ # Corresponds to the JSON property `relativeDemandChange`
62
+ # @return [String]
63
+ attr_accessor :relative_demand_change
64
+
65
+ # Google product category ID to calculate the ranking for, represented in [
66
+ # Google's product taxonomy](https://support.google.com/merchants/answer/6324436)
67
+ # . Required in the `SELECT` clause. If a `WHERE` condition on `
68
+ # report_category_id` is not specified in the query, rankings for all top-level
69
+ # categories are returned.
70
+ # Corresponds to the JSON property `reportCategoryId`
71
+ # @return [Fixnum]
72
+ attr_accessor :report_category_id
73
+
74
+ # Country where the ranking is calculated. Represented in the ISO 3166 format.
75
+ # Required in the `SELECT` clause. Condition on `report_country_code` is
76
+ # required in the `WHERE` clause.
77
+ # Corresponds to the JSON property `reportCountryCode`
78
+ # @return [String]
79
+ attr_accessor :report_country_code
80
+
81
+ # Represents a whole or partial calendar date, such as a birthday. The time of
82
+ # day and time zone are either specified elsewhere or are insignificant. The
83
+ # date is relative to the Gregorian Calendar. This can represent one of the
84
+ # following: * A full date, with non-zero year, month, and day values. * A month
85
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
86
+ # with a zero month and a zero day. * A year and month, with a zero day (for
87
+ # example, a credit card expiration date). Related types: * google.type.
88
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
89
+ # Corresponds to the JSON property `reportDate`
90
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
91
+ attr_accessor :report_date
92
+
93
+ # Granularity of the report. The ranking can be done over a week or a month
94
+ # timeframe. Required in the `SELECT` clause. Condition on `report_granularity`
95
+ # is required in the `WHERE` clause.
96
+ # Corresponds to the JSON property `reportGranularity`
97
+ # @return [String]
98
+ attr_accessor :report_granularity
99
+
100
+ def initialize(**args)
101
+ update!(**args)
102
+ end
103
+
104
+ # Update properties of this object
105
+ def update!(**args)
106
+ @brand = args[:brand] if args.key?(:brand)
107
+ @previous_rank = args[:previous_rank] if args.key?(:previous_rank)
108
+ @previous_relative_demand = args[:previous_relative_demand] if args.key?(:previous_relative_demand)
109
+ @rank = args[:rank] if args.key?(:rank)
110
+ @relative_demand = args[:relative_demand] if args.key?(:relative_demand)
111
+ @relative_demand_change = args[:relative_demand_change] if args.key?(:relative_demand_change)
112
+ @report_category_id = args[:report_category_id] if args.key?(:report_category_id)
113
+ @report_country_code = args[:report_country_code] if args.key?(:report_country_code)
114
+ @report_date = args[:report_date] if args.key?(:report_date)
115
+ @report_granularity = args[:report_granularity] if args.key?(:report_granularity)
116
+ end
117
+ end
118
+
119
+ # Fields available for query in `best_sellers_product_cluster_view` table. [Best
120
+ # sellers](https://support.google.com/merchants/answer/9488679) report with top
121
+ # product clusters. A product cluster is a grouping for different offers and
122
+ # variants that represent the same product, for example, Google Pixel 7. Values
123
+ # are only set for fields requested explicitly in the request's search query.
124
+ class BestSellersProductClusterView
125
+ include Google::Apis::Core::Hashable
126
+
127
+ # Brand of the product cluster.
128
+ # Corresponds to the JSON property `brand`
129
+ # @return [String]
130
+ attr_accessor :brand
131
+
132
+ # Whether there is at least one product of the brand currently `IN_STOCK` in
133
+ # your product data source in at least one of the countries, all products are `
134
+ # OUT_OF_STOCK` in your product data source in all countries, or `
135
+ # NOT_IN_INVENTORY`. The field doesn't take the Best sellers report country
136
+ # filter into account.
137
+ # Corresponds to the JSON property `brandInventoryStatus`
138
+ # @return [String]
139
+ attr_accessor :brand_inventory_status
140
+
141
+ # Product category (1st level) of the product cluster, represented in [Google's
142
+ # product taxonomy](https://support.google.com/merchants/answer/6324436).
143
+ # Corresponds to the JSON property `categoryL1`
144
+ # @return [String]
145
+ attr_accessor :category_l1
146
+
147
+ # Product category (2nd level) of the product cluster, represented in [Google's
148
+ # product taxonomy](https://support.google.com/merchants/answer/6324436).
149
+ # Corresponds to the JSON property `categoryL2`
150
+ # @return [String]
151
+ attr_accessor :category_l2
152
+
153
+ # Product category (3rd level) of the product cluster, represented in [Google's
154
+ # product taxonomy](https://support.google.com/merchants/answer/6324436).
155
+ # Corresponds to the JSON property `categoryL3`
156
+ # @return [String]
157
+ attr_accessor :category_l3
158
+
159
+ # Product category (4th level) of the product cluster, represented in [Google's
160
+ # product taxonomy](https://support.google.com/merchants/answer/6324436).
161
+ # Corresponds to the JSON property `categoryL4`
162
+ # @return [String]
163
+ attr_accessor :category_l4
164
+
165
+ # Product category (5th level) of the product cluster, represented in [Google's
166
+ # product taxonomy](https://support.google.com/merchants/answer/6324436).
167
+ # Corresponds to the JSON property `categoryL5`
168
+ # @return [String]
169
+ attr_accessor :category_l5
170
+
171
+ # Whether the product cluster is `IN_STOCK` in your product data source in at
172
+ # least one of the countries, `OUT_OF_STOCK` in your product data source in all
173
+ # countries, or `NOT_IN_INVENTORY` at all. The field doesn't take the Best
174
+ # sellers report country filter into account.
175
+ # Corresponds to the JSON property `inventoryStatus`
176
+ # @return [String]
177
+ attr_accessor :inventory_status
178
+
179
+ # Popularity rank in the previous week or month.
180
+ # Corresponds to the JSON property `previousRank`
181
+ # @return [Fixnum]
182
+ attr_accessor :previous_rank
183
+
184
+ # Estimated demand in relation to the product cluster with the highest
185
+ # popularity rank in the same category and country in the previous week or month.
186
+ # Corresponds to the JSON property `previousRelativeDemand`
187
+ # @return [String]
188
+ attr_accessor :previous_relative_demand
189
+
190
+ # Popularity of the product cluster on Ads and organic surfaces, in the selected
191
+ # category and country, based on the estimated number of units sold.
192
+ # Corresponds to the JSON property `rank`
193
+ # @return [Fixnum]
194
+ attr_accessor :rank
195
+
196
+ # Estimated demand in relation to the product cluster with the highest
197
+ # popularity rank in the same category and country.
198
+ # Corresponds to the JSON property `relativeDemand`
199
+ # @return [String]
200
+ attr_accessor :relative_demand
201
+
202
+ # Change in the estimated demand. Whether it rose, sank or remained flat.
203
+ # Corresponds to the JSON property `relativeDemandChange`
204
+ # @return [String]
205
+ attr_accessor :relative_demand_change
206
+
207
+ # Google product category ID to calculate the ranking for, represented in [
208
+ # Google's product taxonomy](https://support.google.com/merchants/answer/6324436)
209
+ # . Required in the `SELECT` clause. If a `WHERE` condition on `
210
+ # report_category_id` is not specified in the query, rankings for all top-level
211
+ # categories are returned.
212
+ # Corresponds to the JSON property `reportCategoryId`
213
+ # @return [Fixnum]
214
+ attr_accessor :report_category_id
215
+
216
+ # Country where the ranking is calculated. Represented in the ISO 3166 format.
217
+ # Required in the `SELECT` clause. Condition on `report_country_code` is
218
+ # required in the `WHERE` clause.
219
+ # Corresponds to the JSON property `reportCountryCode`
220
+ # @return [String]
221
+ attr_accessor :report_country_code
222
+
223
+ # Represents a whole or partial calendar date, such as a birthday. The time of
224
+ # day and time zone are either specified elsewhere or are insignificant. The
225
+ # date is relative to the Gregorian Calendar. This can represent one of the
226
+ # following: * A full date, with non-zero year, month, and day values. * A month
227
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
228
+ # with a zero month and a zero day. * A year and month, with a zero day (for
229
+ # example, a credit card expiration date). Related types: * google.type.
230
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
231
+ # Corresponds to the JSON property `reportDate`
232
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
233
+ attr_accessor :report_date
234
+
235
+ # Granularity of the report. The ranking can be done over a week or a month
236
+ # timeframe. Required in the `SELECT` clause. Condition on `report_granularity`
237
+ # is required in the `WHERE` clause.
238
+ # Corresponds to the JSON property `reportGranularity`
239
+ # @return [String]
240
+ attr_accessor :report_granularity
241
+
242
+ # Title of the product cluster.
243
+ # Corresponds to the JSON property `title`
244
+ # @return [String]
245
+ attr_accessor :title
246
+
247
+ # GTINs of example variants of the product cluster.
248
+ # Corresponds to the JSON property `variantGtins`
249
+ # @return [Array<String>]
250
+ attr_accessor :variant_gtins
251
+
252
+ def initialize(**args)
253
+ update!(**args)
254
+ end
255
+
256
+ # Update properties of this object
257
+ def update!(**args)
258
+ @brand = args[:brand] if args.key?(:brand)
259
+ @brand_inventory_status = args[:brand_inventory_status] if args.key?(:brand_inventory_status)
260
+ @category_l1 = args[:category_l1] if args.key?(:category_l1)
261
+ @category_l2 = args[:category_l2] if args.key?(:category_l2)
262
+ @category_l3 = args[:category_l3] if args.key?(:category_l3)
263
+ @category_l4 = args[:category_l4] if args.key?(:category_l4)
264
+ @category_l5 = args[:category_l5] if args.key?(:category_l5)
265
+ @inventory_status = args[:inventory_status] if args.key?(:inventory_status)
266
+ @previous_rank = args[:previous_rank] if args.key?(:previous_rank)
267
+ @previous_relative_demand = args[:previous_relative_demand] if args.key?(:previous_relative_demand)
268
+ @rank = args[:rank] if args.key?(:rank)
269
+ @relative_demand = args[:relative_demand] if args.key?(:relative_demand)
270
+ @relative_demand_change = args[:relative_demand_change] if args.key?(:relative_demand_change)
271
+ @report_category_id = args[:report_category_id] if args.key?(:report_category_id)
272
+ @report_country_code = args[:report_country_code] if args.key?(:report_country_code)
273
+ @report_date = args[:report_date] if args.key?(:report_date)
274
+ @report_granularity = args[:report_granularity] if args.key?(:report_granularity)
275
+ @title = args[:title] if args.key?(:title)
276
+ @variant_gtins = args[:variant_gtins] if args.key?(:variant_gtins)
277
+ end
278
+ end
279
+
280
+ # Fields available for query in `competitive_visibility_benchmark_view` table. [
281
+ # Competitive visibility](https://support.google.com/merchants/answer/11366442)
282
+ # report with the category benchmark. Values are only set for fields requested
283
+ # explicitly in the request's search query.
284
+ class CompetitiveVisibilityBenchmarkView
285
+ include Google::Apis::Core::Hashable
286
+
287
+ # Change in visibility based on impressions with respect to the start of the
288
+ # selected time range (or first day with non-zero impressions) for a combined
289
+ # set of merchants with highest visibility approximating the market. Cannot be
290
+ # filtered on in the 'WHERE' clause.
291
+ # Corresponds to the JSON property `categoryBenchmarkVisibilityTrend`
292
+ # @return [Float]
293
+ attr_accessor :category_benchmark_visibility_trend
294
+
295
+ # Represents a whole or partial calendar date, such as a birthday. The time of
296
+ # day and time zone are either specified elsewhere or are insignificant. The
297
+ # date is relative to the Gregorian Calendar. This can represent one of the
298
+ # following: * A full date, with non-zero year, month, and day values. * A month
299
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
300
+ # with a zero month and a zero day. * A year and month, with a zero day (for
301
+ # example, a credit card expiration date). Related types: * google.type.
302
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
303
+ # Corresponds to the JSON property `date`
304
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
305
+ attr_accessor :date
306
+
307
+ # Google product category ID to calculate the report for, represented in [Google'
308
+ # s product taxonomy](https://support.google.com/merchants/answer/6324436).
309
+ # Required in the `SELECT` clause. A condition on `report_category_id` is
310
+ # required in the `WHERE` clause.
311
+ # Corresponds to the JSON property `reportCategoryId`
312
+ # @return [Fixnum]
313
+ attr_accessor :report_category_id
314
+
315
+ # Country where impressions appeared. Required in the `SELECT` clause. A
316
+ # condition on `report_country_code` is required in the `WHERE` clause.
317
+ # Corresponds to the JSON property `reportCountryCode`
318
+ # @return [String]
319
+ attr_accessor :report_country_code
320
+
321
+ # Traffic source of impressions. Required in the `SELECT` clause.
322
+ # Corresponds to the JSON property `trafficSource`
323
+ # @return [String]
324
+ attr_accessor :traffic_source
325
+
326
+ # Change in visibility based on impressions for your domain with respect to the
327
+ # start of the selected time range (or first day with non-zero impressions).
328
+ # Cannot be filtered on in the 'WHERE' clause.
329
+ # Corresponds to the JSON property `yourDomainVisibilityTrend`
330
+ # @return [Float]
331
+ attr_accessor :your_domain_visibility_trend
332
+
333
+ def initialize(**args)
334
+ update!(**args)
335
+ end
336
+
337
+ # Update properties of this object
338
+ def update!(**args)
339
+ @category_benchmark_visibility_trend = args[:category_benchmark_visibility_trend] if args.key?(:category_benchmark_visibility_trend)
340
+ @date = args[:date] if args.key?(:date)
341
+ @report_category_id = args[:report_category_id] if args.key?(:report_category_id)
342
+ @report_country_code = args[:report_country_code] if args.key?(:report_country_code)
343
+ @traffic_source = args[:traffic_source] if args.key?(:traffic_source)
344
+ @your_domain_visibility_trend = args[:your_domain_visibility_trend] if args.key?(:your_domain_visibility_trend)
345
+ end
346
+ end
347
+
348
+ # Fields available for query in `competitive_visibility_competitor_view` table. [
349
+ # Competitive visibility](https://support.google.com/merchants/answer/11366442)
350
+ # report with businesses with similar visibility. Values are only set for fields
351
+ # requested explicitly in the request's search query.
352
+ class CompetitiveVisibilityCompetitorView
353
+ include Google::Apis::Core::Hashable
354
+
355
+ # [Ads / organic ratio] (https://support.google.com/merchants/answer/11366442#
356
+ # zippy=%2Cads-free-ratio) shows how often the domain receives impressions from
357
+ # Shopping ads compared to organic traffic. The number is rounded and bucketed.
358
+ # Cannot be filtered on in the 'WHERE' clause.
359
+ # Corresponds to the JSON property `adsOrganicRatio`
360
+ # @return [Float]
361
+ attr_accessor :ads_organic_ratio
362
+
363
+ # Represents a whole or partial calendar date, such as a birthday. The time of
364
+ # day and time zone are either specified elsewhere or are insignificant. The
365
+ # date is relative to the Gregorian Calendar. This can represent one of the
366
+ # following: * A full date, with non-zero year, month, and day values. * A month
367
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
368
+ # with a zero month and a zero day. * A year and month, with a zero day (for
369
+ # example, a credit card expiration date). Related types: * google.type.
370
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
371
+ # Corresponds to the JSON property `date`
372
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
373
+ attr_accessor :date
374
+
375
+ # Domain of your competitor or your domain, if 'is_your_domain' is true.
376
+ # Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' clause.
377
+ # Corresponds to the JSON property `domain`
378
+ # @return [String]
379
+ attr_accessor :domain
380
+
381
+ # [Higher position rate] (https://support.google.com/merchants/answer/11366442#
382
+ # zippy=%2Chigher-position-rate) shows how often a competitor’s offer got placed
383
+ # in a higher position on the page than your offer. Cannot be filtered on in the
384
+ # 'WHERE' clause.
385
+ # Corresponds to the JSON property `higherPositionRate`
386
+ # @return [Float]
387
+ attr_accessor :higher_position_rate
388
+
389
+ # True if this row contains data for your domain. Cannot be filtered on in the '
390
+ # WHERE' clause.
391
+ # Corresponds to the JSON property `isYourDomain`
392
+ # @return [Boolean]
393
+ attr_accessor :is_your_domain
394
+ alias_method :is_your_domain?, :is_your_domain
395
+
396
+ # [Page overlap rate] (https://support.google.com/merchants/answer/11366442#
397
+ # zippy=%2Cpage-overlap-rate) shows how frequently competing retailers’ offers
398
+ # are shown together with your offers on the same page. Cannot be filtered on in
399
+ # the 'WHERE' clause.
400
+ # Corresponds to the JSON property `pageOverlapRate`
401
+ # @return [Float]
402
+ attr_accessor :page_overlap_rate
403
+
404
+ # Position of the domain in the similar businesses ranking for the selected keys
405
+ # (`date`, `report_category_id`, `report_country_code`, `traffic_source`) based
406
+ # on impressions. 1 is the highest. Cannot be filtered on in the 'WHERE' clause.
407
+ # Corresponds to the JSON property `rank`
408
+ # @return [Fixnum]
409
+ attr_accessor :rank
410
+
411
+ # [Relative visibility] (https://support.google.com/merchants/answer/11366442#
412
+ # zippy=%2Crelative-visibility) shows how often your competitors’ offers are
413
+ # shown compared to your offers. In other words, this is the number of displayed
414
+ # impressions of a competitor retailer divided by the number of your displayed
415
+ # impressions during a selected time range for a selected product category and
416
+ # country. Cannot be filtered on in the 'WHERE' clause.
417
+ # Corresponds to the JSON property `relativeVisibility`
418
+ # @return [Float]
419
+ attr_accessor :relative_visibility
420
+
421
+ # Google product category ID to calculate the report for, represented in [Google'
422
+ # s product taxonomy](https://support.google.com/merchants/answer/6324436).
423
+ # Required in the `SELECT` clause. A condition on `report_category_id` is
424
+ # required in the `WHERE` clause.
425
+ # Corresponds to the JSON property `reportCategoryId`
426
+ # @return [Fixnum]
427
+ attr_accessor :report_category_id
428
+
429
+ # Country where impressions appeared. Required in the `SELECT` clause. A
430
+ # condition on `report_country_code` is required in the `WHERE` clause.
431
+ # Corresponds to the JSON property `reportCountryCode`
432
+ # @return [String]
433
+ attr_accessor :report_country_code
434
+
435
+ # Traffic source of impressions. Required in the `SELECT` clause.
436
+ # Corresponds to the JSON property `trafficSource`
437
+ # @return [String]
438
+ attr_accessor :traffic_source
439
+
440
+ def initialize(**args)
441
+ update!(**args)
442
+ end
443
+
444
+ # Update properties of this object
445
+ def update!(**args)
446
+ @ads_organic_ratio = args[:ads_organic_ratio] if args.key?(:ads_organic_ratio)
447
+ @date = args[:date] if args.key?(:date)
448
+ @domain = args[:domain] if args.key?(:domain)
449
+ @higher_position_rate = args[:higher_position_rate] if args.key?(:higher_position_rate)
450
+ @is_your_domain = args[:is_your_domain] if args.key?(:is_your_domain)
451
+ @page_overlap_rate = args[:page_overlap_rate] if args.key?(:page_overlap_rate)
452
+ @rank = args[:rank] if args.key?(:rank)
453
+ @relative_visibility = args[:relative_visibility] if args.key?(:relative_visibility)
454
+ @report_category_id = args[:report_category_id] if args.key?(:report_category_id)
455
+ @report_country_code = args[:report_country_code] if args.key?(:report_country_code)
456
+ @traffic_source = args[:traffic_source] if args.key?(:traffic_source)
457
+ end
458
+ end
459
+
460
+ # Fields available for query in `competitive_visibility_top_merchant_view` table.
461
+ # [Competitive visibility](https://support.google.com/merchants/answer/11366442)
462
+ # report with business with highest visibility. Values are only set for fields
463
+ # requested explicitly in the request's search query.
464
+ class CompetitiveVisibilityTopMerchantView
465
+ include Google::Apis::Core::Hashable
466
+
467
+ # [Ads / organic ratio] (https://support.google.com/merchants/answer/11366442#
468
+ # zippy=%2Cads-free-ratio) shows how often the domain receives impressions from
469
+ # Shopping ads compared to organic traffic. The number is rounded and bucketed.
470
+ # Cannot be filtered on in the 'WHERE' clause.
471
+ # Corresponds to the JSON property `adsOrganicRatio`
472
+ # @return [Float]
473
+ attr_accessor :ads_organic_ratio
474
+
475
+ # Represents a whole or partial calendar date, such as a birthday. The time of
476
+ # day and time zone are either specified elsewhere or are insignificant. The
477
+ # date is relative to the Gregorian Calendar. This can represent one of the
478
+ # following: * A full date, with non-zero year, month, and day values. * A month
479
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
480
+ # with a zero month and a zero day. * A year and month, with a zero day (for
481
+ # example, a credit card expiration date). Related types: * google.type.
482
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
483
+ # Corresponds to the JSON property `date`
484
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
485
+ attr_accessor :date
486
+
487
+ # Domain of your competitor or your domain, if 'is_your_domain' is true.
488
+ # Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' clause.
489
+ # Corresponds to the JSON property `domain`
490
+ # @return [String]
491
+ attr_accessor :domain
492
+
493
+ # [Higher position rate] (https://support.google.com/merchants/answer/11366442#
494
+ # zippy=%2Chigher-position-rate) shows how often a competitor’s offer got placed
495
+ # in a higher position on the page than your offer. Cannot be filtered on in the
496
+ # 'WHERE' clause.
497
+ # Corresponds to the JSON property `higherPositionRate`
498
+ # @return [Float]
499
+ attr_accessor :higher_position_rate
500
+
501
+ # True if this row contains data for your domain. Cannot be filtered on in the '
502
+ # WHERE' clause.
503
+ # Corresponds to the JSON property `isYourDomain`
504
+ # @return [Boolean]
505
+ attr_accessor :is_your_domain
506
+ alias_method :is_your_domain?, :is_your_domain
507
+
508
+ # [Page overlap rate] (https://support.google.com/merchants/answer/11366442#
509
+ # zippy=%2Cpage-overlap-rate) shows how frequently competing retailers’ offers
510
+ # are shown together with your offers on the same page. Cannot be filtered on in
511
+ # the 'WHERE' clause.
512
+ # Corresponds to the JSON property `pageOverlapRate`
513
+ # @return [Float]
514
+ attr_accessor :page_overlap_rate
515
+
516
+ # Position of the domain in the top merchants ranking for the selected keys (`
517
+ # date`, `report_category_id`, `report_country_code`, `traffic_source`) based on
518
+ # impressions. 1 is the highest. Cannot be filtered on in the 'WHERE' clause.
519
+ # Corresponds to the JSON property `rank`
520
+ # @return [Fixnum]
521
+ attr_accessor :rank
522
+
523
+ # Google product category ID to calculate the report for, represented in [Google'
524
+ # s product taxonomy](https://support.google.com/merchants/answer/6324436).
525
+ # Required in the `SELECT` clause. A condition on `report_category_id` is
526
+ # required in the `WHERE` clause.
527
+ # Corresponds to the JSON property `reportCategoryId`
528
+ # @return [Fixnum]
529
+ attr_accessor :report_category_id
530
+
531
+ # Country where impressions appeared. Required in the `SELECT` clause. A
532
+ # condition on `report_country_code` is required in the `WHERE` clause.
533
+ # Corresponds to the JSON property `reportCountryCode`
534
+ # @return [String]
535
+ attr_accessor :report_country_code
536
+
537
+ # Traffic source of impressions. Required in the `SELECT` clause.
538
+ # Corresponds to the JSON property `trafficSource`
539
+ # @return [String]
540
+ attr_accessor :traffic_source
541
+
542
+ def initialize(**args)
543
+ update!(**args)
544
+ end
545
+
546
+ # Update properties of this object
547
+ def update!(**args)
548
+ @ads_organic_ratio = args[:ads_organic_ratio] if args.key?(:ads_organic_ratio)
549
+ @date = args[:date] if args.key?(:date)
550
+ @domain = args[:domain] if args.key?(:domain)
551
+ @higher_position_rate = args[:higher_position_rate] if args.key?(:higher_position_rate)
552
+ @is_your_domain = args[:is_your_domain] if args.key?(:is_your_domain)
553
+ @page_overlap_rate = args[:page_overlap_rate] if args.key?(:page_overlap_rate)
554
+ @rank = args[:rank] if args.key?(:rank)
555
+ @report_category_id = args[:report_category_id] if args.key?(:report_category_id)
556
+ @report_country_code = args[:report_country_code] if args.key?(:report_country_code)
557
+ @traffic_source = args[:traffic_source] if args.key?(:traffic_source)
558
+ end
559
+ end
560
+
561
+ # Represents a whole or partial calendar date, such as a birthday. The time of
562
+ # day and time zone are either specified elsewhere or are insignificant. The
563
+ # date is relative to the Gregorian Calendar. This can represent one of the
564
+ # following: * A full date, with non-zero year, month, and day values. * A month
565
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
566
+ # with a zero month and a zero day. * A year and month, with a zero day (for
567
+ # example, a credit card expiration date). Related types: * google.type.
568
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
569
+ class Date
570
+ include Google::Apis::Core::Hashable
571
+
572
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
573
+ # specify a year by itself or a year and month where the day isn't significant.
574
+ # Corresponds to the JSON property `day`
575
+ # @return [Fixnum]
576
+ attr_accessor :day
577
+
578
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
579
+ # and day.
580
+ # Corresponds to the JSON property `month`
581
+ # @return [Fixnum]
582
+ attr_accessor :month
583
+
584
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
585
+ # year.
586
+ # Corresponds to the JSON property `year`
587
+ # @return [Fixnum]
588
+ attr_accessor :year
589
+
590
+ def initialize(**args)
591
+ update!(**args)
592
+ end
593
+
594
+ # Update properties of this object
595
+ def update!(**args)
596
+ @day = args[:day] if args.key?(:day)
597
+ @month = args[:month] if args.key?(:month)
598
+ @year = args[:year] if args.key?(:year)
599
+ end
600
+ end
601
+
602
+ # Issue severity per reporting context.
603
+ class IssueSeverityPerReportingContext
604
+ include Google::Apis::Core::Hashable
605
+
606
+ # List of demoted countries in the reporting context, represented in ISO 3166
607
+ # format.
608
+ # Corresponds to the JSON property `demotedCountries`
609
+ # @return [Array<String>]
610
+ attr_accessor :demoted_countries
611
+
612
+ # List of disapproved countries in the reporting context, represented in ISO
613
+ # 3166 format.
614
+ # Corresponds to the JSON property `disapprovedCountries`
615
+ # @return [Array<String>]
616
+ attr_accessor :disapproved_countries
617
+
618
+ # Reporting context the issue applies to.
619
+ # Corresponds to the JSON property `reportingContext`
620
+ # @return [String]
621
+ attr_accessor :reporting_context
622
+
623
+ def initialize(**args)
624
+ update!(**args)
625
+ end
626
+
627
+ # Update properties of this object
628
+ def update!(**args)
629
+ @demoted_countries = args[:demoted_countries] if args.key?(:demoted_countries)
630
+ @disapproved_countries = args[:disapproved_countries] if args.key?(:disapproved_countries)
631
+ @reporting_context = args[:reporting_context] if args.key?(:reporting_context)
632
+ end
633
+ end
634
+
635
+ # Item issue associated with the product.
636
+ class ItemIssue
637
+ include Google::Apis::Core::Hashable
638
+
639
+ # Item issue resolution.
640
+ # Corresponds to the JSON property `resolution`
641
+ # @return [String]
642
+ attr_accessor :resolution
643
+
644
+ # How the issue affects the serving of the product.
645
+ # Corresponds to the JSON property `severity`
646
+ # @return [Google::Apis::MerchantapiReportsV1beta::ItemIssueSeverity]
647
+ attr_accessor :severity
648
+
649
+ # Issue type.
650
+ # Corresponds to the JSON property `type`
651
+ # @return [Google::Apis::MerchantapiReportsV1beta::ItemIssueType]
652
+ attr_accessor :type
653
+
654
+ def initialize(**args)
655
+ update!(**args)
656
+ end
657
+
658
+ # Update properties of this object
659
+ def update!(**args)
660
+ @resolution = args[:resolution] if args.key?(:resolution)
661
+ @severity = args[:severity] if args.key?(:severity)
662
+ @type = args[:type] if args.key?(:type)
663
+ end
664
+ end
665
+
666
+ # How the issue affects the serving of the product.
667
+ class ItemIssueSeverity
668
+ include Google::Apis::Core::Hashable
669
+
670
+ # Aggregated severity of the issue for all reporting contexts it affects. **This
671
+ # field can be used for filtering the results.**
672
+ # Corresponds to the JSON property `aggregatedSeverity`
673
+ # @return [String]
674
+ attr_accessor :aggregated_severity
675
+
676
+ # Issue severity per reporting context.
677
+ # Corresponds to the JSON property `severityPerReportingContext`
678
+ # @return [Array<Google::Apis::MerchantapiReportsV1beta::IssueSeverityPerReportingContext>]
679
+ attr_accessor :severity_per_reporting_context
680
+
681
+ def initialize(**args)
682
+ update!(**args)
683
+ end
684
+
685
+ # Update properties of this object
686
+ def update!(**args)
687
+ @aggregated_severity = args[:aggregated_severity] if args.key?(:aggregated_severity)
688
+ @severity_per_reporting_context = args[:severity_per_reporting_context] if args.key?(:severity_per_reporting_context)
689
+ end
690
+ end
691
+
692
+ # Issue type.
693
+ class ItemIssueType
694
+ include Google::Apis::Core::Hashable
695
+
696
+ # Canonical attribute name for attribute-specific issues.
697
+ # Corresponds to the JSON property `canonicalAttribute`
698
+ # @return [String]
699
+ attr_accessor :canonical_attribute
700
+
701
+ # Error code of the issue, equivalent to the `code` of [Product issues](https://
702
+ # developers.google.com/shopping-content/guides/product-issues).
703
+ # Corresponds to the JSON property `code`
704
+ # @return [String]
705
+ attr_accessor :code
706
+
707
+ def initialize(**args)
708
+ update!(**args)
709
+ end
710
+
711
+ # Update properties of this object
712
+ def update!(**args)
713
+ @canonical_attribute = args[:canonical_attribute] if args.key?(:canonical_attribute)
714
+ @code = args[:code] if args.key?(:code)
715
+ end
716
+ end
717
+
718
+ # Fields available for query in `non_product_performance_view` table.
719
+ # Performance data on images and online store links leading to your non-product
720
+ # pages. This includes performance metrics (for example, `clicks`) and
721
+ # dimensions according to which performance metrics are segmented (for example, `
722
+ # date`). Segment fields cannot be selected in queries without also selecting at
723
+ # least one metric field. Values are only set for fields requested explicitly in
724
+ # the request's search query.
725
+ class NonProductPerformanceView
726
+ include Google::Apis::Core::Hashable
727
+
728
+ # Click-through rate - the number of clicks (`clicks`) divided by the number of
729
+ # impressions (`impressions`) of images and online store links leading to your
730
+ # non-product pages. Metric.
731
+ # Corresponds to the JSON property `clickThroughRate`
732
+ # @return [Float]
733
+ attr_accessor :click_through_rate
734
+
735
+ # Number of clicks on images and online store links leading to your non-product
736
+ # pages. Metric.
737
+ # Corresponds to the JSON property `clicks`
738
+ # @return [Fixnum]
739
+ attr_accessor :clicks
740
+
741
+ # Represents a whole or partial calendar date, such as a birthday. The time of
742
+ # day and time zone are either specified elsewhere or are insignificant. The
743
+ # date is relative to the Gregorian Calendar. This can represent one of the
744
+ # following: * A full date, with non-zero year, month, and day values. * A month
745
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
746
+ # with a zero month and a zero day. * A year and month, with a zero day (for
747
+ # example, a credit card expiration date). Related types: * google.type.
748
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
749
+ # Corresponds to the JSON property `date`
750
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
751
+ attr_accessor :date
752
+
753
+ # Number of times images and online store links leading to your non-product
754
+ # pages were shown. Metric.
755
+ # Corresponds to the JSON property `impressions`
756
+ # @return [Fixnum]
757
+ attr_accessor :impressions
758
+
759
+ # Represents a whole or partial calendar date, such as a birthday. The time of
760
+ # day and time zone are either specified elsewhere or are insignificant. The
761
+ # date is relative to the Gregorian Calendar. This can represent one of the
762
+ # following: * A full date, with non-zero year, month, and day values. * A month
763
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
764
+ # with a zero month and a zero day. * A year and month, with a zero day (for
765
+ # example, a credit card expiration date). Related types: * google.type.
766
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
767
+ # Corresponds to the JSON property `week`
768
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
769
+ attr_accessor :week
770
+
771
+ def initialize(**args)
772
+ update!(**args)
773
+ end
774
+
775
+ # Update properties of this object
776
+ def update!(**args)
777
+ @click_through_rate = args[:click_through_rate] if args.key?(:click_through_rate)
778
+ @clicks = args[:clicks] if args.key?(:clicks)
779
+ @date = args[:date] if args.key?(:date)
780
+ @impressions = args[:impressions] if args.key?(:impressions)
781
+ @week = args[:week] if args.key?(:week)
782
+ end
783
+ end
784
+
785
+ # The price represented as a number and currency.
786
+ class Price
787
+ include Google::Apis::Core::Hashable
788
+
789
+ # The price represented as a number in micros (1 million micros is an equivalent
790
+ # to one's currency standard unit, for example, 1 USD = 1000000 micros).
791
+ # Corresponds to the JSON property `amountMicros`
792
+ # @return [Fixnum]
793
+ attr_accessor :amount_micros
794
+
795
+ # The currency of the price using three-letter acronyms according to [ISO 4217](
796
+ # http://en.wikipedia.org/wiki/ISO_4217).
797
+ # Corresponds to the JSON property `currencyCode`
798
+ # @return [String]
799
+ attr_accessor :currency_code
800
+
801
+ def initialize(**args)
802
+ update!(**args)
803
+ end
804
+
805
+ # Update properties of this object
806
+ def update!(**args)
807
+ @amount_micros = args[:amount_micros] if args.key?(:amount_micros)
808
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
809
+ end
810
+ end
811
+
812
+ # Fields available for query in `price_competitiveness_product_view` table. [
813
+ # Price competitiveness](https://support.google.com/merchants/answer/9626903)
814
+ # report. Values are only set for fields requested explicitly in the request's
815
+ # search query.
816
+ class PriceCompetitivenessProductView
817
+ include Google::Apis::Core::Hashable
818
+
819
+ # The price represented as a number and currency.
820
+ # Corresponds to the JSON property `benchmarkPrice`
821
+ # @return [Google::Apis::MerchantapiReportsV1beta::Price]
822
+ attr_accessor :benchmark_price
823
+
824
+ # Brand of the product.
825
+ # Corresponds to the JSON property `brand`
826
+ # @return [String]
827
+ attr_accessor :brand
828
+
829
+ # Product category (1st level) in [Google's product taxonomy](https://support.
830
+ # google.com/merchants/answer/6324436).
831
+ # Corresponds to the JSON property `categoryL1`
832
+ # @return [String]
833
+ attr_accessor :category_l1
834
+
835
+ # Product category (2nd level) in [Google's product taxonomy](https://support.
836
+ # google.com/merchants/answer/6324436).
837
+ # Corresponds to the JSON property `categoryL2`
838
+ # @return [String]
839
+ attr_accessor :category_l2
840
+
841
+ # Product category (3rd level) in [Google's product taxonomy](https://support.
842
+ # google.com/merchants/answer/6324436).
843
+ # Corresponds to the JSON property `categoryL3`
844
+ # @return [String]
845
+ attr_accessor :category_l3
846
+
847
+ # Product category (4th level) in [Google's product taxonomy](https://support.
848
+ # google.com/merchants/answer/6324436).
849
+ # Corresponds to the JSON property `categoryL4`
850
+ # @return [String]
851
+ attr_accessor :category_l4
852
+
853
+ # Product category (5th level) in [Google's product taxonomy](https://support.
854
+ # google.com/merchants/answer/6324436).
855
+ # Corresponds to the JSON property `categoryL5`
856
+ # @return [String]
857
+ attr_accessor :category_l5
858
+
859
+ # REST ID of the product, in the form of `channel~languageCode~feedLabel~offerId`
860
+ # . Can be used to join data with the `product_view` table. Required in the `
861
+ # SELECT` clause.
862
+ # Corresponds to the JSON property `id`
863
+ # @return [String]
864
+ attr_accessor :id
865
+
866
+ # Merchant-provided id of the product.
867
+ # Corresponds to the JSON property `offerId`
868
+ # @return [String]
869
+ attr_accessor :offer_id
870
+
871
+ # The price represented as a number and currency.
872
+ # Corresponds to the JSON property `price`
873
+ # @return [Google::Apis::MerchantapiReportsV1beta::Price]
874
+ attr_accessor :price
875
+
876
+ # Product type (1st level) in merchant's own [product taxonomy](https://support.
877
+ # google.com/merchants/answer/6324406).
878
+ # Corresponds to the JSON property `productTypeL1`
879
+ # @return [String]
880
+ attr_accessor :product_type_l1
881
+
882
+ # Product type (2nd level) in merchant's own [product taxonomy](https://support.
883
+ # google.com/merchants/answer/6324406).
884
+ # Corresponds to the JSON property `productTypeL2`
885
+ # @return [String]
886
+ attr_accessor :product_type_l2
887
+
888
+ # Product type (3rd level) in merchant's own [product taxonomy](https://support.
889
+ # google.com/merchants/answer/6324406).
890
+ # Corresponds to the JSON property `productTypeL3`
891
+ # @return [String]
892
+ attr_accessor :product_type_l3
893
+
894
+ # Product type (4th level) in merchant's own [product taxonomy](https://support.
895
+ # google.com/merchants/answer/6324406).
896
+ # Corresponds to the JSON property `productTypeL4`
897
+ # @return [String]
898
+ attr_accessor :product_type_l4
899
+
900
+ # Product type (5th level) in merchant's own [product taxonomy](https://support.
901
+ # google.com/merchants/answer/6324406).
902
+ # Corresponds to the JSON property `productTypeL5`
903
+ # @return [String]
904
+ attr_accessor :product_type_l5
905
+
906
+ # Country of the price benchmark. Represented in the ISO 3166 format. Required
907
+ # in the `SELECT` clause.
908
+ # Corresponds to the JSON property `reportCountryCode`
909
+ # @return [String]
910
+ attr_accessor :report_country_code
911
+
912
+ # Title of the product.
913
+ # Corresponds to the JSON property `title`
914
+ # @return [String]
915
+ attr_accessor :title
916
+
917
+ def initialize(**args)
918
+ update!(**args)
919
+ end
920
+
921
+ # Update properties of this object
922
+ def update!(**args)
923
+ @benchmark_price = args[:benchmark_price] if args.key?(:benchmark_price)
924
+ @brand = args[:brand] if args.key?(:brand)
925
+ @category_l1 = args[:category_l1] if args.key?(:category_l1)
926
+ @category_l2 = args[:category_l2] if args.key?(:category_l2)
927
+ @category_l3 = args[:category_l3] if args.key?(:category_l3)
928
+ @category_l4 = args[:category_l4] if args.key?(:category_l4)
929
+ @category_l5 = args[:category_l5] if args.key?(:category_l5)
930
+ @id = args[:id] if args.key?(:id)
931
+ @offer_id = args[:offer_id] if args.key?(:offer_id)
932
+ @price = args[:price] if args.key?(:price)
933
+ @product_type_l1 = args[:product_type_l1] if args.key?(:product_type_l1)
934
+ @product_type_l2 = args[:product_type_l2] if args.key?(:product_type_l2)
935
+ @product_type_l3 = args[:product_type_l3] if args.key?(:product_type_l3)
936
+ @product_type_l4 = args[:product_type_l4] if args.key?(:product_type_l4)
937
+ @product_type_l5 = args[:product_type_l5] if args.key?(:product_type_l5)
938
+ @report_country_code = args[:report_country_code] if args.key?(:report_country_code)
939
+ @title = args[:title] if args.key?(:title)
940
+ end
941
+ end
942
+
943
+ # Fields available for query in `price_insights_product_view` table. [Price
944
+ # insights](https://support.google.com/merchants/answer/11916926) report. Values
945
+ # are only set for fields requested explicitly in the request's search query.
946
+ class PriceInsightsProductView
947
+ include Google::Apis::Core::Hashable
948
+
949
+ # Brand of the product.
950
+ # Corresponds to the JSON property `brand`
951
+ # @return [String]
952
+ attr_accessor :brand
953
+
954
+ # Product category (1st level) in [Google's product taxonomy](https://support.
955
+ # google.com/merchants/answer/6324436).
956
+ # Corresponds to the JSON property `categoryL1`
957
+ # @return [String]
958
+ attr_accessor :category_l1
959
+
960
+ # Product category (2nd level) in [Google's product taxonomy](https://support.
961
+ # google.com/merchants/answer/6324436).
962
+ # Corresponds to the JSON property `categoryL2`
963
+ # @return [String]
964
+ attr_accessor :category_l2
965
+
966
+ # Product category (3rd level) in [Google's product taxonomy](https://support.
967
+ # google.com/merchants/answer/6324436).
968
+ # Corresponds to the JSON property `categoryL3`
969
+ # @return [String]
970
+ attr_accessor :category_l3
971
+
972
+ # Product category (4th level) in [Google's product taxonomy](https://support.
973
+ # google.com/merchants/answer/6324436).
974
+ # Corresponds to the JSON property `categoryL4`
975
+ # @return [String]
976
+ attr_accessor :category_l4
977
+
978
+ # Product category (5th level) in [Google's product taxonomy](https://support.
979
+ # google.com/merchants/answer/6324436).
980
+ # Corresponds to the JSON property `categoryL5`
981
+ # @return [String]
982
+ attr_accessor :category_l5
983
+
984
+ # The predicted effectiveness of applying the price suggestion, bucketed.
985
+ # Corresponds to the JSON property `effectiveness`
986
+ # @return [String]
987
+ attr_accessor :effectiveness
988
+
989
+ # REST ID of the product, in the form of `channel~languageCode~feedLabel~offerId`
990
+ # . Can be used to join data with the `product_view` table. Required in the `
991
+ # SELECT` clause.
992
+ # Corresponds to the JSON property `id`
993
+ # @return [String]
994
+ attr_accessor :id
995
+
996
+ # Merchant-provided id of the product.
997
+ # Corresponds to the JSON property `offerId`
998
+ # @return [String]
999
+ attr_accessor :offer_id
1000
+
1001
+ # Predicted change in clicks as a fraction after introducing the suggested price
1002
+ # compared to current active price. For example, 0.05 is a 5% predicted increase
1003
+ # in clicks.
1004
+ # Corresponds to the JSON property `predictedClicksChangeFraction`
1005
+ # @return [Float]
1006
+ attr_accessor :predicted_clicks_change_fraction
1007
+
1008
+ # Predicted change in conversions as a fraction after introducing the suggested
1009
+ # price compared to current active price. For example, 0.05 is a 5% predicted
1010
+ # increase in conversions).
1011
+ # Corresponds to the JSON property `predictedConversionsChangeFraction`
1012
+ # @return [Float]
1013
+ attr_accessor :predicted_conversions_change_fraction
1014
+
1015
+ # Predicted change in impressions as a fraction after introducing the suggested
1016
+ # price compared to current active price. For example, 0.05 is a 5% predicted
1017
+ # increase in impressions.
1018
+ # Corresponds to the JSON property `predictedImpressionsChangeFraction`
1019
+ # @return [Float]
1020
+ attr_accessor :predicted_impressions_change_fraction
1021
+
1022
+ # The price represented as a number and currency.
1023
+ # Corresponds to the JSON property `price`
1024
+ # @return [Google::Apis::MerchantapiReportsV1beta::Price]
1025
+ attr_accessor :price
1026
+
1027
+ # Product type (1st level) in merchant's own [product taxonomy](https://support.
1028
+ # google.com/merchants/answer/6324406).
1029
+ # Corresponds to the JSON property `productTypeL1`
1030
+ # @return [String]
1031
+ attr_accessor :product_type_l1
1032
+
1033
+ # Product type (2nd level) in merchant's own [product taxonomy](https://support.
1034
+ # google.com/merchants/answer/6324406).
1035
+ # Corresponds to the JSON property `productTypeL2`
1036
+ # @return [String]
1037
+ attr_accessor :product_type_l2
1038
+
1039
+ # Product type (3rd level) in merchant's own [product taxonomy](https://support.
1040
+ # google.com/merchants/answer/6324406).
1041
+ # Corresponds to the JSON property `productTypeL3`
1042
+ # @return [String]
1043
+ attr_accessor :product_type_l3
1044
+
1045
+ # Product type (4th level) in merchant's own [product taxonomy](https://support.
1046
+ # google.com/merchants/answer/6324406).
1047
+ # Corresponds to the JSON property `productTypeL4`
1048
+ # @return [String]
1049
+ attr_accessor :product_type_l4
1050
+
1051
+ # Product type (5th level) in merchant's own [product taxonomy](https://support.
1052
+ # google.com/merchants/answer/6324406).
1053
+ # Corresponds to the JSON property `productTypeL5`
1054
+ # @return [String]
1055
+ attr_accessor :product_type_l5
1056
+
1057
+ # The price represented as a number and currency.
1058
+ # Corresponds to the JSON property `suggestedPrice`
1059
+ # @return [Google::Apis::MerchantapiReportsV1beta::Price]
1060
+ attr_accessor :suggested_price
1061
+
1062
+ # Title of the product.
1063
+ # Corresponds to the JSON property `title`
1064
+ # @return [String]
1065
+ attr_accessor :title
1066
+
1067
+ def initialize(**args)
1068
+ update!(**args)
1069
+ end
1070
+
1071
+ # Update properties of this object
1072
+ def update!(**args)
1073
+ @brand = args[:brand] if args.key?(:brand)
1074
+ @category_l1 = args[:category_l1] if args.key?(:category_l1)
1075
+ @category_l2 = args[:category_l2] if args.key?(:category_l2)
1076
+ @category_l3 = args[:category_l3] if args.key?(:category_l3)
1077
+ @category_l4 = args[:category_l4] if args.key?(:category_l4)
1078
+ @category_l5 = args[:category_l5] if args.key?(:category_l5)
1079
+ @effectiveness = args[:effectiveness] if args.key?(:effectiveness)
1080
+ @id = args[:id] if args.key?(:id)
1081
+ @offer_id = args[:offer_id] if args.key?(:offer_id)
1082
+ @predicted_clicks_change_fraction = args[:predicted_clicks_change_fraction] if args.key?(:predicted_clicks_change_fraction)
1083
+ @predicted_conversions_change_fraction = args[:predicted_conversions_change_fraction] if args.key?(:predicted_conversions_change_fraction)
1084
+ @predicted_impressions_change_fraction = args[:predicted_impressions_change_fraction] if args.key?(:predicted_impressions_change_fraction)
1085
+ @price = args[:price] if args.key?(:price)
1086
+ @product_type_l1 = args[:product_type_l1] if args.key?(:product_type_l1)
1087
+ @product_type_l2 = args[:product_type_l2] if args.key?(:product_type_l2)
1088
+ @product_type_l3 = args[:product_type_l3] if args.key?(:product_type_l3)
1089
+ @product_type_l4 = args[:product_type_l4] if args.key?(:product_type_l4)
1090
+ @product_type_l5 = args[:product_type_l5] if args.key?(:product_type_l5)
1091
+ @suggested_price = args[:suggested_price] if args.key?(:suggested_price)
1092
+ @title = args[:title] if args.key?(:title)
1093
+ end
1094
+ end
1095
+
1096
+ # The change that happened to the product including old value, new value,
1097
+ # country code as the region code and reporting context.
1098
+ class ProductChange
1099
+ include Google::Apis::Core::Hashable
1100
+
1101
+ # The new value of the changed resource or attribute.
1102
+ # Corresponds to the JSON property `newValue`
1103
+ # @return [String]
1104
+ attr_accessor :new_value
1105
+
1106
+ # The old value of the changed resource or attribute.
1107
+ # Corresponds to the JSON property `oldValue`
1108
+ # @return [String]
1109
+ attr_accessor :old_value
1110
+
1111
+ # Countries that have the change (if applicable)
1112
+ # Corresponds to the JSON property `regionCode`
1113
+ # @return [String]
1114
+ attr_accessor :region_code
1115
+
1116
+ # Reporting contexts that have the change (if applicable)
1117
+ # Corresponds to the JSON property `reportingContext`
1118
+ # @return [String]
1119
+ attr_accessor :reporting_context
1120
+
1121
+ def initialize(**args)
1122
+ update!(**args)
1123
+ end
1124
+
1125
+ # Update properties of this object
1126
+ def update!(**args)
1127
+ @new_value = args[:new_value] if args.key?(:new_value)
1128
+ @old_value = args[:old_value] if args.key?(:old_value)
1129
+ @region_code = args[:region_code] if args.key?(:region_code)
1130
+ @reporting_context = args[:reporting_context] if args.key?(:reporting_context)
1131
+ end
1132
+ end
1133
+
1134
+ # Fields available for query in `product_performance_view` table. Product
1135
+ # performance data for your account, including performance metrics (for example,
1136
+ # `clicks`) and dimensions according to which performance metrics are segmented (
1137
+ # for example, `offer_id`). Values of product dimensions, such as `offer_id`,
1138
+ # reflect the state of a product at the time of the impression. Segment fields
1139
+ # cannot be selected in queries without also selecting at least one metric field.
1140
+ # Values are only set for fields requested explicitly in the request's search
1141
+ # query.
1142
+ class ProductPerformanceView
1143
+ include Google::Apis::Core::Hashable
1144
+
1145
+ # Brand of the product. Segment.
1146
+ # Corresponds to the JSON property `brand`
1147
+ # @return [String]
1148
+ attr_accessor :brand
1149
+
1150
+ # [Product category (1st level)](https://developers.google.com/shopping-content/
1151
+ # guides/reports/segmentation#category_and_product_type) in Google's product
1152
+ # taxonomy. Segment.
1153
+ # Corresponds to the JSON property `categoryL1`
1154
+ # @return [String]
1155
+ attr_accessor :category_l1
1156
+
1157
+ # [Product category (2nd level)](https://developers.google.com/shopping-content/
1158
+ # guides/reports/segmentation#category_and_product_type) in Google's product
1159
+ # taxonomy. Segment.
1160
+ # Corresponds to the JSON property `categoryL2`
1161
+ # @return [String]
1162
+ attr_accessor :category_l2
1163
+
1164
+ # [Product category (3rd level)](https://developers.google.com/shopping-content/
1165
+ # guides/reports/segmentation#category_and_product_type) in Google's product
1166
+ # taxonomy. Segment.
1167
+ # Corresponds to the JSON property `categoryL3`
1168
+ # @return [String]
1169
+ attr_accessor :category_l3
1170
+
1171
+ # [Product category (4th level)](https://developers.google.com/shopping-content/
1172
+ # guides/reports/segmentation#category_and_product_type) in Google's product
1173
+ # taxonomy. Segment.
1174
+ # Corresponds to the JSON property `categoryL4`
1175
+ # @return [String]
1176
+ attr_accessor :category_l4
1177
+
1178
+ # [Product category (5th level)](https://developers.google.com/shopping-content/
1179
+ # guides/reports/segmentation#category_and_product_type) in Google's product
1180
+ # taxonomy. Segment.
1181
+ # Corresponds to the JSON property `categoryL5`
1182
+ # @return [String]
1183
+ attr_accessor :category_l5
1184
+
1185
+ # Click-through rate - the number of clicks merchant's products receive (clicks)
1186
+ # divided by the number of times the products are shown (impressions). Metric.
1187
+ # Corresponds to the JSON property `clickThroughRate`
1188
+ # @return [Float]
1189
+ attr_accessor :click_through_rate
1190
+
1191
+ # Number of clicks. Metric.
1192
+ # Corresponds to the JSON property `clicks`
1193
+ # @return [Fixnum]
1194
+ attr_accessor :clicks
1195
+
1196
+ # Number of conversions divided by the number of clicks, reported on the
1197
+ # impression date. Metric. Available only for the `FREE` traffic source.
1198
+ # Corresponds to the JSON property `conversionRate`
1199
+ # @return [Float]
1200
+ attr_accessor :conversion_rate
1201
+
1202
+ # The price represented as a number and currency.
1203
+ # Corresponds to the JSON property `conversionValue`
1204
+ # @return [Google::Apis::MerchantapiReportsV1beta::Price]
1205
+ attr_accessor :conversion_value
1206
+
1207
+ # Number of conversions attributed to the product, reported on the conversion
1208
+ # date. Depending on the attribution model, a conversion might be distributed
1209
+ # across multiple clicks, where each click gets its own credit assigned. This
1210
+ # metric is a sum of all such credits. Metric. Available only for the `FREE`
1211
+ # traffic source.
1212
+ # Corresponds to the JSON property `conversions`
1213
+ # @return [Float]
1214
+ attr_accessor :conversions
1215
+
1216
+ # Custom label 0 for custom grouping of products. Segment.
1217
+ # Corresponds to the JSON property `customLabel0`
1218
+ # @return [String]
1219
+ attr_accessor :custom_label0
1220
+
1221
+ # Custom label 1 for custom grouping of products. Segment.
1222
+ # Corresponds to the JSON property `customLabel1`
1223
+ # @return [String]
1224
+ attr_accessor :custom_label1
1225
+
1226
+ # Custom label 2 for custom grouping of products. Segment.
1227
+ # Corresponds to the JSON property `customLabel2`
1228
+ # @return [String]
1229
+ attr_accessor :custom_label2
1230
+
1231
+ # Custom label 3 for custom grouping of products. Segment.
1232
+ # Corresponds to the JSON property `customLabel3`
1233
+ # @return [String]
1234
+ attr_accessor :custom_label3
1235
+
1236
+ # Custom label 4 for custom grouping of products. Segment.
1237
+ # Corresponds to the JSON property `customLabel4`
1238
+ # @return [String]
1239
+ attr_accessor :custom_label4
1240
+
1241
+ # Code of the country where the customer is located at the time of the event.
1242
+ # Represented in the ISO 3166 format. Segment. If the customer country cannot be
1243
+ # determined, a special 'ZZ' code is returned.
1244
+ # Corresponds to the JSON property `customerCountryCode`
1245
+ # @return [String]
1246
+ attr_accessor :customer_country_code
1247
+
1248
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1249
+ # day and time zone are either specified elsewhere or are insignificant. The
1250
+ # date is relative to the Gregorian Calendar. This can represent one of the
1251
+ # following: * A full date, with non-zero year, month, and day values. * A month
1252
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
1253
+ # with a zero month and a zero day. * A year and month, with a zero day (for
1254
+ # example, a credit card expiration date). Related types: * google.type.
1255
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
1256
+ # Corresponds to the JSON property `date`
1257
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
1258
+ attr_accessor :date
1259
+
1260
+ # Number of times merchant's products are shown. Metric.
1261
+ # Corresponds to the JSON property `impressions`
1262
+ # @return [Fixnum]
1263
+ attr_accessor :impressions
1264
+
1265
+ # Marketing method to which metrics apply. Segment.
1266
+ # Corresponds to the JSON property `marketingMethod`
1267
+ # @return [String]
1268
+ attr_accessor :marketing_method
1269
+
1270
+ # Merchant-provided id of the product. Segment.
1271
+ # Corresponds to the JSON property `offerId`
1272
+ # @return [String]
1273
+ attr_accessor :offer_id
1274
+
1275
+ # [Product type (1st level)](https://developers.google.com/shopping-content/
1276
+ # guides/reports/segmentation#category_and_product_type) in merchant's own
1277
+ # product taxonomy. Segment.
1278
+ # Corresponds to the JSON property `productTypeL1`
1279
+ # @return [String]
1280
+ attr_accessor :product_type_l1
1281
+
1282
+ # [Product type (2nd level)](https://developers.google.com/shopping-content/
1283
+ # guides/reports/segmentation#category_and_product_type) in merchant's own
1284
+ # product taxonomy. Segment.
1285
+ # Corresponds to the JSON property `productTypeL2`
1286
+ # @return [String]
1287
+ attr_accessor :product_type_l2
1288
+
1289
+ # [Product type (3rd level)](https://developers.google.com/shopping-content/
1290
+ # guides/reports/segmentation#category_and_product_type) in merchant's own
1291
+ # product taxonomy. Segment.
1292
+ # Corresponds to the JSON property `productTypeL3`
1293
+ # @return [String]
1294
+ attr_accessor :product_type_l3
1295
+
1296
+ # [Product type (4th level)](https://developers.google.com/shopping-content/
1297
+ # guides/reports/segmentation#category_and_product_type) in merchant's own
1298
+ # product taxonomy. Segment.
1299
+ # Corresponds to the JSON property `productTypeL4`
1300
+ # @return [String]
1301
+ attr_accessor :product_type_l4
1302
+
1303
+ # [Product type (5th level)](https://developers.google.com/shopping-content/
1304
+ # guides/reports/segmentation#category_and_product_type) in merchant's own
1305
+ # product taxonomy. Segment.
1306
+ # Corresponds to the JSON property `productTypeL5`
1307
+ # @return [String]
1308
+ attr_accessor :product_type_l5
1309
+
1310
+ # Title of the product. Segment.
1311
+ # Corresponds to the JSON property `title`
1312
+ # @return [String]
1313
+ attr_accessor :title
1314
+
1315
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1316
+ # day and time zone are either specified elsewhere or are insignificant. The
1317
+ # date is relative to the Gregorian Calendar. This can represent one of the
1318
+ # following: * A full date, with non-zero year, month, and day values. * A month
1319
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
1320
+ # with a zero month and a zero day. * A year and month, with a zero day (for
1321
+ # example, a credit card expiration date). Related types: * google.type.
1322
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
1323
+ # Corresponds to the JSON property `week`
1324
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
1325
+ attr_accessor :week
1326
+
1327
+ def initialize(**args)
1328
+ update!(**args)
1329
+ end
1330
+
1331
+ # Update properties of this object
1332
+ def update!(**args)
1333
+ @brand = args[:brand] if args.key?(:brand)
1334
+ @category_l1 = args[:category_l1] if args.key?(:category_l1)
1335
+ @category_l2 = args[:category_l2] if args.key?(:category_l2)
1336
+ @category_l3 = args[:category_l3] if args.key?(:category_l3)
1337
+ @category_l4 = args[:category_l4] if args.key?(:category_l4)
1338
+ @category_l5 = args[:category_l5] if args.key?(:category_l5)
1339
+ @click_through_rate = args[:click_through_rate] if args.key?(:click_through_rate)
1340
+ @clicks = args[:clicks] if args.key?(:clicks)
1341
+ @conversion_rate = args[:conversion_rate] if args.key?(:conversion_rate)
1342
+ @conversion_value = args[:conversion_value] if args.key?(:conversion_value)
1343
+ @conversions = args[:conversions] if args.key?(:conversions)
1344
+ @custom_label0 = args[:custom_label0] if args.key?(:custom_label0)
1345
+ @custom_label1 = args[:custom_label1] if args.key?(:custom_label1)
1346
+ @custom_label2 = args[:custom_label2] if args.key?(:custom_label2)
1347
+ @custom_label3 = args[:custom_label3] if args.key?(:custom_label3)
1348
+ @custom_label4 = args[:custom_label4] if args.key?(:custom_label4)
1349
+ @customer_country_code = args[:customer_country_code] if args.key?(:customer_country_code)
1350
+ @date = args[:date] if args.key?(:date)
1351
+ @impressions = args[:impressions] if args.key?(:impressions)
1352
+ @marketing_method = args[:marketing_method] if args.key?(:marketing_method)
1353
+ @offer_id = args[:offer_id] if args.key?(:offer_id)
1354
+ @product_type_l1 = args[:product_type_l1] if args.key?(:product_type_l1)
1355
+ @product_type_l2 = args[:product_type_l2] if args.key?(:product_type_l2)
1356
+ @product_type_l3 = args[:product_type_l3] if args.key?(:product_type_l3)
1357
+ @product_type_l4 = args[:product_type_l4] if args.key?(:product_type_l4)
1358
+ @product_type_l5 = args[:product_type_l5] if args.key?(:product_type_l5)
1359
+ @title = args[:title] if args.key?(:title)
1360
+ @week = args[:week] if args.key?(:week)
1361
+ end
1362
+ end
1363
+
1364
+ # The message that the merchant will receive to notify about product status
1365
+ # change event
1366
+ class ProductStatusChangeMessage
1367
+ include Google::Apis::Core::Hashable
1368
+
1369
+ # The target account that owns the entity that changed. Format : `accounts/`
1370
+ # merchant_id``
1371
+ # Corresponds to the JSON property `account`
1372
+ # @return [String]
1373
+ attr_accessor :account
1374
+
1375
+ # The attribute in the resource that changed, in this case it will be always `
1376
+ # Status`.
1377
+ # Corresponds to the JSON property `attribute`
1378
+ # @return [String]
1379
+ attr_accessor :attribute
1380
+
1381
+ # A message to describe the change that happened to the product
1382
+ # Corresponds to the JSON property `changes`
1383
+ # @return [Array<Google::Apis::MerchantapiReportsV1beta::ProductChange>]
1384
+ attr_accessor :changes
1385
+
1386
+ # The account that manages the merchant's account. can be the same as merchant
1387
+ # id if it is standalone account. Format : `accounts/`service_provider_id``
1388
+ # Corresponds to the JSON property `managingAccount`
1389
+ # @return [String]
1390
+ attr_accessor :managing_account
1391
+
1392
+ # The product name. Format: ``product.name=accounts/`account`/products/`product``
1393
+ # `
1394
+ # Corresponds to the JSON property `resource`
1395
+ # @return [String]
1396
+ attr_accessor :resource
1397
+
1398
+ # The product id.
1399
+ # Corresponds to the JSON property `resourceId`
1400
+ # @return [String]
1401
+ attr_accessor :resource_id
1402
+
1403
+ # The resource that changed, in this case it will always be `Product`.
1404
+ # Corresponds to the JSON property `resourceType`
1405
+ # @return [String]
1406
+ attr_accessor :resource_type
1407
+
1408
+ def initialize(**args)
1409
+ update!(**args)
1410
+ end
1411
+
1412
+ # Update properties of this object
1413
+ def update!(**args)
1414
+ @account = args[:account] if args.key?(:account)
1415
+ @attribute = args[:attribute] if args.key?(:attribute)
1416
+ @changes = args[:changes] if args.key?(:changes)
1417
+ @managing_account = args[:managing_account] if args.key?(:managing_account)
1418
+ @resource = args[:resource] if args.key?(:resource)
1419
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
1420
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
1421
+ end
1422
+ end
1423
+
1424
+ # Fields available for query in `product_view` table. Products in the current
1425
+ # inventory. Products in this table are the same as in Products sub-API but not
1426
+ # all product attributes from Products sub-API are available for query in this
1427
+ # table. In contrast to Products sub-API, this table allows to filter the
1428
+ # returned list of products by product attributes. To retrieve a single product
1429
+ # by `id` or list all products, Products sub-API should be used. Values are only
1430
+ # set for fields requested explicitly in the request's search query.
1431
+ class ProductView
1432
+ include Google::Apis::Core::Hashable
1433
+
1434
+ # Aggregated status.
1435
+ # Corresponds to the JSON property `aggregatedReportingContextStatus`
1436
+ # @return [String]
1437
+ attr_accessor :aggregated_reporting_context_status
1438
+
1439
+ # [Availability](https://support.google.com/merchants/answer/6324448) of the
1440
+ # product.
1441
+ # Corresponds to the JSON property `availability`
1442
+ # @return [String]
1443
+ attr_accessor :availability
1444
+
1445
+ # Brand of the product.
1446
+ # Corresponds to the JSON property `brand`
1447
+ # @return [String]
1448
+ attr_accessor :brand
1449
+
1450
+ # Product category (1st level) in [Google's product taxonomy](https://support.
1451
+ # google.com/merchants/answer/6324436).
1452
+ # Corresponds to the JSON property `categoryL1`
1453
+ # @return [String]
1454
+ attr_accessor :category_l1
1455
+
1456
+ # Product category (2nd level) in [Google's product taxonomy](https://support.
1457
+ # google.com/merchants/answer/6324436).
1458
+ # Corresponds to the JSON property `categoryL2`
1459
+ # @return [String]
1460
+ attr_accessor :category_l2
1461
+
1462
+ # Product category (3rd level) in [Google's product taxonomy](https://support.
1463
+ # google.com/merchants/answer/6324436).
1464
+ # Corresponds to the JSON property `categoryL3`
1465
+ # @return [String]
1466
+ attr_accessor :category_l3
1467
+
1468
+ # Product category (4th level) in [Google's product taxonomy](https://support.
1469
+ # google.com/merchants/answer/6324436).
1470
+ # Corresponds to the JSON property `categoryL4`
1471
+ # @return [String]
1472
+ attr_accessor :category_l4
1473
+
1474
+ # Product category (5th level) in [Google's product taxonomy](https://support.
1475
+ # google.com/merchants/answer/6324436).
1476
+ # Corresponds to the JSON property `categoryL5`
1477
+ # @return [String]
1478
+ attr_accessor :category_l5
1479
+
1480
+ # Channel of the product. Can be `ONLINE` or `LOCAL`.
1481
+ # Corresponds to the JSON property `channel`
1482
+ # @return [String]
1483
+ attr_accessor :channel
1484
+
1485
+ # Estimated performance potential compared to highest performing products of the
1486
+ # merchant.
1487
+ # Corresponds to the JSON property `clickPotential`
1488
+ # @return [String]
1489
+ attr_accessor :click_potential
1490
+
1491
+ # Rank of the product based on its click potential. A product with `
1492
+ # click_potential_rank` 1 has the highest click potential among the merchant's
1493
+ # products that fulfill the search query conditions.
1494
+ # Corresponds to the JSON property `clickPotentialRank`
1495
+ # @return [Fixnum]
1496
+ attr_accessor :click_potential_rank
1497
+
1498
+ # [Condition](https://support.google.com/merchants/answer/6324469) of the
1499
+ # product.
1500
+ # Corresponds to the JSON property `condition`
1501
+ # @return [String]
1502
+ attr_accessor :condition
1503
+
1504
+ # The time the merchant created the product in timestamp seconds.
1505
+ # Corresponds to the JSON property `creationTime`
1506
+ # @return [String]
1507
+ attr_accessor :creation_time
1508
+
1509
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1510
+ # day and time zone are either specified elsewhere or are insignificant. The
1511
+ # date is relative to the Gregorian Calendar. This can represent one of the
1512
+ # following: * A full date, with non-zero year, month, and day values. * A month
1513
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
1514
+ # with a zero month and a zero day. * A year and month, with a zero day (for
1515
+ # example, a credit card expiration date). Related types: * google.type.
1516
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
1517
+ # Corresponds to the JSON property `expirationDate`
1518
+ # @return [Google::Apis::MerchantapiReportsV1beta::Date]
1519
+ attr_accessor :expiration_date
1520
+
1521
+ # Feed label of the product.
1522
+ # Corresponds to the JSON property `feedLabel`
1523
+ # @return [String]
1524
+ attr_accessor :feed_label
1525
+
1526
+ # List of Global Trade Item Numbers (GTINs) of the product.
1527
+ # Corresponds to the JSON property `gtin`
1528
+ # @return [Array<String>]
1529
+ attr_accessor :gtin
1530
+
1531
+ # REST ID of the product, in the form of `channel~languageCode~feedLabel~offerId`
1532
+ # . Merchant API methods that operate on products take this as their `name`
1533
+ # parameter. Required in the `SELECT` clause.
1534
+ # Corresponds to the JSON property `id`
1535
+ # @return [String]
1536
+ attr_accessor :id
1537
+
1538
+ # Item group id provided by the merchant for grouping variants together.
1539
+ # Corresponds to the JSON property `itemGroupId`
1540
+ # @return [String]
1541
+ attr_accessor :item_group_id
1542
+
1543
+ # List of item issues for the product. **This field cannot be used for sorting
1544
+ # the results.** **Only selected attributes of this field (for example, `
1545
+ # item_issues.severity.aggregated_severity`) can be used for filtering the
1546
+ # results.**
1547
+ # Corresponds to the JSON property `itemIssues`
1548
+ # @return [Array<Google::Apis::MerchantapiReportsV1beta::ItemIssue>]
1549
+ attr_accessor :item_issues
1550
+
1551
+ # Language code of the product in BCP 47 format.
1552
+ # Corresponds to the JSON property `languageCode`
1553
+ # @return [String]
1554
+ attr_accessor :language_code
1555
+
1556
+ # Merchant-provided id of the product.
1557
+ # Corresponds to the JSON property `offerId`
1558
+ # @return [String]
1559
+ attr_accessor :offer_id
1560
+
1561
+ # The price represented as a number and currency.
1562
+ # Corresponds to the JSON property `price`
1563
+ # @return [Google::Apis::MerchantapiReportsV1beta::Price]
1564
+ attr_accessor :price
1565
+
1566
+ # Product type (1st level) in merchant's own [product taxonomy](https://support.
1567
+ # google.com/merchants/answer/6324406).
1568
+ # Corresponds to the JSON property `productTypeL1`
1569
+ # @return [String]
1570
+ attr_accessor :product_type_l1
1571
+
1572
+ # Product type (2nd level) in merchant's own [product taxonomy](https://support.
1573
+ # google.com/merchants/answer/6324406).
1574
+ # Corresponds to the JSON property `productTypeL2`
1575
+ # @return [String]
1576
+ attr_accessor :product_type_l2
1577
+
1578
+ # Product type (3rd level) in merchant's own [product taxonomy](https://support.
1579
+ # google.com/merchants/answer/6324406).
1580
+ # Corresponds to the JSON property `productTypeL3`
1581
+ # @return [String]
1582
+ attr_accessor :product_type_l3
1583
+
1584
+ # Product type (4th level) in merchant's own [product taxonomy](https://support.
1585
+ # google.com/merchants/answer/6324406).
1586
+ # Corresponds to the JSON property `productTypeL4`
1587
+ # @return [String]
1588
+ attr_accessor :product_type_l4
1589
+
1590
+ # Product type (5th level) in merchant's own [product taxonomy](https://support.
1591
+ # google.com/merchants/answer/6324406).
1592
+ # Corresponds to the JSON property `productTypeL5`
1593
+ # @return [String]
1594
+ attr_accessor :product_type_l5
1595
+
1596
+ # Normalized [shipping label](https://support.google.com/merchants/answer/
1597
+ # 6324504) specified in the data source.
1598
+ # Corresponds to the JSON property `shippingLabel`
1599
+ # @return [String]
1600
+ attr_accessor :shipping_label
1601
+
1602
+ # Link to the processed image of the product, hosted on the Google
1603
+ # infrastructure.
1604
+ # Corresponds to the JSON property `thumbnailLink`
1605
+ # @return [String]
1606
+ attr_accessor :thumbnail_link
1607
+
1608
+ # Title of the product.
1609
+ # Corresponds to the JSON property `title`
1610
+ # @return [String]
1611
+ attr_accessor :title
1612
+
1613
+ def initialize(**args)
1614
+ update!(**args)
1615
+ end
1616
+
1617
+ # Update properties of this object
1618
+ def update!(**args)
1619
+ @aggregated_reporting_context_status = args[:aggregated_reporting_context_status] if args.key?(:aggregated_reporting_context_status)
1620
+ @availability = args[:availability] if args.key?(:availability)
1621
+ @brand = args[:brand] if args.key?(:brand)
1622
+ @category_l1 = args[:category_l1] if args.key?(:category_l1)
1623
+ @category_l2 = args[:category_l2] if args.key?(:category_l2)
1624
+ @category_l3 = args[:category_l3] if args.key?(:category_l3)
1625
+ @category_l4 = args[:category_l4] if args.key?(:category_l4)
1626
+ @category_l5 = args[:category_l5] if args.key?(:category_l5)
1627
+ @channel = args[:channel] if args.key?(:channel)
1628
+ @click_potential = args[:click_potential] if args.key?(:click_potential)
1629
+ @click_potential_rank = args[:click_potential_rank] if args.key?(:click_potential_rank)
1630
+ @condition = args[:condition] if args.key?(:condition)
1631
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
1632
+ @expiration_date = args[:expiration_date] if args.key?(:expiration_date)
1633
+ @feed_label = args[:feed_label] if args.key?(:feed_label)
1634
+ @gtin = args[:gtin] if args.key?(:gtin)
1635
+ @id = args[:id] if args.key?(:id)
1636
+ @item_group_id = args[:item_group_id] if args.key?(:item_group_id)
1637
+ @item_issues = args[:item_issues] if args.key?(:item_issues)
1638
+ @language_code = args[:language_code] if args.key?(:language_code)
1639
+ @offer_id = args[:offer_id] if args.key?(:offer_id)
1640
+ @price = args[:price] if args.key?(:price)
1641
+ @product_type_l1 = args[:product_type_l1] if args.key?(:product_type_l1)
1642
+ @product_type_l2 = args[:product_type_l2] if args.key?(:product_type_l2)
1643
+ @product_type_l3 = args[:product_type_l3] if args.key?(:product_type_l3)
1644
+ @product_type_l4 = args[:product_type_l4] if args.key?(:product_type_l4)
1645
+ @product_type_l5 = args[:product_type_l5] if args.key?(:product_type_l5)
1646
+ @shipping_label = args[:shipping_label] if args.key?(:shipping_label)
1647
+ @thumbnail_link = args[:thumbnail_link] if args.key?(:thumbnail_link)
1648
+ @title = args[:title] if args.key?(:title)
1649
+ end
1650
+ end
1651
+
1652
+ # Result row returned from the search query. Only the message corresponding to
1653
+ # the queried table is populated in the response. Within the populated message,
1654
+ # only the fields requested explicitly in the query are populated.
1655
+ class ReportRow
1656
+ include Google::Apis::Core::Hashable
1657
+
1658
+ # Fields available for query in `best_sellers_brand_view` table. [Best sellers](
1659
+ # https://support.google.com/merchants/answer/9488679) report with top brands.
1660
+ # Values are only set for fields requested explicitly in the request's search
1661
+ # query.
1662
+ # Corresponds to the JSON property `bestSellersBrandView`
1663
+ # @return [Google::Apis::MerchantapiReportsV1beta::BestSellersBrandView]
1664
+ attr_accessor :best_sellers_brand_view
1665
+
1666
+ # Fields available for query in `best_sellers_product_cluster_view` table. [Best
1667
+ # sellers](https://support.google.com/merchants/answer/9488679) report with top
1668
+ # product clusters. A product cluster is a grouping for different offers and
1669
+ # variants that represent the same product, for example, Google Pixel 7. Values
1670
+ # are only set for fields requested explicitly in the request's search query.
1671
+ # Corresponds to the JSON property `bestSellersProductClusterView`
1672
+ # @return [Google::Apis::MerchantapiReportsV1beta::BestSellersProductClusterView]
1673
+ attr_accessor :best_sellers_product_cluster_view
1674
+
1675
+ # Fields available for query in `competitive_visibility_benchmark_view` table. [
1676
+ # Competitive visibility](https://support.google.com/merchants/answer/11366442)
1677
+ # report with the category benchmark. Values are only set for fields requested
1678
+ # explicitly in the request's search query.
1679
+ # Corresponds to the JSON property `competitiveVisibilityBenchmarkView`
1680
+ # @return [Google::Apis::MerchantapiReportsV1beta::CompetitiveVisibilityBenchmarkView]
1681
+ attr_accessor :competitive_visibility_benchmark_view
1682
+
1683
+ # Fields available for query in `competitive_visibility_competitor_view` table. [
1684
+ # Competitive visibility](https://support.google.com/merchants/answer/11366442)
1685
+ # report with businesses with similar visibility. Values are only set for fields
1686
+ # requested explicitly in the request's search query.
1687
+ # Corresponds to the JSON property `competitiveVisibilityCompetitorView`
1688
+ # @return [Google::Apis::MerchantapiReportsV1beta::CompetitiveVisibilityCompetitorView]
1689
+ attr_accessor :competitive_visibility_competitor_view
1690
+
1691
+ # Fields available for query in `competitive_visibility_top_merchant_view` table.
1692
+ # [Competitive visibility](https://support.google.com/merchants/answer/11366442)
1693
+ # report with business with highest visibility. Values are only set for fields
1694
+ # requested explicitly in the request's search query.
1695
+ # Corresponds to the JSON property `competitiveVisibilityTopMerchantView`
1696
+ # @return [Google::Apis::MerchantapiReportsV1beta::CompetitiveVisibilityTopMerchantView]
1697
+ attr_accessor :competitive_visibility_top_merchant_view
1698
+
1699
+ # Fields available for query in `non_product_performance_view` table.
1700
+ # Performance data on images and online store links leading to your non-product
1701
+ # pages. This includes performance metrics (for example, `clicks`) and
1702
+ # dimensions according to which performance metrics are segmented (for example, `
1703
+ # date`). Segment fields cannot be selected in queries without also selecting at
1704
+ # least one metric field. Values are only set for fields requested explicitly in
1705
+ # the request's search query.
1706
+ # Corresponds to the JSON property `nonProductPerformanceView`
1707
+ # @return [Google::Apis::MerchantapiReportsV1beta::NonProductPerformanceView]
1708
+ attr_accessor :non_product_performance_view
1709
+
1710
+ # Fields available for query in `price_competitiveness_product_view` table. [
1711
+ # Price competitiveness](https://support.google.com/merchants/answer/9626903)
1712
+ # report. Values are only set for fields requested explicitly in the request's
1713
+ # search query.
1714
+ # Corresponds to the JSON property `priceCompetitivenessProductView`
1715
+ # @return [Google::Apis::MerchantapiReportsV1beta::PriceCompetitivenessProductView]
1716
+ attr_accessor :price_competitiveness_product_view
1717
+
1718
+ # Fields available for query in `price_insights_product_view` table. [Price
1719
+ # insights](https://support.google.com/merchants/answer/11916926) report. Values
1720
+ # are only set for fields requested explicitly in the request's search query.
1721
+ # Corresponds to the JSON property `priceInsightsProductView`
1722
+ # @return [Google::Apis::MerchantapiReportsV1beta::PriceInsightsProductView]
1723
+ attr_accessor :price_insights_product_view
1724
+
1725
+ # Fields available for query in `product_performance_view` table. Product
1726
+ # performance data for your account, including performance metrics (for example,
1727
+ # `clicks`) and dimensions according to which performance metrics are segmented (
1728
+ # for example, `offer_id`). Values of product dimensions, such as `offer_id`,
1729
+ # reflect the state of a product at the time of the impression. Segment fields
1730
+ # cannot be selected in queries without also selecting at least one metric field.
1731
+ # Values are only set for fields requested explicitly in the request's search
1732
+ # query.
1733
+ # Corresponds to the JSON property `productPerformanceView`
1734
+ # @return [Google::Apis::MerchantapiReportsV1beta::ProductPerformanceView]
1735
+ attr_accessor :product_performance_view
1736
+
1737
+ # Fields available for query in `product_view` table. Products in the current
1738
+ # inventory. Products in this table are the same as in Products sub-API but not
1739
+ # all product attributes from Products sub-API are available for query in this
1740
+ # table. In contrast to Products sub-API, this table allows to filter the
1741
+ # returned list of products by product attributes. To retrieve a single product
1742
+ # by `id` or list all products, Products sub-API should be used. Values are only
1743
+ # set for fields requested explicitly in the request's search query.
1744
+ # Corresponds to the JSON property `productView`
1745
+ # @return [Google::Apis::MerchantapiReportsV1beta::ProductView]
1746
+ attr_accessor :product_view
1747
+
1748
+ def initialize(**args)
1749
+ update!(**args)
1750
+ end
1751
+
1752
+ # Update properties of this object
1753
+ def update!(**args)
1754
+ @best_sellers_brand_view = args[:best_sellers_brand_view] if args.key?(:best_sellers_brand_view)
1755
+ @best_sellers_product_cluster_view = args[:best_sellers_product_cluster_view] if args.key?(:best_sellers_product_cluster_view)
1756
+ @competitive_visibility_benchmark_view = args[:competitive_visibility_benchmark_view] if args.key?(:competitive_visibility_benchmark_view)
1757
+ @competitive_visibility_competitor_view = args[:competitive_visibility_competitor_view] if args.key?(:competitive_visibility_competitor_view)
1758
+ @competitive_visibility_top_merchant_view = args[:competitive_visibility_top_merchant_view] if args.key?(:competitive_visibility_top_merchant_view)
1759
+ @non_product_performance_view = args[:non_product_performance_view] if args.key?(:non_product_performance_view)
1760
+ @price_competitiveness_product_view = args[:price_competitiveness_product_view] if args.key?(:price_competitiveness_product_view)
1761
+ @price_insights_product_view = args[:price_insights_product_view] if args.key?(:price_insights_product_view)
1762
+ @product_performance_view = args[:product_performance_view] if args.key?(:product_performance_view)
1763
+ @product_view = args[:product_view] if args.key?(:product_view)
1764
+ end
1765
+ end
1766
+
1767
+ # Request message for the `ReportService.Search` method.
1768
+ class SearchRequest
1769
+ include Google::Apis::Core::Hashable
1770
+
1771
+ # Optional. Number of `ReportRows` to retrieve in a single page. Defaults to
1772
+ # 1000. Values above 5000 are coerced to 5000.
1773
+ # Corresponds to the JSON property `pageSize`
1774
+ # @return [Fixnum]
1775
+ attr_accessor :page_size
1776
+
1777
+ # Optional. Token of the page to retrieve. If not specified, the first page of
1778
+ # results is returned. In order to request the next page of results, the value
1779
+ # obtained from `next_page_token` in the previous response should be used.
1780
+ # Corresponds to the JSON property `pageToken`
1781
+ # @return [String]
1782
+ attr_accessor :page_token
1783
+
1784
+ # Required. Query that defines a report to be retrieved. For details on how to
1785
+ # construct your query, see the Query Language guide. For the full list of
1786
+ # available tables and fields, see the Available fields.
1787
+ # Corresponds to the JSON property `query`
1788
+ # @return [String]
1789
+ attr_accessor :query
1790
+
1791
+ def initialize(**args)
1792
+ update!(**args)
1793
+ end
1794
+
1795
+ # Update properties of this object
1796
+ def update!(**args)
1797
+ @page_size = args[:page_size] if args.key?(:page_size)
1798
+ @page_token = args[:page_token] if args.key?(:page_token)
1799
+ @query = args[:query] if args.key?(:query)
1800
+ end
1801
+ end
1802
+
1803
+ # Response message for the `ReportService.Search` method.
1804
+ class SearchResponse
1805
+ include Google::Apis::Core::Hashable
1806
+
1807
+ # Token which can be sent as `page_token` to retrieve the next page. If omitted,
1808
+ # there are no subsequent pages.
1809
+ # Corresponds to the JSON property `nextPageToken`
1810
+ # @return [String]
1811
+ attr_accessor :next_page_token
1812
+
1813
+ # Rows that matched the search query.
1814
+ # Corresponds to the JSON property `results`
1815
+ # @return [Array<Google::Apis::MerchantapiReportsV1beta::ReportRow>]
1816
+ attr_accessor :results
1817
+
1818
+ def initialize(**args)
1819
+ update!(**args)
1820
+ end
1821
+
1822
+ # Update properties of this object
1823
+ def update!(**args)
1824
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1825
+ @results = args[:results] if args.key?(:results)
1826
+ end
1827
+ end
1828
+ end
1829
+ end
1830
+ end