google-apis-merchantapi_reports_v1beta 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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