@google-shopping/reports 0.9.0 → 0.11.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,1412 @@
1
+ // Copyright 2025 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
+ syntax = "proto3";
16
+
17
+ package google.shopping.merchant.reports.v1alpha;
18
+
19
+ import "google/api/annotations.proto";
20
+ import "google/api/client.proto";
21
+ import "google/api/field_behavior.proto";
22
+ import "google/protobuf/timestamp.proto";
23
+ import "google/shopping/type/types.proto";
24
+ import "google/type/date.proto";
25
+
26
+ option csharp_namespace = "Google.Shopping.Merchant.Reports.V1Alpha";
27
+ option go_package = "cloud.google.com/go/shopping/merchant/reports/apiv1alpha/reportspb;reportspb";
28
+ option java_multiple_files = true;
29
+ option java_outer_classname = "ReportsProto";
30
+ option java_package = "com.google.shopping.merchant.reports.v1alpha";
31
+ option php_namespace = "Google\\Shopping\\Merchant\\Reports\\V1alpha";
32
+ option ruby_package = "Google::Shopping::Merchant::Reports::V1alpha";
33
+
34
+ // Service for retrieving reports and insights about your products, their
35
+ // performance, and their competitive environment on Google.
36
+ service ReportService {
37
+ option (google.api.default_host) = "merchantapi.googleapis.com";
38
+ option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content";
39
+
40
+ // Retrieves a report defined by a search query. The response might contain
41
+ // fewer rows than specified by `page_size`. Rely on `next_page_token` to
42
+ // determine if there are more rows to be requested.
43
+ rpc Search(SearchRequest) returns (SearchResponse) {
44
+ option (google.api.http) = {
45
+ post: "/reports/v1alpha/{parent=accounts/*}/reports:search"
46
+ body: "*"
47
+ };
48
+ option (google.api.method_signature) = "parent";
49
+ }
50
+ }
51
+
52
+ // Request message for the `ReportService.Search` method.
53
+ message SearchRequest {
54
+ // Required. Id of the account making the call. Must be a standalone account
55
+ // or an MCA subaccount. Format: accounts/{account}
56
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
57
+
58
+ // Required. Query that defines a report to be retrieved.
59
+ //
60
+ // For details on how to construct your query, see the Query Language
61
+ // guide. For the full list of available tables and fields, see the Available
62
+ // fields.
63
+ string query = 2 [(google.api.field_behavior) = REQUIRED];
64
+
65
+ // Optional. Number of `ReportRows` to retrieve in a single page. Defaults to
66
+ // 1000. Values above 5000 are coerced to 5000.
67
+ int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
68
+
69
+ // Optional. Token of the page to retrieve. If not specified, the first page
70
+ // of results is returned. In order to request the next page of results, the
71
+ // value obtained from `next_page_token` in the previous response should be
72
+ // used.
73
+ string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
74
+ }
75
+
76
+ // Response message for the `ReportService.Search` method.
77
+ message SearchResponse {
78
+ // Rows that matched the search query.
79
+ repeated ReportRow results = 1;
80
+
81
+ // Token which can be sent as `page_token` to retrieve the next page. If
82
+ // omitted, there are no subsequent pages.
83
+ string next_page_token = 2;
84
+ }
85
+
86
+ // Result row returned from the search query.
87
+ //
88
+ // Only the message corresponding to the queried table is populated in the
89
+ // response. Within the populated message, only the fields requested explicitly
90
+ // in the query are populated.
91
+ message ReportRow {
92
+ // Fields available for query in `product_performance_view` table.
93
+ ProductPerformanceView product_performance_view = 1;
94
+
95
+ // Fields available for query in `non_product_performance_view` table.
96
+ NonProductPerformanceView non_product_performance_view = 7;
97
+
98
+ // Fields available for query in `product_view` table.
99
+ ProductView product_view = 2;
100
+
101
+ // Fields available for query in `price_competitiveness_product_view` table.
102
+ PriceCompetitivenessProductView price_competitiveness_product_view = 3;
103
+
104
+ // Fields available for query in `price_insights_product_view` table.
105
+ PriceInsightsProductView price_insights_product_view = 4;
106
+
107
+ // Fields available for query in `best_sellers_product_cluster_view` table.
108
+ BestSellersProductClusterView best_sellers_product_cluster_view = 5;
109
+
110
+ // Fields available for query in `best_sellers_brand_view` table.
111
+ BestSellersBrandView best_sellers_brand_view = 6;
112
+
113
+ // Fields available for query in `competitive_visibility_competitor_view`
114
+ // table.
115
+ CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view =
116
+ 8;
117
+
118
+ // Fields available for query in `competitive_visibility_top_merchant_view`
119
+ // table.
120
+ CompetitiveVisibilityTopMerchantView
121
+ competitive_visibility_top_merchant_view = 9;
122
+
123
+ // Fields available for query in `competitive_visibility_benchmark_view`
124
+ // table.
125
+ CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
126
+
127
+ // Fields available for query in `youtube_creator_performance_view` table.
128
+ YoutubeCreatorPerformanceView youtube_creator_performance_view = 13;
129
+
130
+ // Fields available for query in `youtube_content_performance_view` table.
131
+ YoutubeContentPerformanceView youtube_content_performance_view = 14;
132
+
133
+ // Fields available for query in `youtube_product_performance_view` table.
134
+ YoutubeProductPerformanceView youtube_product_performance_view = 15;
135
+ }
136
+
137
+ // Fields available for query in `product_performance_view` table.
138
+ //
139
+ // Product performance data for your account, including performance metrics (for
140
+ // example, `clicks`) and dimensions according to which performance metrics are
141
+ // segmented (for example, `offer_id`). Values of product dimensions, such as
142
+ // `offer_id`, reflect the state of a product at the time of the impression.
143
+ //
144
+ // Segment fields cannot be selected in queries without also selecting at least
145
+ // one metric field.
146
+ //
147
+ // Values are only set for fields requested explicitly in the request's search
148
+ // query.
149
+ message ProductPerformanceView {
150
+ // Marketing method to which metrics apply. Segment.
151
+ optional MarketingMethod.MarketingMethodEnum marketing_method = 1;
152
+
153
+ // Date in the merchant timezone to which metrics apply. Segment.
154
+ //
155
+ // Condition on `date` is required in the `WHERE` clause.
156
+ google.type.Date date = 2;
157
+
158
+ // First day of the week (Monday) of the metrics date in the merchant
159
+ // timezone. Segment.
160
+ google.type.Date week = 3;
161
+
162
+ // Code of the country where the customer is located at the time of the event.
163
+ // Represented in the ISO 3166 format. Segment.
164
+ //
165
+ // If the customer country cannot be determined, a special 'ZZ' code is
166
+ // returned.
167
+ optional string customer_country_code = 4;
168
+
169
+ // Merchant-provided id of the product. Segment.
170
+ optional string offer_id = 5;
171
+
172
+ // Title of the product. Segment.
173
+ optional string title = 6;
174
+
175
+ // Brand of the product. Segment.
176
+ optional string brand = 7;
177
+
178
+ // [Product category (1st
179
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
180
+ // in Google's product taxonomy. Segment.
181
+ optional string category_l1 = 8;
182
+
183
+ // [Product category (2nd
184
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
185
+ // in Google's product taxonomy. Segment.
186
+ optional string category_l2 = 9;
187
+
188
+ // [Product category (3rd
189
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
190
+ // in Google's product taxonomy. Segment.
191
+ optional string category_l3 = 10;
192
+
193
+ // [Product category (4th
194
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
195
+ // in Google's product taxonomy. Segment.
196
+ optional string category_l4 = 11;
197
+
198
+ // [Product category (5th
199
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
200
+ // in Google's product taxonomy. Segment.
201
+ optional string category_l5 = 12;
202
+
203
+ // [Product type (1st
204
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
205
+ // in merchant's own product taxonomy. Segment.
206
+ optional string product_type_l1 = 13;
207
+
208
+ // [Product type (2nd
209
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
210
+ // in merchant's own product taxonomy. Segment.
211
+ optional string product_type_l2 = 14;
212
+
213
+ // [Product type (3rd
214
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
215
+ // in merchant's own product taxonomy. Segment.
216
+ optional string product_type_l3 = 15;
217
+
218
+ // [Product type (4th
219
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
220
+ // in merchant's own product taxonomy. Segment.
221
+ optional string product_type_l4 = 16;
222
+
223
+ // [Product type (5th
224
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
225
+ // in merchant's own product taxonomy. Segment.
226
+ optional string product_type_l5 = 17;
227
+
228
+ // Custom label 0 for custom grouping of products. Segment.
229
+ optional string custom_label0 = 18;
230
+
231
+ // Custom label 1 for custom grouping of products. Segment.
232
+ optional string custom_label1 = 19;
233
+
234
+ // Custom label 2 for custom grouping of products. Segment.
235
+ optional string custom_label2 = 20;
236
+
237
+ // Custom label 3 for custom grouping of products. Segment.
238
+ optional string custom_label3 = 21;
239
+
240
+ // Custom label 4 for custom grouping of products. Segment.
241
+ optional string custom_label4 = 22;
242
+
243
+ // Number of clicks. Metric.
244
+ optional int64 clicks = 23;
245
+
246
+ // Number of times merchant's products are shown. Metric.
247
+ optional int64 impressions = 24;
248
+
249
+ // Click-through rate - the number of clicks merchant's products receive
250
+ // (clicks) divided by the number of times the products are shown
251
+ // (impressions). Metric.
252
+ optional double click_through_rate = 25;
253
+
254
+ // Number of conversions attributed to the product, reported on the conversion
255
+ // date. Depending on the attribution model, a conversion might be distributed
256
+ // across multiple clicks, where each click gets its own credit assigned. This
257
+ // metric is a sum of all such credits. Metric.
258
+ //
259
+ // Available only for the `FREE` traffic source.
260
+ optional double conversions = 26;
261
+
262
+ // Value of conversions attributed to the product, reported on the conversion
263
+ // date. Metric.
264
+ //
265
+ // Available only for the `FREE` traffic source.
266
+ google.shopping.type.Price conversion_value = 27;
267
+
268
+ // Number of conversions divided by the number of clicks, reported on the
269
+ // impression date. Metric.
270
+ //
271
+ // Available only for the `FREE` traffic source.
272
+ optional double conversion_rate = 28;
273
+ }
274
+
275
+ // Fields available for query in `product_view` table.
276
+ //
277
+ // Products in the current inventory. Products in this table are the same as in
278
+ // Products sub-API but not all product attributes from Products sub-API are
279
+ // available for query in this table. In contrast to Products sub-API, this
280
+ // table allows to filter the returned list of products by product attributes.
281
+ // To retrieve a single product by `id` or list all products, Products sub-API
282
+ // should be used.
283
+ //
284
+ // Values are only set for fields requested explicitly in the request's search
285
+ // query.
286
+ //
287
+ message ProductView {
288
+ // Item issue associated with the product.
289
+ message ItemIssue {
290
+ // Issue type.
291
+ message ItemIssueType {
292
+ // Error code of the issue, equivalent to the `code` of [Product
293
+ // issues](https://developers.google.com/shopping-content/guides/product-issues).
294
+ optional string code = 1;
295
+
296
+ // Canonical attribute name for attribute-specific issues.
297
+ optional string canonical_attribute = 2;
298
+ }
299
+
300
+ // How the issue affects the serving of the product.
301
+ message ItemIssueSeverity {
302
+ // Issue severity per reporting context.
303
+ message IssueSeverityPerReportingContext {
304
+ // Reporting context the issue applies to.
305
+ optional google.shopping.type.ReportingContext.ReportingContextEnum
306
+ reporting_context = 1;
307
+
308
+ // List of disapproved countries in the reporting context, represented
309
+ // in ISO 3166 format.
310
+ repeated string disapproved_countries = 2;
311
+
312
+ // List of demoted countries in the reporting context, represented in
313
+ // ISO 3166 format.
314
+ repeated string demoted_countries = 3;
315
+ }
316
+
317
+ // Issue severity aggregated for all reporting contexts.
318
+ enum AggregatedIssueSeverity {
319
+ // Not specified.
320
+ AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED = 0;
321
+
322
+ // Issue disapproves the product in at least one reporting context.
323
+ DISAPPROVED = 1;
324
+
325
+ // Issue demotes the product in all reporting contexts it affects.
326
+ DEMOTED = 2;
327
+
328
+ // Issue resolution is `PENDING_PROCESSING`.
329
+ PENDING = 3;
330
+ }
331
+
332
+ // Issue severity per reporting context.
333
+ repeated IssueSeverityPerReportingContext severity_per_reporting_context =
334
+ 1;
335
+
336
+ // Aggregated severity of the issue for all reporting contexts it affects.
337
+ //
338
+ // **This field can be used for filtering the results.**
339
+ optional AggregatedIssueSeverity aggregated_severity = 2;
340
+ }
341
+
342
+ // How to resolve the issue.
343
+ enum ItemIssueResolution {
344
+ // Not specified.
345
+ ITEM_ISSUE_RESOLUTION_UNSPECIFIED = 0;
346
+
347
+ // The merchant has to fix the issue.
348
+ MERCHANT_ACTION = 1;
349
+
350
+ // The issue will be resolved automatically (for example, image crawl) or
351
+ // through a Google review. No merchant action is required now. Resolution
352
+ // might lead to another issue (for example, if crawl fails).
353
+ PENDING_PROCESSING = 2;
354
+ }
355
+
356
+ // Item issue type.
357
+ ItemIssueType type = 1;
358
+
359
+ // Item issue severity.
360
+ ItemIssueSeverity severity = 2;
361
+
362
+ // Item issue resolution.
363
+ optional ItemIssueResolution resolution = 3;
364
+ }
365
+
366
+ // Status of the product aggregated for all reporting contexts.
367
+ //
368
+ // Here's an example of how the aggregated status is computed:
369
+ //
370
+ // Free listings | Shopping ads | Status
371
+ // --------------|--------------|------------------------------
372
+ // Approved | Approved | ELIGIBLE
373
+ // Approved | Pending | ELIGIBLE
374
+ // Approved | Disapproved | ELIGIBLE_LIMITED
375
+ // Pending | Pending | PENDING
376
+ // Disapproved | Disapproved | NOT_ELIGIBLE_OR_DISAPPROVED
377
+ //
378
+ //
379
+ enum AggregatedReportingContextStatus {
380
+ // Not specified.
381
+ AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0;
382
+
383
+ // Product is not eligible or is disapproved for all reporting contexts.
384
+ NOT_ELIGIBLE_OR_DISAPPROVED = 1;
385
+
386
+ // Product's status is pending in all reporting contexts.
387
+ PENDING = 2;
388
+
389
+ // Product is eligible for some (but not all) reporting contexts.
390
+ ELIGIBLE_LIMITED = 3;
391
+
392
+ // Product is eligible for all reporting contexts.
393
+ ELIGIBLE = 4;
394
+ }
395
+
396
+ // A product's [click
397
+ // potential](https://support.google.com/merchants/answer/188488) estimates
398
+ // its performance potential compared to highest performing products of the
399
+ // merchant. Click potential of a product helps merchants to prioritize which
400
+ // products to fix and helps them understand how products are performing
401
+ // against their potential.
402
+ enum ClickPotential {
403
+ // Unknown predicted clicks impact.
404
+ CLICK_POTENTIAL_UNSPECIFIED = 0;
405
+
406
+ // Potential to receive a low number of clicks compared to the highest
407
+ // performing products of the merchant.
408
+ LOW = 1;
409
+
410
+ // Potential to receive a moderate number of clicks compared to the highest
411
+ // performing products of the merchant.
412
+ MEDIUM = 2;
413
+
414
+ // Potential to receive a similar number of clicks as the highest performing
415
+ // products of the merchant.
416
+ HIGH = 3;
417
+ }
418
+
419
+ // REST ID of the product, in the form of
420
+ // `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
421
+ // on products take this as their `name` parameter.
422
+ //
423
+ // Required in the `SELECT` clause.
424
+ optional string id = 1;
425
+
426
+ // Channel of the product. Can be `ONLINE` or `LOCAL`.
427
+ optional google.shopping.type.Channel.ChannelEnum channel = 28;
428
+
429
+ // Language code of the product in BCP 47 format.
430
+ optional string language_code = 2;
431
+
432
+ // Feed label of the product.
433
+ optional string feed_label = 3;
434
+
435
+ // Merchant-provided id of the product.
436
+ optional string offer_id = 4;
437
+
438
+ // Title of the product.
439
+ optional string title = 5;
440
+
441
+ // Brand of the product.
442
+ optional string brand = 6;
443
+
444
+ // Product category (1st level) in [Google's product
445
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
446
+ optional string category_l1 = 7;
447
+
448
+ // Product category (2nd level) in [Google's product
449
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
450
+ optional string category_l2 = 8;
451
+
452
+ // Product category (3rd level) in [Google's product
453
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
454
+ optional string category_l3 = 9;
455
+
456
+ // Product category (4th level) in [Google's product
457
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
458
+ optional string category_l4 = 10;
459
+
460
+ // Product category (5th level) in [Google's product
461
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
462
+ optional string category_l5 = 11;
463
+
464
+ // Product type (1st level) in merchant's own [product
465
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
466
+ optional string product_type_l1 = 12;
467
+
468
+ // Product type (2nd level) in merchant's own [product
469
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
470
+ optional string product_type_l2 = 13;
471
+
472
+ // Product type (3rd level) in merchant's own [product
473
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
474
+ optional string product_type_l3 = 14;
475
+
476
+ // Product type (4th level) in merchant's own [product
477
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
478
+ optional string product_type_l4 = 15;
479
+
480
+ // Product type (5th level) in merchant's own [product
481
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
482
+ optional string product_type_l5 = 16;
483
+
484
+ // Product price. Absent if the information about the price of the product is
485
+ // not available.
486
+ google.shopping.type.Price price = 17;
487
+
488
+ // [Condition](https://support.google.com/merchants/answer/6324469) of the
489
+ // product.
490
+ optional string condition = 18;
491
+
492
+ // [Availability](https://support.google.com/merchants/answer/6324448) of the
493
+ // product.
494
+ optional string availability = 19;
495
+
496
+ // Normalized [shipping
497
+ // label](https://support.google.com/merchants/answer/6324504) specified in
498
+ // the data source.
499
+ optional string shipping_label = 20;
500
+
501
+ // List of Global Trade Item Numbers (GTINs) of the product.
502
+ repeated string gtin = 21;
503
+
504
+ // Item group id provided by the merchant for grouping variants together.
505
+ optional string item_group_id = 22;
506
+
507
+ // Link to the processed image of the product, hosted on the Google
508
+ // infrastructure.
509
+ optional string thumbnail_link = 23;
510
+
511
+ // The time the merchant created the product in timestamp seconds.
512
+ google.protobuf.Timestamp creation_time = 24;
513
+
514
+ // Expiration date for the product, specified on insertion.
515
+ google.type.Date expiration_date = 25;
516
+
517
+ // Aggregated status.
518
+ optional AggregatedReportingContextStatus
519
+ aggregated_reporting_context_status = 26;
520
+
521
+ // List of item issues for the product.
522
+ //
523
+ // **This field cannot be used for sorting the results.**
524
+ //
525
+ // **Only selected attributes of this field (for example,
526
+ // `item_issues.severity.aggregated_severity`) can be used for filtering the
527
+ // results.**
528
+ repeated ItemIssue item_issues = 27;
529
+
530
+ // Estimated performance potential compared to highest performing products of
531
+ // the merchant.
532
+ ClickPotential click_potential = 29;
533
+
534
+ // Rank of the product based on its click potential. A product with
535
+ // `click_potential_rank` 1 has the highest click potential among the
536
+ // merchant's products that fulfill the search query conditions.
537
+ optional int64 click_potential_rank = 30;
538
+ }
539
+
540
+ // Fields available for query in `price_competitiveness_product_view` table.
541
+ //
542
+ // [Price competitiveness](https://support.google.com/merchants/answer/9626903)
543
+ // report.
544
+ //
545
+ // Values are only set for fields requested explicitly in the request's search
546
+ // query.
547
+ message PriceCompetitivenessProductView {
548
+ // Country of the price benchmark. Represented in the ISO 3166 format.
549
+ //
550
+ // Required in the `SELECT` clause.
551
+ optional string report_country_code = 1;
552
+
553
+ // REST ID of the product, in the form of
554
+ // `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
555
+ // `product_view` table.
556
+ //
557
+ // Required in the `SELECT` clause.
558
+ optional string id = 2;
559
+
560
+ // Merchant-provided id of the product.
561
+ optional string offer_id = 3;
562
+
563
+ // Title of the product.
564
+ optional string title = 4;
565
+
566
+ // Brand of the product.
567
+ optional string brand = 5;
568
+
569
+ // Product category (1st level) in [Google's product
570
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
571
+ optional string category_l1 = 6;
572
+
573
+ // Product category (2nd level) in [Google's product
574
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
575
+ optional string category_l2 = 7;
576
+
577
+ // Product category (3rd level) in [Google's product
578
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
579
+ optional string category_l3 = 8;
580
+
581
+ // Product category (4th level) in [Google's product
582
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
583
+ optional string category_l4 = 9;
584
+
585
+ // Product category (5th level) in [Google's product
586
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
587
+ optional string category_l5 = 10;
588
+
589
+ // Product type (1st level) in merchant's own [product
590
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
591
+ optional string product_type_l1 = 11;
592
+
593
+ // Product type (2nd level) in merchant's own [product
594
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
595
+ optional string product_type_l2 = 12;
596
+
597
+ // Product type (3rd level) in merchant's own [product
598
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
599
+ optional string product_type_l3 = 13;
600
+
601
+ // Product type (4th level) in merchant's own [product
602
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
603
+ optional string product_type_l4 = 14;
604
+
605
+ // Product type (5th level) in merchant's own [product
606
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
607
+ optional string product_type_l5 = 15;
608
+
609
+ // Current price of the product.
610
+ google.shopping.type.Price price = 16;
611
+
612
+ // Latest available price benchmark for the product's catalog in the benchmark
613
+ // country.
614
+ google.shopping.type.Price benchmark_price = 17;
615
+ }
616
+
617
+ // Fields available for query in `price_insights_product_view` table.
618
+ //
619
+ // [Price insights](https://support.google.com/merchants/answer/11916926)
620
+ // report.
621
+ //
622
+ // Values are only set for fields requested explicitly in the request's search
623
+ // query.
624
+ message PriceInsightsProductView {
625
+ // Predicted effectiveness bucket.
626
+ //
627
+ // Effectiveness indicates which products would benefit most from price
628
+ // changes. This rating takes into consideration the performance boost
629
+ // predicted by adjusting the sale price and the difference between your
630
+ // current price and the suggested price. Price suggestions with `HIGH`
631
+ // effectiveness are predicted to drive the largest increase in performance.
632
+ enum Effectiveness {
633
+ // Effectiveness is unknown.
634
+ EFFECTIVENESS_UNSPECIFIED = 0;
635
+
636
+ // Effectiveness is low.
637
+ LOW = 1;
638
+
639
+ // Effectiveness is medium.
640
+ MEDIUM = 2;
641
+
642
+ // Effectiveness is high.
643
+ HIGH = 3;
644
+ }
645
+
646
+ // REST ID of the product, in the form of
647
+ // `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
648
+ // `product_view` table.
649
+ //
650
+ // Required in the `SELECT` clause.
651
+ optional string id = 1;
652
+
653
+ // Merchant-provided id of the product.
654
+ optional string offer_id = 2;
655
+
656
+ // Title of the product.
657
+ optional string title = 3;
658
+
659
+ // Brand of the product.
660
+ optional string brand = 4;
661
+
662
+ // Product category (1st level) in [Google's product
663
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
664
+ optional string category_l1 = 5;
665
+
666
+ // Product category (2nd level) in [Google's product
667
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
668
+ optional string category_l2 = 6;
669
+
670
+ // Product category (3rd level) in [Google's product
671
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
672
+ optional string category_l3 = 7;
673
+
674
+ // Product category (4th level) in [Google's product
675
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
676
+ optional string category_l4 = 8;
677
+
678
+ // Product category (5th level) in [Google's product
679
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
680
+ optional string category_l5 = 9;
681
+
682
+ // Product type (1st level) in merchant's own [product
683
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
684
+ optional string product_type_l1 = 10;
685
+
686
+ // Product type (2nd level) in merchant's own [product
687
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
688
+ optional string product_type_l2 = 11;
689
+
690
+ // Product type (3rd level) in merchant's own [product
691
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
692
+ optional string product_type_l3 = 12;
693
+
694
+ // Product type (4th level) in merchant's own [product
695
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
696
+ optional string product_type_l4 = 13;
697
+
698
+ // Product type (5th level) in merchant's own [product
699
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
700
+ optional string product_type_l5 = 14;
701
+
702
+ // Current price of the product.
703
+ google.shopping.type.Price price = 15;
704
+
705
+ // Latest suggested price for the product.
706
+ google.shopping.type.Price suggested_price = 16;
707
+
708
+ // Predicted change in impressions as a fraction after introducing the
709
+ // suggested price compared to current active price. For example, 0.05 is a 5%
710
+ // predicted increase in impressions.
711
+ optional double predicted_impressions_change_fraction = 17;
712
+
713
+ // Predicted change in clicks as a fraction after introducing the
714
+ // suggested price compared to current active price. For example, 0.05 is a 5%
715
+ // predicted increase in clicks.
716
+ optional double predicted_clicks_change_fraction = 18;
717
+
718
+ // Predicted change in conversions as a fraction after introducing the
719
+ // suggested price compared to current active price. For example, 0.05 is a 5%
720
+ // predicted increase in conversions).
721
+ optional double predicted_conversions_change_fraction = 19;
722
+
723
+ // The predicted effectiveness of applying the price suggestion, bucketed.
724
+ Effectiveness effectiveness = 22;
725
+ }
726
+
727
+ // Fields available for query in `best_sellers_product_cluster_view` table.
728
+ //
729
+ // [Best sellers](https://support.google.com/merchants/answer/9488679) report
730
+ // with top product clusters. A product cluster is a grouping for different
731
+ // offers and variants that represent the same product, for example, Google
732
+ // Pixel 7.
733
+ //
734
+ // Values are only set for fields requested explicitly in the request's search
735
+ // query.
736
+ message BestSellersProductClusterView {
737
+ // Status of the product cluster or brand in your inventory.
738
+ enum InventoryStatus {
739
+ // Not specified.
740
+ INVENTORY_STATUS_UNSPECIFIED = 0;
741
+
742
+ // You have a product for this product cluster or brand in stock.
743
+ IN_STOCK = 1;
744
+
745
+ // You have a product for this product cluster or brand in inventory but it
746
+ // is currently out of stock.
747
+ OUT_OF_STOCK = 2;
748
+
749
+ // You do not have a product for this product cluster or brand in inventory.
750
+ NOT_IN_INVENTORY = 3;
751
+ }
752
+
753
+ // Report date. The value of this field can only be one of the following:
754
+ //
755
+ // * The first day of the week (Monday) for weekly reports,
756
+ // * The first day of the month for monthly reports.
757
+ //
758
+ // Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
759
+ // not specified in the query, the latest available weekly or monthly report
760
+ // is returned.
761
+ google.type.Date report_date = 1;
762
+
763
+ // Granularity of the report. The ranking can be done over a week or a month
764
+ // timeframe.
765
+ //
766
+ // Required in the `SELECT` clause. Condition on `report_granularity` is
767
+ // required in the `WHERE` clause.
768
+ optional ReportGranularity.ReportGranularityEnum report_granularity = 2;
769
+
770
+ // Country where the ranking is calculated. Represented in the ISO 3166
771
+ // format.
772
+ //
773
+ // Required in the `SELECT` clause. Condition on `report_country_code` is
774
+ // required in the `WHERE` clause.
775
+ optional string report_country_code = 3;
776
+
777
+ // Google product category ID to calculate the ranking for, represented in
778
+ // [Google's product
779
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
780
+ //
781
+ // Required in the `SELECT` clause. If a `WHERE` condition on
782
+ // `report_category_id` is not specified in the query, rankings for all
783
+ // top-level categories are returned.
784
+ optional int64 report_category_id = 4;
785
+
786
+ // Title of the product cluster.
787
+ optional string title = 6;
788
+
789
+ // Brand of the product cluster.
790
+ optional string brand = 7;
791
+
792
+ // Product category (1st level) of the product cluster, represented in
793
+ // [Google's product
794
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
795
+ optional string category_l1 = 8;
796
+
797
+ // Product category (2nd level) of the product cluster, represented in
798
+ // [Google's product
799
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
800
+ optional string category_l2 = 9;
801
+
802
+ // Product category (3rd level) of the product cluster, represented in
803
+ // [Google's product
804
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
805
+ optional string category_l3 = 10;
806
+
807
+ // Product category (4th level) of the product cluster, represented in
808
+ // [Google's product
809
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
810
+ optional string category_l4 = 11;
811
+
812
+ // Product category (5th level) of the product cluster, represented in
813
+ // [Google's product
814
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
815
+ optional string category_l5 = 12;
816
+
817
+ // GTINs of example variants of the product cluster.
818
+ repeated string variant_gtins = 13;
819
+
820
+ // Whether the product cluster is `IN_STOCK` in your product data source in at
821
+ // least one of the countries, `OUT_OF_STOCK` in your product data source in
822
+ // all countries, or `NOT_IN_INVENTORY` at all.
823
+ //
824
+ // The field doesn't take the Best sellers report country filter into account.
825
+ optional InventoryStatus inventory_status = 14;
826
+
827
+ // Whether there is at least one product of the brand currently `IN_STOCK` in
828
+ // your product data source in at least one of the countries, all products are
829
+ // `OUT_OF_STOCK` in your product data source in all countries, or
830
+ // `NOT_IN_INVENTORY`.
831
+ //
832
+ // The field doesn't take the Best sellers report country filter into account.
833
+ optional InventoryStatus brand_inventory_status = 15;
834
+
835
+ // Popularity of the product cluster on Ads and organic surfaces, in the
836
+ // selected category and country, based on the estimated number of units sold.
837
+ optional int64 rank = 16;
838
+
839
+ // Popularity rank in the previous week or month.
840
+ optional int64 previous_rank = 17;
841
+
842
+ // Estimated demand in relation to the product cluster with the highest
843
+ // popularity rank in the same category and country.
844
+ optional RelativeDemand.RelativeDemandEnum relative_demand = 18;
845
+
846
+ // Estimated demand in relation to the product cluster with the highest
847
+ // popularity rank in the same category and country in the previous week or
848
+ // month.
849
+ optional RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
850
+
851
+ // Change in the estimated demand. Whether it rose, sank or remained flat.
852
+ optional RelativeDemandChangeType.RelativeDemandChangeTypeEnum
853
+ relative_demand_change = 20;
854
+ }
855
+
856
+ // Fields available for query in `best_sellers_brand_view` table.
857
+ //
858
+ // [Best sellers](https://support.google.com/merchants/answer/9488679) report
859
+ // with top brands.
860
+ //
861
+ // Values are only set for fields requested explicitly in the request's search
862
+ // query.
863
+ message BestSellersBrandView {
864
+ // Report date. The value of this field can only be one of the following:
865
+ //
866
+ // * The first day of the week (Monday) for weekly reports,
867
+ // * The first day of the month for monthly reports.
868
+ //
869
+ // Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
870
+ // not specified in the query, the latest available weekly or monthly report
871
+ // is returned.
872
+ google.type.Date report_date = 1;
873
+
874
+ // Granularity of the report. The ranking can be done over a week or a month
875
+ // timeframe.
876
+ //
877
+ // Required in the `SELECT` clause. Condition on `report_granularity` is
878
+ // required in the `WHERE` clause.
879
+ optional ReportGranularity.ReportGranularityEnum report_granularity = 2;
880
+
881
+ // Country where the ranking is calculated. Represented in the ISO 3166
882
+ // format.
883
+ //
884
+ // Required in the `SELECT` clause. Condition on `report_country_code` is
885
+ // required in the `WHERE` clause.
886
+ optional string report_country_code = 3;
887
+
888
+ // Google product category ID to calculate the ranking for, represented in
889
+ // [Google's product
890
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
891
+ //
892
+ // Required in the `SELECT` clause. If a `WHERE` condition on
893
+ // `report_category_id` is not specified in the query, rankings for all
894
+ // top-level categories are returned.
895
+ optional int64 report_category_id = 4;
896
+
897
+ // Name of the brand.
898
+ optional string brand = 6;
899
+
900
+ // Popularity of the brand on Ads and organic surfaces, in the selected
901
+ // category and country, based on the estimated number of units sold.
902
+ optional int64 rank = 7;
903
+
904
+ // Popularity rank in the previous week or month.
905
+ optional int64 previous_rank = 8;
906
+
907
+ // Estimated demand in relation to the brand with the highest popularity rank
908
+ // in the same category and country.
909
+ optional RelativeDemand.RelativeDemandEnum relative_demand = 9;
910
+
911
+ // Estimated demand in relation to the brand with the highest popularity rank
912
+ // in the same category and country in the previous week or month.
913
+ optional RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
914
+
915
+ // Change in the estimated demand. Whether it rose, sank or remained flat.
916
+ optional RelativeDemandChangeType.RelativeDemandChangeTypeEnum
917
+ relative_demand_change = 11;
918
+ }
919
+
920
+ // Fields available for query in `non_product_performance_view` table.
921
+ //
922
+ // Performance data on images and online store links leading to your non-product
923
+ // pages. This includes performance metrics (for example, `clicks`)
924
+ // and dimensions according to which performance metrics are segmented (for
925
+ // example, `date`).
926
+ //
927
+ // Segment fields cannot be selected in queries without also selecting at least
928
+ // one metric field.
929
+ //
930
+ // Values are only set for fields requested explicitly in the request's search
931
+ // query.
932
+ message NonProductPerformanceView {
933
+ // Date in the merchant timezone to which metrics apply. Segment.
934
+ //
935
+ // Condition on `date` is required in the `WHERE` clause.
936
+ google.type.Date date = 1;
937
+
938
+ // First day of the week (Monday) of the metrics date in the merchant
939
+ // timezone. Segment.
940
+ google.type.Date week = 2;
941
+
942
+ // Number of clicks on images and online store links leading to your
943
+ // non-product pages. Metric.
944
+ optional int64 clicks = 3;
945
+
946
+ // Number of times images and online store links leading to your non-product
947
+ // pages were shown. Metric.
948
+ optional int64 impressions = 4;
949
+
950
+ // Click-through rate - the number of clicks (`clicks`) divided by the number
951
+ // of impressions (`impressions`) of images and online store links leading to
952
+ // your non-product pages. Metric.
953
+ optional double click_through_rate = 5;
954
+ }
955
+
956
+ // Fields available for query in `competitive_visibility_competitor_view` table.
957
+ //
958
+ // [Competitive
959
+ // visibility](https://support.google.com/merchants/answer/11366442) report with
960
+ // businesses with similar visibility.
961
+ //
962
+ // Values are only set for fields requested explicitly in the request's search
963
+ // query.
964
+ message CompetitiveVisibilityCompetitorView {
965
+ // Date of this row.
966
+ //
967
+ // A condition on `date` is required in the `WHERE` clause.
968
+ google.type.Date date = 1;
969
+
970
+ // Domain of your competitor or your domain, if 'is_your_domain' is true.
971
+ //
972
+ // Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
973
+ // clause.
974
+ optional string domain = 2;
975
+
976
+ // True if this row contains data for your domain.
977
+ //
978
+ // Cannot be filtered on in the 'WHERE' clause.
979
+ optional bool is_your_domain = 3;
980
+
981
+ // Country where impressions appeared.
982
+ //
983
+ // Required in the `SELECT` clause. A condition on `report_country_code` is
984
+ // required in the `WHERE` clause.
985
+ optional string report_country_code = 4;
986
+
987
+ // Google product category ID to calculate the report for, represented in
988
+ // [Google's product
989
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
990
+ //
991
+ // Required in the `SELECT` clause. A condition on `report_category_id` is
992
+ // required in the `WHERE` clause.
993
+ optional int64 report_category_id = 5;
994
+
995
+ // Traffic source of impressions.
996
+ //
997
+ // Required in the `SELECT` clause.
998
+ optional TrafficSource.TrafficSourceEnum traffic_source = 6;
999
+
1000
+ // Position of the domain in the similar businesses ranking for the selected
1001
+ // keys (`date`, `report_category_id`, `report_country_code`,
1002
+ // `traffic_source`) based on impressions. 1 is the highest.
1003
+ //
1004
+ // Cannot be filtered on in the 'WHERE' clause.
1005
+ optional int64 rank = 7;
1006
+
1007
+ // [Ads / organic ratio]
1008
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
1009
+ // shows how often the domain receives impressions from Shopping ads compared
1010
+ // to organic traffic. The number is rounded and bucketed.
1011
+ //
1012
+ // Cannot be filtered on in the 'WHERE' clause.
1013
+ optional double ads_organic_ratio = 8;
1014
+
1015
+ // [Page overlap rate]
1016
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
1017
+ // shows how frequently competing retailers’ offers are shown together with
1018
+ // your offers on the same page.
1019
+ //
1020
+ // Cannot be filtered on in the 'WHERE' clause.
1021
+ optional double page_overlap_rate = 9;
1022
+
1023
+ // [Higher position rate]
1024
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
1025
+ // shows how often a competitor’s offer got placed in a higher position on the
1026
+ // page than your offer.
1027
+ //
1028
+ // Cannot be filtered on in the 'WHERE' clause.
1029
+ optional double higher_position_rate = 10;
1030
+
1031
+ // [Relative visibility]
1032
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
1033
+ // shows how often your competitors’ offers are shown compared to your offers.
1034
+ // In other words, this is the number of displayed impressions of a competitor
1035
+ // retailer divided by the number of your displayed impressions during a
1036
+ // selected time range for a selected product category and country.
1037
+ //
1038
+ // Cannot be filtered on in the 'WHERE' clause.
1039
+ optional double relative_visibility = 11;
1040
+ }
1041
+
1042
+ // Fields available for query in `competitive_visibility_top_merchant_view`
1043
+ // table.
1044
+ //
1045
+ // [Competitive
1046
+ // visibility](https://support.google.com/merchants/answer/11366442) report with
1047
+ // business with highest visibility.
1048
+ //
1049
+ // Values are only set for fields requested explicitly in the request's search
1050
+ // query.
1051
+ message CompetitiveVisibilityTopMerchantView {
1052
+ // Date of this row.
1053
+ //
1054
+ // Cannot be selected in the `SELECT` clause. A condition on `date` is
1055
+ // required in the `WHERE` clause.
1056
+ google.type.Date date = 1;
1057
+
1058
+ // Domain of your competitor or your domain, if 'is_your_domain' is true.
1059
+ //
1060
+ // Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
1061
+ // clause.
1062
+ optional string domain = 2;
1063
+
1064
+ // True if this row contains data for your domain.
1065
+ //
1066
+ // Cannot be filtered on in the 'WHERE' clause.
1067
+ optional bool is_your_domain = 3;
1068
+
1069
+ // Country where impressions appeared.
1070
+ //
1071
+ // Required in the `SELECT` clause. A condition on `report_country_code` is
1072
+ // required in the `WHERE` clause.
1073
+ optional string report_country_code = 4;
1074
+
1075
+ // Google product category ID to calculate the report for, represented in
1076
+ // [Google's product
1077
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
1078
+ //
1079
+ // Required in the `SELECT` clause. A condition on `report_category_id` is
1080
+ // required in the `WHERE` clause.
1081
+ optional int64 report_category_id = 5;
1082
+
1083
+ // Traffic source of impressions.
1084
+ //
1085
+ // Required in the `SELECT` clause.
1086
+ optional TrafficSource.TrafficSourceEnum traffic_source = 6;
1087
+
1088
+ // Position of the domain in the top merchants ranking for the selected keys
1089
+ // (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
1090
+ // based on impressions. 1 is the highest.
1091
+ //
1092
+ // Cannot be filtered on in the 'WHERE' clause.
1093
+ optional int64 rank = 7;
1094
+
1095
+ // [Ads / organic ratio]
1096
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
1097
+ // shows how often the domain receives impressions from Shopping ads compared
1098
+ // to organic traffic. The number is rounded and bucketed.
1099
+ //
1100
+ // Cannot be filtered on in the 'WHERE' clause.
1101
+ optional double ads_organic_ratio = 8;
1102
+
1103
+ // [Page overlap rate]
1104
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
1105
+ // shows how frequently competing retailers’ offers are shown together with
1106
+ // your offers on the same page.
1107
+ //
1108
+ // Cannot be filtered on in the 'WHERE' clause.
1109
+ optional double page_overlap_rate = 9;
1110
+
1111
+ // [Higher position rate]
1112
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
1113
+ // shows how often a competitor’s offer got placed in a higher position on the
1114
+ // page than your offer.
1115
+ //
1116
+ // Cannot be filtered on in the 'WHERE' clause.
1117
+ optional double higher_position_rate = 10;
1118
+ }
1119
+
1120
+ // Fields available for query in `competitive_visibility_benchmark_view` table.
1121
+ //
1122
+ // [Competitive
1123
+ // visibility](https://support.google.com/merchants/answer/11366442) report with
1124
+ // the category benchmark.
1125
+ //
1126
+ // Values are only set for fields requested explicitly in the request's search
1127
+ // query.
1128
+ message CompetitiveVisibilityBenchmarkView {
1129
+ // Date of this row.
1130
+ //
1131
+ // Required in the `SELECT` clause. A condition on `date` is required in the
1132
+ // `WHERE` clause.
1133
+ google.type.Date date = 1;
1134
+
1135
+ // Country where impressions appeared.
1136
+ //
1137
+ // Required in the `SELECT` clause. A condition on `report_country_code` is
1138
+ // required in the `WHERE` clause.
1139
+ optional string report_country_code = 2;
1140
+
1141
+ // Google product category ID to calculate the report for, represented in
1142
+ // [Google's product
1143
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
1144
+ //
1145
+ // Required in the `SELECT` clause. A condition on `report_category_id` is
1146
+ // required in the `WHERE` clause.
1147
+ optional int64 report_category_id = 3;
1148
+
1149
+ // Traffic source of impressions.
1150
+ //
1151
+ // Required in the `SELECT` clause.
1152
+ optional TrafficSource.TrafficSourceEnum traffic_source = 4;
1153
+
1154
+ // Change in visibility based on impressions for your domain with respect to
1155
+ // the start of the selected time range (or first day with non-zero
1156
+ // impressions).
1157
+ //
1158
+ // Cannot be filtered on in the 'WHERE' clause.
1159
+ optional double your_domain_visibility_trend = 5;
1160
+
1161
+ // Change in visibility based on impressions with respect to the start of the
1162
+ // selected time range (or first day with non-zero impressions) for a
1163
+ // combined set of merchants with highest visibility approximating the
1164
+ // market.
1165
+ //
1166
+ // Cannot be filtered on in the 'WHERE' clause.
1167
+ optional double category_benchmark_visibility_trend = 6;
1168
+ }
1169
+
1170
+ // Marketing method used to promote your products on Google (organic versus
1171
+ // ads).
1172
+ message MarketingMethod {
1173
+ // Marketing method values.
1174
+ enum MarketingMethodEnum {
1175
+ // Not specified.
1176
+ MARKETING_METHOD_ENUM_UNSPECIFIED = 0;
1177
+
1178
+ // Organic marketing.
1179
+ ORGANIC = 1;
1180
+
1181
+ // Ads-based marketing.
1182
+ ADS = 2;
1183
+ }
1184
+ }
1185
+
1186
+ // Granularity of the Best sellers report. Best sellers reports are computed
1187
+ // over a week and a month timeframe.
1188
+ message ReportGranularity {
1189
+ // Report granularity values.
1190
+ enum ReportGranularityEnum {
1191
+ // Not specified.
1192
+ REPORT_GRANULARITY_ENUM_UNSPECIFIED = 0;
1193
+
1194
+ // Report is computed over a week timeframe.
1195
+ WEEKLY = 1;
1196
+
1197
+ // Report is computed over a month timeframe.
1198
+ MONTHLY = 2;
1199
+ }
1200
+ }
1201
+
1202
+ // Relative demand of a product cluster or brand in the Best sellers report.
1203
+ message RelativeDemand {
1204
+ // Relative demand values.
1205
+ enum RelativeDemandEnum {
1206
+ // Not specified.
1207
+ RELATIVE_DEMAND_ENUM_UNSPECIFIED = 0;
1208
+
1209
+ // Demand is 0-5% of the demand of the highest ranked product cluster or
1210
+ // brand.
1211
+ VERY_LOW = 10;
1212
+
1213
+ // Demand is 6-10% of the demand of the highest ranked product cluster or
1214
+ // brand.
1215
+ LOW = 20;
1216
+
1217
+ // Demand is 11-20% of the demand of the highest ranked product cluster or
1218
+ // brand.
1219
+ MEDIUM = 30;
1220
+
1221
+ // Demand is 21-50% of the demand of the highest ranked product cluster or
1222
+ // brand.
1223
+ HIGH = 40;
1224
+
1225
+ // Demand is 51-100% of the demand of the highest ranked product cluster or
1226
+ // brand.
1227
+ VERY_HIGH = 50;
1228
+ }
1229
+ }
1230
+
1231
+ // Relative demand of a product cluster or brand in the Best sellers report
1232
+ // compared to the previous time period.
1233
+ message RelativeDemandChangeType {
1234
+ // Relative demand change type values.
1235
+ enum RelativeDemandChangeTypeEnum {
1236
+ // Not specified.
1237
+ RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED = 0;
1238
+
1239
+ // Relative demand is lower than the previous time period.
1240
+ SINKER = 1;
1241
+
1242
+ // Relative demand is equal to the previous time period.
1243
+ FLAT = 2;
1244
+
1245
+ // Relative demand is higher than the previous time period.
1246
+ RISER = 3;
1247
+ }
1248
+ }
1249
+
1250
+ // Traffic source of impressions in the Competitive visibility report.
1251
+ message TrafficSource {
1252
+ // Traffic source values.
1253
+ enum TrafficSourceEnum {
1254
+ // Not specified.
1255
+ TRAFFIC_SOURCE_ENUM_UNSPECIFIED = 0;
1256
+
1257
+ // Organic traffic.
1258
+ ORGANIC = 1;
1259
+
1260
+ // Traffic from ads.
1261
+ ADS = 2;
1262
+
1263
+ // Organic and ads traffic.
1264
+ ALL = 3;
1265
+ }
1266
+ }
1267
+
1268
+ // Fields available for query in `youtube_creator_performance_view` table.
1269
+ //
1270
+ // [YouTube creator performance
1271
+ // data](https://support.google.com/merchants/answer/14947975) for your account.
1272
+ // This data is only available if an account is enrolled in the [YouTube
1273
+ // Shopping Affiliate
1274
+ // program](https://support.google.com/merchants/answer/14815513?hl=en).
1275
+ //
1276
+ // Values are only set for fields requested explicitly in the request's search
1277
+ // query.
1278
+ message YoutubeCreatorPerformanceView {
1279
+ // Date in the merchant timezone to which metrics apply. Segment.
1280
+ //
1281
+ // Condition on `date` is required in the `WHERE` clause.
1282
+ google.type.Date date = 1;
1283
+
1284
+ // The title of the creator channel.
1285
+ optional string title = 2;
1286
+
1287
+ // The id for the creator channel.
1288
+ optional string channel_id = 3;
1289
+
1290
+ // The gross sales amount, before refunds.
1291
+ optional google.shopping.type.Price gross_sales = 4;
1292
+
1293
+ // The commissions amount (pending and paid).
1294
+ optional google.shopping.type.Price commissions = 5;
1295
+
1296
+ // The number of orders.
1297
+ optional int64 orders = 6;
1298
+
1299
+ // The number of YouTube views.
1300
+ optional int64 views = 7;
1301
+
1302
+ // The number of product clicks.
1303
+ optional int64 clicks = 8;
1304
+
1305
+ // The net sales amount (includes both purchase and refunds).
1306
+ optional google.shopping.type.Price net_sales = 9;
1307
+ }
1308
+
1309
+ // Fields available for query in `youtube_content_performance_view` table.
1310
+ //
1311
+ // [YouTube content performance
1312
+ // data](https://support.google.com/merchants/answer/14947975) for your account.
1313
+ // This data is only available if an account is enrolled in the [YouTube
1314
+ // Shopping Affiliate
1315
+ // program](https://support.google.com/merchants/answer/14815513?hl=en).
1316
+ //
1317
+ // Values are only set for fields requested explicitly in the request's search
1318
+ // query.
1319
+ message YoutubeContentPerformanceView {
1320
+ // Date in the merchant timezone to which metrics apply. Segment.
1321
+ //
1322
+ // Condition on `date` is required in the `WHERE` clause.
1323
+ google.type.Date date = 1;
1324
+
1325
+ // The video title.
1326
+ optional string title = 2;
1327
+
1328
+ // The video id.
1329
+ optional string video_id = 3;
1330
+
1331
+ // The channel title.
1332
+ optional string channel_title = 4;
1333
+
1334
+ // The channel id.
1335
+ optional string channel_id = 5;
1336
+
1337
+ // The gross sales amount, before refunds.
1338
+ optional google.shopping.type.Price gross_sales = 6;
1339
+
1340
+ // The commissions amount (pending and paid).
1341
+ optional google.shopping.type.Price commissions = 7;
1342
+
1343
+ // The number of orders.
1344
+ optional int64 orders = 8;
1345
+
1346
+ // The number of YouTube views.
1347
+ optional int64 views = 9;
1348
+
1349
+ // The number of product clicks.
1350
+ optional int64 clicks = 10;
1351
+
1352
+ // The net sales amount (includes both purchase and refunds).
1353
+ optional google.shopping.type.Price net_sales = 11;
1354
+
1355
+ // Set of unique [product
1356
+ // IDs](https://support.google.com/merchants/answer/188494#id) tagged on the
1357
+ // YouTube video. These IDs correspond to the 'offerId' in the Products API.
1358
+ repeated string tagged_product_ids = 12;
1359
+ }
1360
+
1361
+ // Fields available for query in `youtube_product_performance_view` table.
1362
+ //
1363
+ // [YouTube product performance
1364
+ // data](https://support.google.com/merchants/answer/14947975) for your account.
1365
+ // This data is only available if an account is enrolled in the [YouTube
1366
+ // Shopping Affiliate
1367
+ // program](https://support.google.com/merchants/answer/14815513?hl=en).
1368
+ //
1369
+ // Values are only set for fields requested explicitly in the request's search
1370
+ // query.
1371
+ message YoutubeProductPerformanceView {
1372
+ // Date in the merchant timezone to which metrics apply. Segment.
1373
+ //
1374
+ // Condition on `date` is required in the `WHERE` clause.
1375
+ google.type.Date date = 1;
1376
+
1377
+ // The product title.
1378
+ optional string title = 2;
1379
+
1380
+ // The merchant-provided product id.
1381
+ optional string offer_id = 3;
1382
+
1383
+ // The number of distinct videos the product was shown on.
1384
+ optional int64 distinct_video_count = 4;
1385
+
1386
+ // The number of distinct creator channels the product was shown on.
1387
+ optional int64 distinct_creator_count = 5;
1388
+
1389
+ // The gross sales amount, before refunds.
1390
+ optional google.shopping.type.Price gross_sales = 6;
1391
+
1392
+ // The commissions amount (pending and paid).
1393
+ optional google.shopping.type.Price commissions = 7;
1394
+
1395
+ // The number of orders.
1396
+ optional int64 orders = 8;
1397
+
1398
+ // The number of YouTube views.
1399
+ optional int64 views = 9;
1400
+
1401
+ // The number of product clicks.
1402
+ optional int64 clicks = 10;
1403
+
1404
+ // The net sales amount (includes both purchase and refunds).
1405
+ optional google.shopping.type.Price net_sales = 11;
1406
+
1407
+ // The number of distinct creators that tagged the product.
1408
+ optional int64 tagged_creator_count = 12;
1409
+
1410
+ // The number of distinct videos that tagged the product.
1411
+ optional int64 tagged_video_count = 13;
1412
+ }